<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
#wrap {
width: 400px;
margin: 30px auto;
font-size: 18px;
box-shadow: 5px 5px 20px rgb(231, 188, 130);
border-radius: 8px;
}
#header p:first-child{
float: left;
margin-left: 20px;
}
#header p:last-child{
float: right;
margin-right: 20px;
} #main {
clear: both;
font-size: 150px;
text-align: center;
margin: 120px auto;
}
#wrap>p {
text-indent: 2em;
line-height: 35px;
margin: 5px;
}
.choose{
display: flex;
justify-content: space-around;
}
.choose p {
font-size: 30px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<p>倒计时:<span id="time">10</span>s</p>
<p>得分:<span id="mark">0</span>分</p>
</div>
<div id="main"></div>
<p>根据上面字体的颜色从下面选择正确的字,选择正确游戏自动开始.</p>
<div id="choose" class="choose">
<p>蓝</p>
<p>黄</p>
<p>绿</p>
<p>粉</p>
<p>红</p>
</div>
</div> <script>
var time = document.getElementById("time");
var mark = document.getElementById("mark");
var main = document.getElementById("main");
var smallFont = document.querySelector('#choose');
var choose = document.querySelectorAll('#choose p');
// console.log(choose); // 文字的数组
var fontArr = ["红","橙","黄","绿","蓝"];
// 文字颜色的数组
var colorArr = ["red","orange","yellow","green","blue"];
// 声明分数,时间,倒计时,
var grade = 0;
var djs = 10;
var timer;
// 设置flag
var flag = true;
// 封装函数生成随机数
function random(a,b){
return Math.round(Math.random()*(a-b)+b);
}
// 随机数组
function rnArr(){
var arr = [];
// 去重
// 数组长度小于5时
while(arr.length<5){
// 生成0-4的随机数作为数组下标
var n = random(0,4);
// 生成对应下标的数字在之前数组中不存在,push
if(arr.indexOf(n)==-1){
arr.push(n);
}
}
return arr;
}
rnArr();
// 创建页面文字
function createFont(){
// 随机文字数组,随机取出一个作为页面大字(随机的索引的value)
main.innerHTML = fontArr[random(0,4)];
// 随机颜色数组,取出一个颜色给大字
main.style.color = colorArr[random(0,4)];
// 创建小字
// 随机数组,作为小字和小字颜色
var smallIndexArr = rnArr(); //小字数组
var smallColorArr = rnArr(); //小字颜色数组
// 让小字随机变化
// 循环遍历小字数组
for(var j = 0; j < smallIndexArr.length; j++){
// 小字数组的每一项设为字体颜色
var fontIndex = smallIndexArr[j];
// 小字数组内容作为数组元素的下标,找原始数组内容
// 给页面小字的元素集合赋值
choose[j].innerText= fontArr[fontIndex];
var colorIndex = smallColorArr[j];
choose[j].style.color = colorArr[colorIndex];
}
}
createFont();
// 给小字循环绑定点击时间
for(var k = 0; k < choose.length; k++){
choose[k].onclick = function(){
// 获取当前大字的颜色
var bigColor = main.style.color;
// 获取当前的的文字
var word = this.innerText;
// 判断大字颜色下标和小字内容在文字数组里的下标
if(colorArr.indexOf(bigColor)==fontArr.indexOf(word)){
grade++;
mark.innerHTML = grade;
createFont();
if(flag){
// console.log(djs);
timer = setInterval(function(){
djs--;
time.innerHTML = djs;
// console.log(djs);
if(djs == -1){
// 清楚计时器
clearInterval(timer);
// 结束弹窗
alert('辣鸡' + grade +'分');
grade = 0;
djs = 10;
mark.innerHTML = grade;
time.innerText = djs;
creatFont();
flag = true;
}
},1000)
}
flag = false;
}
}
}
</script>
</body>
</html>

效果图

游戏逻辑: 随机产生页面文字和颜色,选择正确加分。

文章地址  https://www.cnblogs.com/sandraryan/

最新文章

  1. PHP+JQUEY+AJAX实现分页
  2. SSH框架 sequence diagram
  3. VMware网络设置
  4. monkey(1)
  5. NSStream
  6. .NET程序集(Assembly)
  7. VC:CString用法整理(转载)
  8. Tomcat地址栏传中文参数乱码问题处理
  9. CareerCup Chapter 4 Trees and Graphs
  10. vsftp FTP服务器外网访问设置
  11. hibernate---一对一单向外键关联--annotation (重要!!!)
  12. iOS学习——Quartz2D学习之UIKit绘制
  13. react 的双向数据绑定
  14. namenode做了ha后kylin出现错误No registered coprocessor service found for name CubeVisitService in region
  15. ionic-content 中iframe高度自适应
  16. input做一个开关按钮
  17. centOS7安装kafka和zookeeper
  18. python -反射hasattr、setattr、delattr
  19. nginx 502 bad gateway 问题处理集锦
  20. 一款Redis客户端,可以作为Redis Desktop manager的有效补充或替代

热门文章

  1. JavaScript--jquery.min.js文件
  2. CSS-DOM的小知识(一)
  3. C# 详解反射
  4. 扩展 Microsoft.Owin.Security
  5. JSP Web第四章整理复习 JSP技术基础
  6. 第三方数据库管理工具Navicat使用教程
  7. LeetCode169 Majority Element, LintCode47 Majority Number II, LeetCode229 Majority Element II, LintCode48 Majority Number III
  8. golang数据类型二
  9. Spring Boot 学习填的坑一
  10. linux包之包管理rpm-yum