知识点

  1. js 操作元素 增 (document.createElement(),document.body.appendChild()),

    删(parentNode.removeChild()) ,改(guessField.disabled = false;) 查(document.querySelector('.lastResult'))
  2. if 判断语句 for 循环语句
  3. js 方法 自定义方法 用js方法(Math.floor()Math.random())
  4. js 操作css
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8"> <title>猜数字游戏</title> <style>
html {
font-family: sans-serif
}
body {
width: 50%;
max-width: 800px;
min-width: 480px;
margin: 0 auto
}
.lastResult {
color: white;
padding: 3px
}
</style>
</head> <body>
<h1>猜数字游戏</h1> <p>我刚才随机选定了一个100以内的自然数。看你能否在 10 次以内猜中它。每次我都会告诉你所猜的结果是高了还是低了。</p> <div class="form">
<label for="guessField">请猜数: </label>
<input type="text" id="guessField" class="guessField">
<input type="submit" value="确定" class="guessSubmit">
</div> <div class="resultParas">
<p class="guesses"></p>
<p class="lastResult"></p>
<p class="lowOrHi"></p>
</div> <script>
var randomNumber =Math.floor(Math.random()*100)+1;
var guesses = document.querySelector('.guesses');
var lastResult= document.querySelector('.lastResult');
var lowOrHi= document.querySelector('.lowOrHi');
var guessSubmit = document.querySelector('.guessSubmit');
var guessField = document.querySelector('.guessField'); var guessCount = 1;
var resetButton;
guessField.focus();
guessSubmit.addEventListener('click', checkGuess);
function checkGuess(){
//获取输入框的值
var userGuess = Number(guessField.value);
if (guessCount === 1) {
guesses.textContent = '上次猜的数:';
}
guesses.textContent += userGuess + ' ';
if(userGuess === randomNumber){
lastResult.textContent ='恭喜你!猜对了';
lastResult.style.backgroundColor ='green';
lowOrHi.textContent = '';
} else if(guessCount === 10){
lastResult.textContent = '!!! GAME OVER !!! ';
setGameOver();
}
else{
lastResult.textContent ='你猜错了!';
lastResult.style.backgroundColor ='red';
if(userGuess<randomNumber){
lowOrHi.textContent ='你猜低了!'
}else if(userGuess>randomNumber){
lowOrHi.textContent ='你猜高了';
}
}
guessCount++;
guessField.value='';
guessField.focus();
}
function setGameOver(){//游戏结束
//禁止输入和提交
guessField.disabled =true;
guessSubmit.disabled =true;
// 添加开始新游戏按钮 在html的底部
resetButton = document.createElement('button');
resetButton.textContent ='开始新游戏';
document.body.appendChild(resetButton);
// 在开始新游戏 设置了一个事件监听器 resetGame()
resetButton.addEventListener('click',resetGame); }
function resetGame(){//重新开始游戏
//重置数据
guessCount =1;
//将 class='resultParas' 下面的p元素的内容清空
var resetParas = document.querySelectorAll('.resultParas p');
for (var i = 0;i<resetParas.length;i++){
resetParas[i].textContent = '';
}
//移除 resetButton按钮
resetButton.parentNode.removeChild(resetButton); //启用表单元素,清空文本域并聚焦于此,准备接受新猜测的数字。 guessField.disabled = false;
guessSubmit.disabled = false;
guessField.value = '';
guessField.focus(); //删除lastResult段落的背景颜色。
lastResult.style.backgroundColor = 'white';
//生成一个新的随机数!
randomNumber = Math.floor(Math.random() * 100) + 1;
} </script>
</body>
</html>

本文学习案列来自:MDN web docs

