js猜数字小游戏2.0——原创

今天把之前的猜数字改了一下,不过弹出窗口会阻止定时器运行,查了半天资料暂时没有找到解决办法。

<!doctype html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>猜数字</title>
<style>
body{
color:red;
background-color:#ddd;
font-size:50px;
}
input{
width:200px;
height:30px
}
button{
width:100px;
height:30px;
background-color:#678;
}
p{
text-align:center;
}
div{
color:#000;
font-size:30px;
}
#d{
float:right;
margin-top:200px;
}
</style>
</head>
<body>
<p id="c">猜测随机生成的数字!</p>
数字位数(默认3):
<input type="text" id="a" >
<p><button type="button" id="su" onClick="start()">开始游戏</button></p>
<div >游戏规则:请选择游戏难度,系统会随机生成一个n位数的数字,在弹出框中输入一个n位数的数字,根据提示调整数字和顺序,直到猜对为止!</div>

<div id="d"></div>
<script>
//封装局部函数变量
var times=0;
var end=0;
var str="";
//启动定时器(异步执行,弹出框阻止程序执行未解决!);
setTime()
/***************************创建事件函数********************************/
function start(){
//声明局部变量
var mes=[];
var user_Arr=[];
var new_Arr=[];
var step=0;
//var end=0;
//var times=0;
//var str="";

//动态改变页面p元素内容;
c.innerHTML="猜测随机生成的数字!";
//获取用户输入数字,将数据保存在数组
if(a.value==""){
a.value=3;
}
//调用浏览器提示框开始游戏;
if (confirm("是否开始猜数字游戏!")){
//调整计时器;
//times=0
//调用随机数组函数,生成新数组new_Arr;
new_Arr=sui_Arr(a.value);
while(true){
//step记步数;
++step;
//获取用户输入数字,将数据保存在数组
console.log("随机数组是:"+new_Arr);

//提示信息;
if(step<2){
str=prompt(`请输入0~9之间的数字!`);
}else{
str=prompt(`
提示:
个数正确:${mes[0]};
顺序正确:${mes[1]};
`)
}
//调用字符串切割函数,将用户输入的数字保存在数组

user_Arr=spl(str);
//调用数组比较函数,
mes=Bi_Arr(new_Arr,user_Arr);
//动态改变页面p元素内容;
c.innerHTML=`
恭喜,猜对了!
正确数字:${str};<br>
共猜测:${step}次;<br>
用时:${times}秒;<br>
分数:${100-step*2-times*0.1}分;
`;
//如果猜对,则游戏结束;
if(mes[2]){
//重启计时器;
end=true;
times=0;
setTime();
break;
}
}
}else{//取消游戏
//重启计时器;
end=true;
times=0;
setTime();
}
}
/****************************创建功能函数*******************************/
//创建计时器函数
function setTime(){

var Time=setInterval(function(){
++times;
console.log(times);
d.innerHTML=`记时:${times}`
if (end)
{
window.clearInterval(Time);

}
},1000);

}

//创建数组比较函数,返回正确个数,和正确位数;
function Bi_Arr(arr1,arr2){
var wei_num=0;
var ge_num=0;
var end=false;

//遍历对比两个数组
for(var i in arr1){
if(arr1[i]==arr2[i]){
ge_num++;
}
for (var j in arr2){
if(arr1[i]==arr2[j]){
++wei_num;
break;
}
}
}
if (ge_num==arr1.length){
end=true;
}
console.log(ge_num,wei_num,end)
//返回比较结果,正确数字个数,真确位数个数,是否全正确;
return [ge_num,wei_num,end];
}

//创建随机数组函数,保存生成随机数组;
function sui_Arr(a=3){
var My_Arr=[0,1,2,3,4,5,6,7,8,9]
//var a=3;
var sui_num=0;
var new_Arr=[];
for (var i=0;i<a;i++){
sui_num=Math.floor(Math.random()*My_Arr.length);
sui_num==0 ? sui_num=5 : sui_num;
new_Arr[new_Arr.length]=sui_num;
}
return new_Arr;
}

//创建切割字符串函数,将结果保存为数组;
function spl(str){
//var str="abcdef";

var arr=[]
for (var i=0;i<str.length;i++ ){
arr[i]=str[i];
}
console.log(arr)
return arr;
}

