js+css实现扫雷游戏代码

代码语言:html

所属分类:游戏

代码描述:js+css实现扫雷游戏代码

代码标签: js css 扫雷 游戏 代码

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


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

<head>

  <meta charset="UTF-8">
  
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/open-props.css">
  <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/normalize.css">
  
<style>



* {
  box-sizing: border-box;
}
:root {
  --digit: var(--red);
  --state: paused;
  --stan-win: 0;
  --stan-star-scale: 0;
  --stan-star-rotate: 0;
  --red: #ff4d00;
  --yellow: #ebb624;
  --green: #38b24d;
  --blue: #0f73ff;
  --screen-hide: 0;
  --screen-delay: 0;
  --show-results: 0;
  --deck: hsl(210 34% 10%);
}

h1 {
	color: var(--gray-0);
}

body {
  display: grid;
  place-items: center;
  overflow: hidden;
  min-height: 100vh;
  font-family: 'Google Sans', sans-serif;
  background: var(--gradient-9);
}
form {
  margin: 0;
  position: relative;
}
.game-state-controls {
  justify-self: end;
}
.game__controls {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  align-items: center;
  justify-items: center;
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(var(--columns) * 5.25vmin);
  transform: translate(-50%, calc(-50% - ((var(--columns) * 0.65) * 5vmin)));
}
svg {
  fill: currentColor;
}
.board {
  background: var(--gray-6);
  border: 0.4vmin solid var(--gray-6);
  display: grid;
  grid-template-columns: repeat(var(--columns), 5vmin);
  grid-template-rows: repeat(var(--rows), 5vmin);
  grid-gap: 0.2vmin;
}
.board__cell {
  display: grid;
  place-items: center;
  color: hsl(var(--hue, 210) 100% 40% / 1);
  font-weight: bold;
  position: relative;
  font-family: sans-serif;
  font-size: 3vmin;
  background: var(--gray-2);
}
.board__cell--exploder {
  background: var(--red-8);
}
.board__group-controls {
  position: absolute;
}
.board__flag-toggle {
  position: absolute;
  top: 110%;
  right: 0;
  min-height: 5vmin;
  min-width: 5vmin;
}
.board__cell label {
  background: var(--gray-2);
  border: var(--size-2) solid var(--gray-0);
  border-right-color: var(--gray-5);
  border-bottom-color: var(--gray-5);
}
.board__cell :where(label,
span) {
  position: absolute;
  inset: 0;
  display: inline-block;
  display: grid;
  place-items: center;
}
:root:has(#flag-toggle:checked) {
  --flagging: 1;
}
:root:has(#flag-toggle:checked) .board__cell:has([id*="flag--"]:checked) [for*="flag--"],
:root:has(#flag-toggle:not(:checked)) .board__cell:has([id*="flag--"]:checked) [for*="flag--"] {
  display: block;
  z-index: 2;
}
body {
  counter-reset: flag var(--mine-count);
}
[id*=flag--]:checked {
  counter-increment: flag -1;
}
.mine-count:after {
  color: var(--text-1);
  content: counter(flag);
}
.board__cell:has(:checked:not([id*="flag"])) label {
  opacity: 0;
  z-index: -1;
}
.board__cell:has(:checked[id*="flag"]) label[for*="flag"]:after {
  content: "⛳️";
  position: absolute;
  inset: 0;
  font-size: 3vmin;
}
.board__cell:has(:checked[id*="flag"]) span {
  cursor: not-allowed;
}
label {
  opacity: calc(1 - var(--show-fail, 0));
  z-index: 1;
}
label[for*="flag"],
label[for*="defuse"] {
  z-index: calc(1 + var(--flagging, 0));
}
.timer {
  color: var(--digit);
  display: inline-flex;
  font-size: 6vmin;
  padding: 1.75vmin;
  background: #000;
}
@property --ms-tens {
  initial-value: 0;
  inherits: false;
  syntax: '<integer>';
}
@property --ms-singles {
  initial-value: 0;
  inherits: false;
  syntax: '<integer>';
}
@property --s-tens {
  initial-value: 0;
  inherit.........完整代码请登录后点击上方下载按钮下载查看

网友评论0