小霸王打字机

2019-01-17 13:15:55 浏览数 (1)

打字小游戏

依稀记得童年时期,站在电视机傍边,和自己的小伙伴玩小霸王学习机的情景。时间如白驹过隙,现在小伙伴的孩子都会打酱油了,而自己为了生活和梦想依旧在奋斗。怀念青春,就写了这样的一个小游戏。

代码语言:javascript复制
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>小霸王学习机</title>
	<style>
		body{
			margin:0;/*开启弹性布局,让弹性布局的子元素水平居中对齐,垂直居中对齐*/
			padding:0;
			display:flex;
			/* 设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式 */
			justify-content:center;
			align-items:center;
			/*文字居中*/
			text-align:center;
			/*设置背景颜色的经像渐变*/
			background:radial-gradient(circle,#FFF,#000,#000);
			}
		#char{
			font-size: 400px;
			color: lightgreen;
			/*设置文字阴影*/
            /*text-shadow: 水平位置 垂直位置 模糊距离 阴影颜色*/
            /*位置可以为负值*/
			text-shadow: 0 0 50px #666;
			}
		#result{
			font-size: 20px;
			color: #888;
			}
			/*找到id为char及类名为error的div元素*/
		#char.error{
			color:red;
			}
	</style>
</head>
<body>
	<div>
	<div id="char">A</div>
	<div id="result">请在按键上按下屏幕上显示的字母</div>
	</div>
	<script>
		//来保存65-90之间的任意一个随机整数
		var code;
		//正确的次数
		var okCount = 0;
		//错误的次数
		var errorCount = 0;
		//获取显示字符的div
		var charBox = document.getElementById('char');
		//获取显示结果的div
		var result = document.getElementById('result');
		//获取A-Z之间的任意一个字符
		function show(){
			//获取[0,1)
			var rand = Math.random();
			code = rand*26;
			//floor向下取整
			code = Math.floor(code);//0到25的整数
			code = code 65;//获取65-90自己拿的任意整数
			console.log(code);
			//将unicode的10进制转化为对应的字符
			var char = String.fromCharCode(code);
			console.log(char);
			//把字符显示在界面上
			charBox.innerHTML = char;
			}
			show();//调用方法
			//键盘按下的事件
			window.onkeydown = function(ev){
				//获取键盘对应的10进制编码
				var key = ev.keyCode;
				//判断按下的和随机获取的字符相等
				if(key == code){
					//正确,计数加1
					okCount  ;
					//显示下个字符
					show();
					//通过计js给div添加类名,添加按键正确的动画
					charBox.classNmae = "animated zoomIn";
				}else{
					//按键错误,错误计数加1
					errorCount  ;
					//添加按键错误的动画
					charBox.className = "error";
				}
				showResult();
				//500毫秒后清除动画
				setTimeout(clearAnimated,500);
			}
			function clearAnimated(){
				//负责清除动画
				charBox.className="";
			}
			//展示计算的结果
			function showResult(){
				var rate = 100*okCount/(okCount errorCount);
				//显示正确个数,错误个数和正确率
				result.innerHTML= '正确'   okCount '个'   '错误' errorCount '个' '正确率' rate.toFixed(2) '%';//toFixed(2)保留两位小数
			}    			
	</script>
</body>
</html>

总结

就是简单的实现了按下键盘和屏幕上显示的字母一样时,下面的计数实时显示出正确(错误)个数和计算出正确率。然后显示在界面上。主要是键盘按下事件获取按下的字符和随机显示的字符是否相等。

0 人点赞