js 模拟超级大LE透中头奖 统计中头奖需要购买的彩票次数以及购买总金额
<!DOCTYPE html>
<html>
<head>
<title>超级大LE透模拟</title>
</head>
<div id="container">
超级大LE透
<br>
规则:超级大LE透基本投注是指从前区号码中任选5个号码,并从后区号码中任选2个号码的组合进行投注。其中,前区号码由01—35共35个号码组成,后区号码由01—12共12个号码组成。每注基本投注金额人民币2元。
<br>
一等奖
<br>
投注号码与当期开奖前后区相同,顺序不限;
<br>
即前5个相同(不限顺序),后2个相同(不限顺序)...
<br>
希望没理解错
</div>
<br>
<button onClick="main()">开始抽奖</button>
<body>
<script type="text/javascript">
// main();
// 主函数
function main(){
var winNums = getLotteryNums();// 获取开奖号码
document.querySelectorAll("button")[0].style.display = "none";// 隐藏按钮
show("本期开奖号码:"+JSON.stringify(winNums));
show("开始购买...");
show("购买中...请稍后..."); var buyCount = 1;// 购买次数统计
var isFirstPrizeB = false;// 是否中奖
setTimeout(function(){// 稍微延迟让dom有写入时间
while(!isFirstPrizeB){// 如果没中奖则继续调用buyLottery()购买彩票
isFirstPrizeB = isFirstPrize(winNums,buyLottery());
buyCount++;
}
show("购买次数:"+buyCount+"次");
show("花费:"+(buyCount*2)+"元");
},50);
} // 随机获取7位号码(前区在[1-35]之间获取,后区在[1-12]之间获取)
function getLotteryNums(){
var nums = []; while(nums.length < 7){
var oneNum = nums.length >= 5 ? getRandomIntInclusive(1,12) : getRandomIntInclusive(1,35);
if(nums.indexOf(oneNum) > -1){
continue;
}
nums.push(oneNum);
}
return nums;
} // 购买彩票
function buyLottery(){
return getLotteryNums();
} // 是否头奖中奖
function isFirstPrize(winNums,buyNums){
var winNumsTop = getNumsTop(winNums);
var winNumsEnd = getNumsEnd(winNums);
var buyNumsTop = getNumsTop(buyNums);
var buyNumsEnd = getNumsEnd(buyNums);
for(var i in buyNumsTop){
var r = buyNumsTop[i];
if(winNumsTop.indexOf(r) <= -1){
return false;
}
} for(var i in buyNumsEnd){
var r = buyNumsEnd[i];
if(winNumsEnd.indexOf(r) <= -1){
return false;
}
}
show("中奖了!");
show("你买的号码是:" + JSON.stringify(buyNums));
return true;
} // 获取前区号码(前5位)
function getNumsTop(Nums){
return Nums.slice(0,5);
} // 获取后区号码(后2位)
function getNumsEnd(Nums){
return Nums.slice(-2);
} // 在值域为[min,max]的集合中获取一个随机整数
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min; //The maximum is inclusive and the minimum is inclusive
} // 写内容到dom
function show(html){
console.log(html);
var oriHtml = document.getElementById("container").innerHTML;
document.getElementById("container").innerHTML = oriHtml + "<br>" + html +"<br>";
}
</script>
</body>
</html>
执行结果:

