js 学习一 猜数字游戏
知识点
- js 操作元素 增 (document.createElement(),document.body.appendChild()),
删(parentNode.removeChild()) ,改(guessField.disabled = false;) 查(document.querySelector('.lastResult')) - if 判断语句 for 循环语句
- js 方法 自定义方法 用js方法(Math.floor()Math.random())
- 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 学习一 猜数字游戏的更多相关文章
- python学习:猜数字游戏
猜数字游戏 系统生成一个100以内的随机整数, 玩家有6次机会进行猜猜看,每次猜测都有反馈(猜大了,猜小了,猜对了-结束) 6次中,猜对了,玩家赢了. 否则系统赢了 #!/usr/bin/en ...
- jQuery学习(1)猜数字游戏
jQuery是一个快捷.小型且特征丰富的JavaScript库.它使得HTML文档遍历及操作,事件处理,动画,Ajax等更简洁方便.它通过调用一个简单易用的API,就能在各种浏览器中使用.由于jQ ...
- Python3基础学习-while循环实例- 猜数字游戏
需求: 猜数字游戏, 要求如下: 给个数字, 比如是66. 让用户一直猜,直到猜对退出. 中间输入q或Q也能退出 如果猜大了,提示用户猜小一点; 如果猜小了,提示用户猜大一点; likely = 66 ...
- 【原创Android游戏】--猜数字游戏V1.1 --数据存储,Intent,SimpleAdapter的学习与应用
--------------------------------------------------------------- V0.1版本 上次做完第一个版本后,发现还有一些漏洞,并且还有一些可以添 ...
- python学习笔记 ——python写的猜数字游戏 002
from sys import exit import random def Arrfor(str): #CONTST = CONTST + 1 artificial = input("请输 ...
- 【原创Android游戏】--猜数字游戏Version 0.1
想当年高中时经常和小伙伴在纸上或者黑板上或者学习机上玩猜数字的游戏,在当年那个手机等娱乐设备在我们那还不是很普遍的时候是很好的一个消遣的游戏,去年的时候便写了一个Android版的猜数字游戏,只是当时 ...
- 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。
最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...
- python猜数字游戏console版本
加入python学习小组后的第一次作业,python GUI写猜数字游戏.由于加班比较多,第一步先实现console版本,下一步再实现GUI版本. 虽然猜数字游戏是个小游戏,但是涉及到的基础知识点还是 ...
- 实验三 Java猜数字游戏开发
课程:Java实验 班级:201352 姓名:程涵 学号:20135210 成绩: 指导教师:娄佳鹏 实验日期:15.06.03 实验密级: ...
随机推荐
- LeetCode 第 3 题:无重复字符的最长子串(滑动窗口)
LeetCode 第 3 题:无重复字符的最长子串 (滑动窗口) 方法:滑动窗口 滑动窗口模板问题:右指针先走,满足了一定条件以后,左指针向前走,直到不满足条件. 特点:左右指针的方向是一致的,并且是 ...
- 堆里面的分区:Eden,Survivor(from+ to),老年代,各自的特点
堆里面分为新生代和老生代(java8取消了永久代,采用了Metaspace),新生代包含Eden+Survivor区,survivor区里面分为from和to区,内存回收时,如果用的是复制算法,从fr ...
- _parameter:解决There is no getter for property named in class java.lang.String
我们知道在mybatis的映射中传参数,只能传入一个.通过#{参数名} 即可获取传入的值. Mapper接口文件: public int delete(int id) throws Exception ...
- Arch linux(UEFI+GPT)安装及后续优化教程
Arch Linux安装过程中需要从远程存储库获取软件包,电脑需要有效的互联网连接. 1.联网 查看是否有网 ping www.baidu.com 同步时间 timedatectl set-ntp t ...
- Mysql超强卸载
1.控制面板——>所有控制面板项——>程序和功能,卸载mysql server! 2.删除MySQL文件,尤其是ProgramData里面的隐藏文件MySQL,我当时没有删除,重新安装My ...
- var $this = $(this)
jQuery: What’s the Difference Between $(this), $this, and this? What about $this? $this is a little ...
- Promise 的使用
Promise 的使用,用于异步处理 ,以及解决地狱回调的: 1. Promise 是一个构造函数,既然是构造函数,我们就可以 new Promise() 就可以得到一个 Promise 的实例 2 ...
- 从curl命令获取libcurl的用法
libcurl的用法参数太多 有时候弄不好 可以先用curl命令实现了 然后获取相应的libcurl代码 比如要上传文件 curl -T d:/h.txt http://demo.xudp.cn/up ...
- leetcode-easy-sorting and searching- 278 First Bad Version
mycode 96.42 # The isBadVersion API is already defined for you. # @param version, an integer # @ret ...
- leetcode 188. 买卖股票的最佳时机 IV
参见 本题采用了第一列初始化后,从左侧向右开始递推的方式,但从上往下递推应该也成立,以后尝试一下 想写一个普适性的适用于n天交易k次持有j股的状态方程但是有问题:对于交易次数过多的情况数组会超出界限: ...