js实现表格配对小游戏

一、总结

一句话总结:

 

 

二、js实现表格配对

1、配对游戏案例说明



  • 实例描述: 当用户点击两个相同的图案或字符后配对成功,全部配对成功后游戏获胜
    案例008采用了大家常见的小游戏来帮助大家提高应用JS解决实际问题的能力,需要说明的是该案例在很大程度上做了简化,大家课下练习的时候可以发挥自己的想象力进一步来完善该游戏


 

2、截图

js实现表格配对小游戏_人工智能

 

 

 

3、代码



1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>演示文档-配对游戏</title>
6 <style type="text/css">
7 table{
8 margin:15px auto 15px;
9 background: rgba(60,180,100,0.3);
10 color: blue;
11 width: 500px;
12 height: 500px;
13 }
14 hr{
15 width: 600px;
16 height: 5px;
17 background: orange;
18 }
19 h2{text-align: center;}
20 td{
21 text-align: center;
22 background: rgba(160,80,10,0.1);
23 width: 100px;
24 height: 100px;
25 }
26 footer{
27 margin:0px auto;
28 text-align: center;
29 background: rgba(0,100,100,0.2);
30 padding: 10px;
31 width: 500px;
32 }
33 </style>
34 </head>
35 <body>
36 <h2>配对游戏<hr></h2>
37 <table>
38 <script>
39 var cols=5,rows=4;
40 for(var i=0;i<rows;i++){
41 str="<tr>";
42 for(var j=0;j<cols;j++){
43 var sid="img"+((cols*i)+j)
44 str+='<td id="'+sid+'" onclick="showimg('+((cols*i)+j)+')"'+'>'
45 str+='</td>'
46 }
47 str+="</tr>";
48 document.write(str)
49 }
50 </script>
51 </table>
52 <footer>
53 用时:<span id="gameTime"></span>&nbsp&nbsp&nbsp
54 <input type="button" value="开始游戏" onclick="init()">
55 </footer>
56 <script type="text/javascript">
57 var length=cols*rows //表格单元格数目
58 var map=[] //存储单元格里的内容
59 var user=[] //存储每个单元格是否可以翻开的状态
60 var times=0;
61 var newsatrt;
62 var firstIndex=0,secondIndex=0;//点击第一张、第二张图片的索引
63 var ctr=0;
64 var finished;
65 function $(x){
66 return document.getElementById(x)
67 }
68 for(var i=0;i<length/2;i++){
69 map[i]=i;
70 map[length/2+i]=i
71 }
72 // alert(map)
73 function init(){
74 for (var i=0;i<length;i++){
75 $("img"+i).innerHTML=''
76 user[i]=0;//是否显示图片,0为显示背面
77 }
78 // alert(map)
79 map.sort(function(){return Math.random()-0.5})
80 // alert(map)
81 times=0; //计时器变量清零
82 $("gameTime").innerHTML=times+'秒'
83 newsatrt=true; //标记为新开局
84 }
85
86 function showimg(x){
87 if (newsatrt) {
88 start()
89 newsatrt=false;
90 }
91
92 $("img"+x).innerHTML=map[x]
93 // alert(x)
94 if (ctr==0) {
95 ctr++
96 firstIndex=x //记录第一张图片索引
97 }else{
98 if (firstIndex!=x) {
99 secondIndex=x;//记录第二张图片索引
100 ctr=0;
101 check()
102 }
103 }
104
105
106 }
107
108 function start(){
109 times+=1
110 $("gameTime").innerHTML=times+'秒';
111 setTimeout('start()',1000)
112 }
113
114 function check(){
115 if (map[firstIndex]==map[secondIndex]) {
116 finished++;
117 user[firstIndex]=1;
118 user[secondIndex]=1;//不能再翻
119 ctr=0;
120 }else if(user[firstIndex]==0){
121 $('img'+firstIndex).innerHTML=' ';
122 firstIndex=secondIndex;
123 secondIndex=0;
124 ctr++ //标记已经点击了一张
125 }
126 if (finished==length/2) {
127 clearTimeout(startTime);
128 if(confirm("恭喜你!再来一局?")==true){
129 init()
130 }
131 }
132 }
133
134 </script>
135 </body>
136 </html>


 


我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: ​​fanrenyi.com​​;有各种前端、后端、算法、大数据、人工智能等课程。

​版权申明:欢迎转载,但请注明出处​

一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。