css+js实现图形问答小游戏代码

代码语言:html

所属分类:游戏

代码描述:css+js实现图形问答小游戏代码,根据文字提示选择正确的答案并点击。

代码标签: css js 图形 问答 游戏 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  


    <link rel="canonical" href="https://codepen.io/Pedro-Ondiviela/pen/jORgbbK">
  
  
  
  
<style>
@import url("https://fonts.googleapis.com/css2?family=Major+Mono+Display&display=swap");
@media (max-width: 767px) {
  html {
    font-size: 12px;
  }
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  margin: 0;
  color: white;
  background: linear-gradient(60deg, #799df1, #60c1ec 30%, #7bd9de 60%, #cfb0d2 90%);
  background-size: 100% 100%;
  overflow: hidden;
  font-family: "Major Mono Display", monospace;
}

.game {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  color: #000038;
}
.game__wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 1400px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.game__start {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  font-size: 35vh;
  background: linear-gradient(60deg, #799df1, #60c1ec 30%, #7bd9de 60%, #cfb0d2 90%);
  transition: transform 1s ease;
  cursor: pointer;
}
.game__start:after {
  content: "";
  position: absolute;
  top: calc(50% - 10vh);
  left: calc(50% - 6.5vh);
  border-top: 13vh solid transparent;
  border-bottom: 13vh solid transparent;
  border-left: 20vh solid #000038;
  pointer-events: none;
  transition: transform 1s ease;
}
.game__start:hover {
  transform: scale(1.1);
}
.game__start:hover:after {
  transform: scale(1.2);
}
@media (max-width: 767px) {
  .game__start {
    font-size: 30vw;
  }
  .game__start:after {
    top: calc(50% - 10vw);
    left: calc(50% - 6.5vw);
    border-top: 13vw solid transparent;
    border-bottom: 13vw solid transparent;
    border-left: 20vw solid #000038;
  }
}
.game__logo {
  position: absolute;
  top: 1rem;
  left: 1rem;
  font-size: 1.5rem;
  color: white;
}
.game__title-wrapper {
  display: flex;
  justify-content: center;
  font-size: 3rem;
}
.game__title {
  color: white;
  text-transform: uppercase;
  text-align: center;
  padding: 1rem;
}
.game__pattern {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
  text-align: right;
  width: 12rem;
  padding: 1rem;
}
.game__pattern-text {
  width: 100%;
  margin-top: 1rem;
  line-height: 1.2;
  word-wrap: break-word;
}
.game__score {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  font-size: 2rem;
  color: white;
}

.tile {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 5rem;
  height: 5rem;
  margin: 0.5rem;
  font-size: 4rem;
  border-radius: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
}
.tile:hover {
  transform: scale(1.2) rotate(-10deg);
  z-index: 1;
  box-shadow: -0.2rem 0.5rem 0.5rem 0 rgba(0, 0, 56, 0.5);
}
</style>

  <script>
  window.console = window.console || function(t) {};
</script>

  
  
</head>

<body translate="no">
  <div class="game__wrapper">
  <div id="start" class="game__start">
    <div>PATT<br />ERNS</div>
  </div>
  <div class="game__logo">
    PATT<br />
    ERNS
  </div>
  <div class="game__title-wrapper">
    <div id="title" class="game__title"></div>
  </div>
  <div id="game" class="game"></div>
  <div id="score" class="game__score">0</div>
</div>
  
      <script id="rendered-js" >
const game = document.getElementById("game");
const start = document.getElementById("start");
const title = document.getElementById("title");
const scoreElement = document.getElementById("score");

let score = 0;

let level = 0;
let stage = 0;

const prepareTile = id => {
  const tile = document.createElement("div");
  tile.classList.add("tile");
  tile.id = id;
  return tile;
};

const basicBuildFunction = id => {
  const tile = prepareTile(id);
  tile.innerHTML = id;
  return tile;
};

function shuffle(array) {
  let currentIndex = array.length;

  // While there remain elements to shuffle...
  while (currentIndex != 0) {if (window.CP.shouldStopExecution(0)) break;
    // Pick a remaining element...
    let randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex--;

    // And swap it with the current element.
    [array[currentIndex], array[randomIndex]] = [
    array[randomIndex],
    array[currentIndex]];

  }window.CP.exitedLoop(0);
}

const firstLevel = [
{
  title: "Bigger",
  stages: [
  {
    tiles: ["10", "20", "30", "40"],
    correct: "40" },

  {
    tiles: ["35", "33", "36", "40"],
    correct: "40" }],


  buildFunction: id => {
    const tile = prepareTile(id);
    const px = document.createElement("div");
    px.style = `background-color: #000038; width: ${id}px; height: ${id}px; pointer-events: none`;
    tile.appendChild(px);
    return tile;
  } }];



const levelList = [
{
  title: "Pure",
  stages: [
  {
    tiles: ["#ff12e0", "#a2fafb", "#ffbb00", "#ff0000"],
    correct: "#ff0000" },

  {
    tiles: [
    "#2bbee1",
    "#09ffbb",
    "#aaff00",
    "#213611",
    "#bb0099",
    "#0000ff",
    "#21ff00",
    "#f99abb"],

    correct: "#0000ff" }],


  buildFunction: id => {
    const tile = prepareTile(id);
    tile.style.backgroundColor = id;
    return tile;
  } },

{
  title: "Happier",
  stages: [
  {
    tiles: ["😬", "😕", "😕", "🙃"],
    correct: "🙃" },

  {
    tiles: ["😚", "🙂", "😀", "🙃", "😵", "😵‍💫", "😑", "😘"],
    correct: "😀" }],


  buildFunction: basicBuildFunction },

{
  title: "Symetrical",
  stages: [
  {
    tiles: ["🫢", "😪", "🫥", "😰"],
    correct: "🫥" },

  {
    tiles: ["👻", "😶‍🌫️", "🍊", "🐼", "🐡", "😜"],
    correct: "🐼" }],


  buildFunction: basicBuildFunction },

{
  title: "Empty",
  stages: [
  {
    tiles: ["1", "2", "0", "3"],
    correct: "0" }],


  buildFunction: id => {
    const tile = prepareTile(id);
    const px = document.createElement("div");
    px.style = `background-color: #000038; width: ${id}px; height: ${id}px; pointer-events: none`;
    tile.appendChild(px);
    return tile;
  } },

{
  title: "Leftie",
  stages: [
  {
    tiles: ["🫲", "🤙", "👌", "👍"],
    correct: "👍" }],


  buildFunction: basicBuildFunction },

{
  title: "Prime",
  stages: [
  {
    tiles: ["9", "4", "1", "8"],
    correct: "1" },

  {
    tiles: ["12", "7", "9", "4"],
    correct: "7" },

  {
    tiles: ["77", "61", "91", "4"],
    correct: "61" }],


  buildFunction: id => {
    const tile = prepareTile(id);
    tile.innerHTML = id;
    tile.style.fontSize = "2rem";
    return tile;
  } },

{
  title: "Fast",
  stages: [
  {
    tiles: ["🥐", "🥓", "🌭", "🥩"],
    correct: "🌭" },

  {
    tiles: ["🫘", "🌯", "🧄", "🍞", "🧀", "🍷"],
    correct: "🌯" },

  {
    tiles: ["🍝", "🍅", "🥠", "🍕", "🍪", "🍨", "🍬.........完整代码请登录后点击上方下载按钮下载查看

网友评论0