js 模拟超级大LE透中头奖 统计中头奖需要购买的彩票次数以及购买总金额的更多相关文章
- python模拟双色球大乐透生成算法
每天练习一段python代码,健康生活一辈子.晚上下班没事,打开电脑继续编写python代码!今天分享的一个是大家熟悉的双色球彩票的游戏,根据这个进行写的一个python算法,代码精简,肯定有bug, ...
- python—模拟生成双色球号和大乐透号
下边这个脚本,比较适合初级学习基本python语法用.但是,不精炼建议可参考https://www.cnblogs.com/Formulate0303/p/14031748.html的写法. 大乐透玩 ...
- Gremlins.js – 模拟用户随机操作的 JS 测试库
Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...
- 由chrome剪贴板问题研究到了js模拟鼠标键盘事件
写在前面 最近公司在搞浏览器兼容的事情,所有浏览器兼容的问题不得不一个人包了.下面来说一下今天遇到的一个问题吧 大家都知道IE下面如果要获得剪贴板里面的信息的话,代码应该如下所示 window.cli ...
- node.js模拟qq漂流瓶
(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) node.js模拟简易漂流瓶,页面有扔瓶子和捡瓶子的功能,一个瓶子只能被捡到一次,阅读完就置状态位, ...
- 单篇文章JS模拟分页
废话部分 前两天做了一个前台分页插件,支持ajax读取数据绑定前台 和 url带页码参数跳转两种方式.于是稍加改动,做了一个单篇文章js模拟分页的代码,为什么说是模拟分页呢?因为在服务器响应HTML请 ...
- node.js之十大Web框架
之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了.再到后来是因为Settings-Sync插件二次开发,我需要用node. ...
- JS模拟滚动条(有demo和源码下载,支持拖动 滚轮 点击事件)
由于游览器自带的滚动条在美观方面并不是很好看,所以很多设计师希望通过自己设计出来的滚动条来做这样的效果,JS模拟滚动条其实很早看到jQuery有这样的插件或者KISSY有这样的组件,一直想着自己什么时 ...
- DOM操作相关案例 模态对话框,简易留言板,js模拟选择器hover,tab选项卡,购物车案例
1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <h ...
随机推荐
- pyhon 模块 IP/端口 扫描
用到了python-nmap模块(注意是 python-nmap模块 不是nmap模块 且不要安装nmap模块!!!!) windows 中还需要下载一个 nmap 软件: 下载地址: https:/ ...
- pow()函数结果强制转化为int造成误差的分析
开发环境:codeblocks,编译器gcc 在计算102时调用pow(10, 2),再强制类型转换为int类型后输出: printf(,)); 得到的结果却是:99 这是因为 double pow( ...
- Sublime text3 连接sftp/ftp(远程服务器)
1.按下Ctrl + Shift + P调出命令面板2.在输入框中输入Sftp,按回车下载3.建一个新的文件夹放到左边的项目栏中4.右击文件夹,选中SFTP/FTP,点击Map to Remote5. ...
- python学习之Numpy.genfromtxt
Python 并没有提供数组功能,虽然列表 (list) 可以完成基本的数组功能,但它并不是真正的数组,而且在数据量较大时,使用列表的速度就会慢的让人难受.Numpy 提供了真正的数组功能,以及对数据 ...
- Flask开发微电影网站(九)
1.后台管理之电影管理 1.1 电影管理之所有电影收藏列表 1.1.1 电影管理之电影收藏列表视图函数 在admin目录下的views.py文件中定义电影收藏列表视图函数 电影收藏列表视图函数需要被登 ...
- df -h hang 问题
此处仅截取原文中的解决方案,以便快速查找解决方法. 解决方法如下:1. systemctl restart proc-sys-fs-binfmt_misc.automount; 2. 升级到最新 sy ...
- Jmeter性能测试之分布式(五)
Jmeter是纯Java开发的开源性能测试工具, Java程序是很吃内存的, 有时候一台负载机给服务器的压力是不够的, 需要很多台同时负载, 这个时候就需要用到分布式了. 1. 组网图大概就是这样的 ...
- MATLAB读视频报错 Unable to initialize the video obtain properties (videoreader in Matlab)
这个bug卡了半天,这里记录一下 Error using VideoReader/init (line ) Could not read file due to an unexpected error ...
- python开发环境搭建及numpy基本属性-【老鱼学numpy】
目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...
- Base64 加解密
import java.io.UnsupportedEncodingException; import org.apache.tomcat.util.codec.binary.Base64; /** ...