用js字符串 实现猜数字 抽奖游戏

这篇博客介绍了如何利用JavaScript的字符串方法和random方法来创建猜数字和抽奖游戏。讲解了charAt、charCodeAt等字符串操作,以及如何生成随机整数,并提供了从数组中随机选取元素、生成数字数组和随机字母数字字符串的示例。最后,展示了如何设计一个简单的猜数字游戏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串的使用

charAt() 获取指定位置的字符
charCodeAt() 获取指定位置的字符unicode码字符串对象[索引] 也可以通过索引获取某个位置的字符
concat() 拼接字符串
Slice() 从指定的起始和结束位置,截取字符串,不包括结束 当结束索引是负数时,真实结束位置等于字符的个数加上指定的结束位置
substring() 从指定的起始和结束位置,截取字符串,不包括结束
注意:1 两参数以最小参数为起始位置,最大参数为结束位置
2 参数小于等于零时,都按零取值

substr() 从指定的起始位置,按推定长度截取字符串
indexOf() 获取指定字符(串)的索引值,indexOf每次会从上次执行的位置开始
lastIndexOf() 从字符串的尾部开始获取指定字符(串)的索引值
trim() 删除字符串前后空格
to(Locale)UpperCase 将字符转换成大写
to(Locale)LowerCase 将字符转换成小写
search() 查找指定字符串的起始索引,或者按正则表达式查找
replace(被替换的内容,替换内容)
split(“分割符”) 按指定的分割符把字符串拆分成数组,并返回
注:如果要把普通字符串分割成数组,分割符用不加空格的双引号formCharCode(unicode编码列表,) 这个方法属于String对象,把指定的一组编码转成字符串
补充:
Window.isNaN() 判断一个变量是不是一个非数值的类型,如果是非数值类型,返回true

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			console.log(Math.PI);
			console.log(Math.random());
			console.log(Math.floor(12.82356));
			console.log(Math.ceil(12.82356));
			console.log(Math.round(12.82356));
			console.log(Math.abs(12.82356));
			console.log(Math.max(12,10,65,32,5));
			var arr = [12,10,65,32,5]
			//参数如果是数组,且记加上前缀...
			console.log(Math.max(...arr));
			console.log(Math.min(12,10,65,32,5));
			console.log(Math.sin(0.5));
			console.log(Math.pow(5,3));
			console.log(Math.sqrt(5));
			var str = "5326";
			console.log(str);
			//可以把字符串转数值型
			console.log(window.parseInt(str));
			
			//Date
			var  now = new Date();
			console.log(now);
			console.log(now.toString());
			console.log(now.valueOf());
			
			var date1 = new Date("2020-11-3 14:15:20");
			console.log(date1);
			
			var date2 = new Date(2020,11,03);
			console.log(date2);
			console.log(date2.getYear());
			console.log(date2)
			
			//Array
			//字面量建立数组
			var arr = [];
			arr[0] = 12;
			arr[1] = "str";
			arr[5] = 30;  //自动增长,长度为6
			//通过构造函数创建数组
			var arr1 = new Array();
			arr1[0] = 10;
			arr1[4] = 20;
			var arr2 = new Array(10,45,3);
			console.log(arr1.toString());
			console.log(arr1.valueOf());
			arr1.push(30,80,[120,78]);
			console.log(arr1.toString());
			arr1.unshift(5,[200,125]);
			console.log(arr1.toString());
			arr1.shift([5,200,125]);
			console.log(arr1.toString());
			arr1.reverse();
			console.log(arr1.toString());
			console.log(arr1.sort(function(a,b){
				if(a>b){
					return 1;
				}
				if(a == b){
					return 0;
				}
				if(a<b){
					return -1;
				}
			}));
			var arr3 = arr1.concat(arr2);
			console.log(arr3.slice(2,4));
			console.log(arr3.splice(2,3));
			var arr4 = [10,20,0,5,32];
			console.log(arr4.indexOf(0));
			console.log(arr4.lastIndexOf(5));
			// var arr4Every = arr4.every(function(item,index,array){
			// 	if(item >= 0 ){
			// 		return true;
			// 	}
			// });
			var arr4Every = arr4.every(everyF);
			console.log(arr4Every);
			function everyF(item,index,array){
				if(item >= 0 ){
					return true;
				}
			}
			arr4.forEach(forEachF);
			function forEachF(item,index,array){
				item = item*index;
				console.log(item);
			}
			console.log(arr4);
			
			var str1 = "中国一定能崛起";
			str1 = "  A国会一定会衰落  ";
			console.log(str1.charAt(1));
			console.log(str1.charCodeAt(1));
			//ASCII GBK2312  UTF_8  UNICODE
			console.log(str1[3]);
            console.log(str1.concat(" ","哪是一定的"));
			console.log("slice:"+str1.slice(0,-2));//真实结束位置等于字符的个数加上指定的结束位置
		    console.log("substring:"+str1.substring(2,0));
			console.log(str1.substr(5,2));
			console.log(str1.indexOf("一定"));
			console.log(str1.trim());
			var str2 = "hell world!";
			console.log(str2.toUpperCase());
			console.log(str2.toLocaleUpperCase());
			console.log(str1.search("一定"));
			console.log(str1.replace(//gi,"能")); ///会/gi正规则表达式
			console.log(str1.split("会"));
			var arr = str1.split("");
            //toString() valueOf() 
			console.log(arr);
			var str3 = String.fromCharCode(65,66,67);
			console.log(str3);
			
		</script>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			//查找字符串中所有o出现的位置
			var str = "slkdolkoqqommoaaoxxxo";
			//var i = 0;
			var arr = [];
			var index = 0;
			do{				
				//var indexTemp = str.indexOf("o",i);
				var indexTemp = str.indexOf("o",indexTemp+1);
				if(indexTemp != -1)        //只有一条语句的时候可以不加{}
				  arr[index] = indexTemp;
				index++;				
				//i= indexTemp+1;
			}while(indexTemp != -1);
			console.log(arr.toString());
			var arr1 = [];
			do{
				var indexTemp = str.indexOf("o",indexTemp+1);
				if(indexTemp != -1)        //只有一条语句的时候可以不加{}
				  arr1.push(indexTemp);
			}while(indexTemp != -1);
			console.log(arr1.toString());
			
			//把字符串中所有的o替换成!
			var arr2 = "slkdolkoqqommoaaoxxxo";			
	        //for 实现
			for(var i=0;i<arr2.length;i++){
			  arr2 = arr2.replace("o","!");			
			}			
			console.log(arr2);
			var arr3 = "slkdolkoqqommoaaoxxxo";
			//do  while 实现
	        do{
				arr3 = arr3.replace("o","!")
			}while(arr3.indexOf("o") > -1); //indexOf每次会从上次执行的位置开始
			console.log(arr3);
			
		</script>
	</body>
</html>

JavaScript random方法得到随机整数(转)

一、得到1-3的随机整数

代码:
document.write(Math.ceil(Math.random()*3));//得到1-3的整数
总结:Math.random()方法得到随机小数 *3将会得到小于3的数字,Ceil方法始终向上舍入。

二、得到0-3的随机整数
代码:
document.write(Math.floor(Math.random()*4));//得到0-3的整数
总结:Math.random()方法得到随机小数 *4将会得到小于4的数字,floor方法始终向下舍入。

附:舍入数字三个方法
Math.round() //当小数是0.5或者大于0.5的时候向上入一位(四舍五入)
Math.ceil() //始终向上舍入
Math.floor() //始终向下舍入

三.从数组中随机获取成员

var items = [12,a,9,p,8];
var randomItem = items[Math.floor(Math.random() * items.length)];

四.生成从0到指定值的数字数组

var numbersArray = [] , max = 100;
for( var i=1; numbersArray.push(i++) < max;); // numbers = [1,2,3 … 100]

五.生成随机的字母数字字符串

function radomcharnum(len){

var str = “”;

for(;str.length<len;str+=Math.random().toString(36).substr(2));

return str.substr(0,len);

}

六.得到指定范围的整数(需要Math.floor()或者parseInt()或者Math.ceil())

var randomNum = Math.random()*5;

console.log(parseInt(randomNum));//1

console.log(Math.floor(randomNum));//0

Math.floor(Math.random()*(max-min+1)+min);//max为期待的最大的数,min为最小的数 使用parseInt也是可以的。

猜数字游戏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //生成随机数
        //给用户提示猜范围,并提供输入的入口
        //游戏可以玩3局
        var score=0;        //score    成绩
        for(var j=1;j<4;j++){    //设定游戏次数初始值为1,每消耗一次机会j++ 一共三次机会  第一层循环
            var num=Math.ceil(Math.random()*100);   //是取[0,1)之间的随机数,则math.random()*100指取0-100之间的随机数  方法二:Math.round(Math.random()*100)也可取整
            for(var i=0;i<3;i++){
            var temp=prompt('请输入1-100之间的一个整数');
            if(isNaN(parseInt(temp))){          //判断用户是否输入非整数以外的字符   如果输入为整数游戏正常进行反之给予提示
                alert('要求必须数字类型');
            }
            temp=parseInt(temp);      //parseInt转换整数
            
            //比较用户输入的数和保存随机数
            if(num==temp){
                alert('恭喜你猜对了');
                score+=3;
                break;
            }else if(num>temp){
                alert('您输入的值小了,继续加油');
            }else if(num<temp){
                alert('您输入的值大了,继续加油');
            }
            if(i==2){           //如果三次机会都用完  则第一轮结束开始下一轮
                alert('GAME OVER!');
            }
        }
        alert('你玩了'+j+'局得分:'+score);
        }
        //提示比较结果
        
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值