js 学习一 猜数字游戏的更多相关文章

  1. python学习:猜数字游戏

    猜数字游戏   系统生成一个100以内的随机整数, 玩家有6次机会进行猜猜看,每次猜测都有反馈(猜大了,猜小了,猜对了-结束) 6次中,猜对了,玩家赢了. 否则系统赢了   #!/usr/bin/en ...

  2. jQuery学习(1)猜数字游戏

      jQuery是一个快捷.小型且特征丰富的JavaScript库.它使得HTML文档遍历及操作,事件处理,动画,Ajax等更简洁方便.它通过调用一个简单易用的API,就能在各种浏览器中使用.由于jQ ...

  3. Python3基础学习-while循环实例- 猜数字游戏

    需求: 猜数字游戏, 要求如下: 给个数字, 比如是66. 让用户一直猜,直到猜对退出. 中间输入q或Q也能退出 如果猜大了,提示用户猜小一点; 如果猜小了,提示用户猜大一点; likely = 66 ...

  4. 【原创Android游戏】--猜数字游戏V1.1 --数据存储,Intent,SimpleAdapter的学习与应用

    --------------------------------------------------------------- V0.1版本 上次做完第一个版本后,发现还有一些漏洞,并且还有一些可以添 ...

  5. python学习笔记 ——python写的猜数字游戏 002

    from sys import exit import random def Arrfor(str): #CONTST = CONTST + 1 artificial = input("请输 ...

  6. 【原创Android游戏】--猜数字游戏Version 0.1

    想当年高中时经常和小伙伴在纸上或者黑板上或者学习机上玩猜数字的游戏,在当年那个手机等娱乐设备在我们那还不是很普遍的时候是很好的一个消遣的游戏,去年的时候便写了一个Android版的猜数字游戏,只是当时 ...

  7. 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

    最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...

  8. python猜数字游戏console版本

    加入python学习小组后的第一次作业,python GUI写猜数字游戏.由于加班比较多,第一步先实现console版本,下一步再实现GUI版本. 虽然猜数字游戏是个小游戏,但是涉及到的基础知识点还是 ...

  9. 实验三 Java猜数字游戏开发

    课程:Java实验   班级:201352     姓名:程涵  学号:20135210 成绩:             指导教师:娄佳鹏   实验日期:15.06.03 实验密级:         ...

随机推荐

  1. SpringBoot启动时的Banner设置

    Spring Boot程序启动的时候输出的由字符组成的Spring符号并不陌生.这个是Spring Boot为自己设计的Banner: 1. 第一种方式:修改的时候,进行设置,在Application ...

  2. legend3---lavarel常用操作代码

    legend3---lavarel常用操作代码 一.总结 一句话总结: 要自己总结一下常用代码,这样才方便,也才有收获 1.路由示例:Route::get('/login','Home\Login\L ...

  3. 后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」

    后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」 一.总结 一句话总结: laravel-ide-helper作用是:代码提示 larav ...

  4. Adding property to a json object in C#

    Adding property to a json object in C#   you can do it with a dynamic object dynamic obj = JsonConve ...

  5. leetcode 78子集

    采用回溯法:对于例子图解执行过程如下,其中向上的分支为向下递归,向下的分支为第二次递归,因此已经push了对应的下标的值,则从根到右边连起来的路径即为组合 由于整个过程类似于二叉树的中序遍历,因此代码 ...

  6. Windows10无法打开NVIDA控制面板

    今天开机,突然发现NVIDA控制面板无法打开,在桌面右键启动nView Desktop Manager,点击启动,发现也无法启动控制面板,并且提示[您当前未使用连接到nvidia gpu的显示器].查 ...

  7. ControlTemplate in WPF —— RadioButton

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...

  8. apache访问日志

    #错误日志ErrorLog "logs/dummy-host2.example.com-error_log" #访问日志CustomLog "logs/dummy-hos ...

  9. SparseLDA算法

    2 SparseLDA算法 本章将介绍一种Gibbs Sampling算法的加速算法——SparseLDA [9],它主要利用LDA 模型的稀疏性,来达到加速以及节省内存的目的,是一种精确算法(没有近 ...

  10. ALV SCRIPTFROM 内容比较全的一个例子

    REPORT  ZQM_PRT04. *----------------------------------------------------------------------* * TABLES ...