</script>

</body>
</html>

原文地址:https://www.cnblogs.com/wang-sai-sai/p/10268706.html

时间: 2024-11-06 03:50:50

js猜数字小游戏2.0——原创的相关文章

Java 初学 第一弹--编译并运行书上的简单程序(猜数字小游戏)

(博主原创) 首先说明一下,博主是大一上学期结束寒假时自己看的Java,然后我看的是Head First Java的中文版,因为大一学了c,所以里面的一些基本思想还是了解的,在看这本书时就浏览了一下(就是那种光看没有自己动手去敲代码的),然后看到书上的一个猜数字小游戏,就想手动敲一下,熟悉熟悉Java的语法,但是真正去做时,发现比看起来要困难一些. 首先是Java在建立一个源码文件之前要先建一个package,然后我用的Eclipse写的Java(感觉和pycharm风格差不多),再新建一个文件

简单的猜数字小游戏

/** 简单的猜数字小游戏 要求如下: 用户输入想猜测数字的范围,输入1000则是0~1000之内的数字,程序就会内置一个 1 到 1000 之间的数字作为猜测的结果,由用户猜测此数字,用户每猜测一次,由系统提示猜测结果:大了.小了或者猜对了:直到用户猜对结果,则提示游戏结束.用户可以提前退出游戏,即,游戏过程中,如果用户录入数字0则游戏终止.加入新功能: 记次猜测次数功能,提示游戏开始时间,计猜测总用时功能,提示游戏结束时间 思路:1.用户输入电脑生成的数值取值范围,接收并判断是否是合理数值?

需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次,超过5次提示:游戏试玩结束,请付费。

package cn.idcast4; import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;import java.util.Properties; /* * 需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次, *

c语言:编写猜数字小游戏。

编写猜数字小游戏. 程序: #include<stdio.h> #include<time.h> void menu() { printf("***欢迎来挑战猜数字游戏***\n"); printf("*****请选择开始或退出*****\n"); printf("******1.start 0.exit******\n"); } void game() { int num = 0; srand((unsigned)tim

「Linux学习」之for循环if判断猜数字小游戏

vim /root/ip.sh #! /bin/bash read -p '请输入您要测试的ip: ' ip ping -c 2 $ip &> /dev/null if [ $? -eq 0 ];then echo 可以通信 else echo 不可以通信 创建猜数字小游戏 vim /root/num.sh #! /bin/bash num1=$[$RANDOM%10] read -p ' 请您输入一个0~9之间的数字 :' if [ $num1 -eq $num2 ];then echo

个人项目-猜数字小游戏

一      题目简介 猜数字小游戏 二     源码的github链接 链接: https://github.com/gaoshuhua/master 三     所设计的模块测试用例.测试结果截图 import static org.junit.Assert.*; import org.junit.Test; public class GameTest { @Test public void test() { fail("Not yet implemented"); } } 四  

猜数字小游戏

#include <stdio.h> #include <stdlib.h> #include <time.h> void print_menu() { printf("**********************\n"); printf("******* 1.start ******\n"); printf("******* 0. exit ******\n"); printf("*********

Python基础入门-实现猜数字小游戏

今天呢,我们来通过前面学过的一些知识点来完成一个猜数字大小的游戏程序设计.那么呢,一般人写代码直接上来就干,没有分析,这样的做法是没有产出的,除非你是大牛,今天呢,我会把我学习编程的思路分享给大家,我的思路可能不是最好的,但是一定可以给你一点点的启发,来,让我们看一下这个写这个小程序该怎么去分析呢? 需求分析:用python实现一个猜数字的小游戏(场景可以自拟)这里我给出的需求是,我们还是先看一下流程图吧! 程序分析流程图: 分析思路: 1.如果设置默认值也就是结果数字,那么请输出"I"

1208.1——猜数字小游戏

#include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> int main(int argc, const char * argv[]) { /* 4位数 从小到大  没有重复 1-9 A 表示存在而且位置也对的个数 B 表示存在但是位置不对 1 2 3 4 1 4 6 8 1A1B */ int array[4] = {}; bool isExist = fa