• 这是一个猜字谜的小游戏


    这是一个你任意输入一个1-100数字的小游戏,如果你输入的值和随机数生成的值相等的话,游戏结束你就胜利啦
    或者你输入的次数大于2次的话游戏同样停止啦~
    你输入的数大于或者小于随机数或者非数字都会报错
    界面如下

    代码如下

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<title>number guessing game</title>
    	<link rel="stylesheet" href="">
    	<style type="text/css" media="screen">
    		html{
    			font-family: sans-serif;
    		}
    		body{
    			 100%; height: 100%; 
    		}
    	#box{
    		margin: 0 auto;
    		 580px;
    		height: 500px;
    		border: 1px solid red; 
    		text-align: center;
    		-moz-box-shadow:  0 0 20px red;
        -webkit-box-shadow:  0 0 20px red;
         box-shadow:  0 0 20px red;	 
    
    	}
    		h1{
    			background: linear-gradient(to right, red, blue);
            -webkit-background-clip: text;
            color: transparent;
            padding-top: 15px;
            font-size: 48px;
        
    		}
    		.number{
    			font-size: 20px;
    			background: linear-gradient(to right,pink,black);
    			-webkit-background-clip: text;
    			color: transparent; 
    			padding-top: 10px;
    			text-align: cenetr;
    		}
    		.form label{
    			font-size: 25px; 
    			color: blue;
    		}
    		.lastResult{
    			color: white;
    			padding: 3px;
    		}
    
    		.guessSubmit{
    			background: blue;
    			color: #fff;
    			border: none;
    			padding: 5px 5px;
    			margin-left: 10px; 
    			border-radius: 5px;
    		}
    		.guessField{
    			border: 1px solid #aaa;
    			border-radius: 5px;
    			padding: 5px 5px;
    		}
    		.lowOrHi{
    			font-size: 18px; 
    			font-weight: bold; 
    			color: blue;
    
    
    		}
    		.lastResult{
    			font-size: 20px; 
    			font-weight: bold;
    			color: black;
    			 100px;
    			text-align: center;
    			display: block;
    			margin: 0 auto;
    		}
    		.guesses{
    			font-size: 20px;
    			font-weight: bold;
    			color: pink;
    		}
    		button{
    			padding: 15px 25px;
    			border: none;
    			background-color: deepskyblue;
    			color: #fff;
    			border-radius: 30%;
    			font-size: 28px;
    			border-color: #fff;
    		}
    			
    	</style>
    		
    </head>
    <body>
    	<div id="box">
    		<h1>number guessing game</h1>
    	<p class="number">we have selected a randokm numebr between 1 and 10
    		<div class="form">
    		<label for="guessField">
    			Enter a guess:
    		</label>
    		<input type="text" id="guessField" class="guessField">
    		<input type="submit" value="submit guess" class="guessSubmit">
    		</div>
    		<div class="resultParas">
    		<p class="guesses"></p>
    			<p class="lastResult"></p>
    			<p class="lowOrHi"></p>
    		</div>
    	</div>
    		<script>
    			// math.random在1-100之间的一个伪随机数
    			let randomNumber=Math.floor(Math.random()*100)+1;
    			const guesses=document.querySelector('.guesses');
    			const lastResult=document.querySelector('.lastResult');
    			const lowOrHi=document.querySelector('.lowOrHi');
    			//提交输入的值
    			const guessSubmit=document.querySelector('.guessSubmit');
    			//用户输入的值
    			const guessField=document.querySelector('.guessField');
    
    			let guessCount=1;
    			let resetButton;
    			function checkGuess(){
    				let userGuess=Number(guessField.value);//用户猜测的值 输入input框中的值
    				if(guessCount===1){
    					guesses.textContent='Previous guesses';
    				}
    				guesses.textContent+=userGuess+'';
    				// 如果用户输入的值和随机数值是相等的
    				if(userGuess===randomNumber){
    					lastResult.textContent='congratulations!you got it right!';
    					lastResult.style.backgroundColor='green';
    					lowOrHi.textContent='';
    					setGameOver();
    				}else if(guessCount===2){
    					lastResult.textContent='!!!Game Over!!!!';
    					lowOrHi.textContent='';
    					setGameOver();
    				}else{
    					lastResult.textContent='Wrong!';
    					lastResult.style.backgroundColor='red';
    					if(userGuess<randomNumber){
    						lowOrHi.textContent='Last guess wats too low!';
    					}else if(userGuess>randomNumber){
    						lowOrHi.textContent='last guess was too high!'
    					}
    				}
    				guessCount++;
    				guessField.value='';
    				guessField.focus();
    			}
    			guessSubmit.addEventListener('click',checkGuess);
    			function setGameOver(){
    				//游戏结束的标志
    				guessField.disabled=true;
    				guessSubmit.disabled=true;
    				resetButton=document.createElement('button');
    				resetButton.textContent='Start new Game';
    				document.body.appendChild(resetButton);
    				resetButton.addEventListener('click',resetGame);
    			}
    			// 重置游戏
    			function resetGame(){
    				guessCount=1;
    				const resetParas=document.querySelectorAll('.resultParas p');
    				for(var i=0;i<resetParas.length;i++){
    					resetParas[i].textContent='';
    				}
    				resetButton.parentNode.removeChild(resetButton);
    				guessField.disabled=false;
    				guessSubmit.disabled=false;
    				guessField.value='';
    				guessField.focus();
    				lastResult.style.backgroundColor='white';
    				randomNumber=Math.floor((Math.random()*100)+1);
    			}
    		</script>
    </body>
    </html>
    

    本文学习自:https://github.com/mdn/learning-area/blob/master/javascript/introduction-to-js-1/first-splash/number-guessing-game.html#L63

  • 相关阅读:
    Hive2.0函数大全(中文版)
    Centos7 安装并配置redis
    Java内部类
    beeline: 新版连接Hive server的工具
    jsoup的Document类
    Jsoup类
    jsoup的Node类
    jsoup的Element类
    Java中的多线程
    Java中的文件IO流
  • 原文地址:https://www.cnblogs.com/smart-girl/p/10527174.html
Copyright © 2020-2023  润新知