自己编一个大乐透选号器
新手,最近自己尝试着做了一个体彩大乐透的选号器,感觉挺有意思的,下面分享给大家!
具体步骤:
1、新建一个基于对话框的MFC工程。
2、按下图所示添加显示前区号码的5个编辑框,显示后区号码的2个编辑框,一个开始按钮。
3、在OnInitDialog()函数中设置时间种子
BOOL C体彩大乐透Dlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标SetIcon(m_hIcon, FALSE); // 设置小图标// TODO: 在此添加额外的初始化代码srand((time(0))); // 以时间为种子,产生随机数return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
为什么要设置这个呢,不然的话每次产生的随机数都是固定的。所以能不能输出中奖号码,就得看当前是否占据天时地利人和了
4、开始按钮的响应函数中设置定时器
SetTimer(1,40,NULL);
5、在WM_TIMER消息的响应函数中实现前区5位号码、后区2位号码的依次输出。
这里模拟真实开奖环境,7个球依次开出号码,因为每开出一个球大概都要摇动几十秒。
所以每产生1个号码都定时摇号几十秒,到时间后再确定该号码,并保证与前面已开出的号码保持互斥,再开始下一个球。
这样开出了7个号码,因为是随机产生的,所以再排个序,最终显示在下面静态文本框中,就跟电视中真是开奖环节差不多了。
void C体彩大乐透Dlg::OnTimer(UINT_PTR nIDEvent)
{// TODO: 在此添加消息处理程序代码和/或调用默认值// 开前区第1位号码if (bTimerSwitch[0]){nFront[0] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_1, nFront[0]); // 实时更新// 时间到,确定号码if (++nCount[0] >= 40){bTimerSwitch[0] = false;bTimerSwitch[1] = true;}}// 开前区第2位号码if (bTimerSwitch[1]){nFront[1] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_2, nFront[1]); // 实时更新// 时间到,确定号码if (++nCount[1] >= 40 && nFront[1] != nFront[0]){bTimerSwitch[1] = false;bTimerSwitch[2] = true;}}// 开前区第3位号码if (bTimerSwitch[2]){nFront[2] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_3, nFront[2]); // 实时更新// 时间到,确定号码if (++nCount[2] >= 40 && nFront[2] != nFront[0] && nFront[2] != nFront[1]){bTimerSwitch[2] = false;bTimerSwitch[3] = true;}}// 开前区第4位号码if (bTimerSwitch[3]){nFront[3] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_4, nFront[3]); // 实时更新// 时间到,确定号码if (++nCount[3] >= 40 && nFront[3] != nFront[0] && nFront[3] != nFront[1] && nFront[3] != nFront[2]){bTimerSwitch[3] = false;bTimerSwitch[4] = true;}}// 开前区第5位号码if (bTimerSwitch[4]){nFront[4] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_5, nFront[4]); // 实时更新// 时间到,确定号码if (++nCount[4] >= 40 && nFront[4] != nFront[0] && nFront[4] != nFront[1] && nFront[4] != nFront[2] && nFront[4] != nFront[3]){bTimerSwitch[4] = false;bTimerSwitch[5] = true;}}// 开后区第1位号码if (bTimerSwitch[5]){nBack[0] = rand() % 12 + 1;SetDlgItemInt(IDC_EDIT_BACK_1, nBack[0]); // 实时更新// 时间到,确定号码if (++nCount[5] >= 40 ){bTimerSwitch[5] = false;bTimerSwitch[6] = true;}}// 开后区第2位号码if (bTimerSwitch[6]){ nBack[1] = rand() % 12 + 1;SetDlgItemInt(IDC_EDIT_BACK_2, nBack[1]); // 实时更新// 时间到,确定号码if (++nCount[6] >= 40 && nBack[1] != nBack[0]){bTimerSwitch[6] = false;KillTimer(1);}}// 7个号码全部开出,排序,并显示if (!bTimerSwitch[0] && !bTimerSwitch[1] && !bTimerSwitch[2] && !bTimerSwitch[3] && !bTimerSwitch[4] && !bTimerSwitch[5] && !bTimerSwitch[6]){// 6个数排序qsort(nFront, 5, sizeof(nFront[0]), cmp);qsort(nBack, 2, sizeof(nBack[0]), cmp);CString str;//str.Format(L"%d %d %d %d %d %d %d", nCount[0], nCount[1], nCount[2], nCount[3], nCount[4], nCount[5], nCount[6]);str.Format(L"前区:%d %d %d %d %d 后区:%d %d", nFront[0], nFront[1], nFront[2], nFront[3], nFront[4], nBack[0], nBack[1]);SetDlgItemText(IDC_STATIC2, str); // 最终结果显示}CDialogEx::OnTimer(nIDEvent);
}
6、OK了,当然大家可以把界面做得漂亮一点,在对话框界面添加几个PICTURE control控件,网上下载个选号器的图片,利用windows自带画图软件改成位图,再添加即可。下面这个是我以前做得双色球选号器。
自己编一个大乐透选号器相关推荐
- 简单的彩票大乐透选号工具
彩票大乐透由前区和后区组成,前区是5位数,后区是2位数.前区的位数数字是1-35从中任意选择5个数,后区是1-12,从中任选2个数.根据规律,我们可以简单编辑彩票选号工具: import random ...
- c语言大乐透编译,Excel大乐透摇号vba代码分享,说不定就中百万了呢
大家好我是Excel从零到一,今天闲来无聊做了一套大乐透摇号程序的vba代码分享给大家 来看下效果 Excel大乐透摇号vba代码分享,说不定就中百万了呢 Sub 摇号() Dim i, a, tes ...
- Python实现彩票双色球、大乐透随机预测出号
彩票要是能通过预测都能拿奖,那也是需要攒多少人品才行呀 老老实实做好事,多积德行善,做公益 近期出差的时候,闲来没事,下班路过彩站每天都顺便买一张彩票. 同时,就引发了对所学专业的应激反应,想了一下能 ...
- 大乐透号码随机生成与排序
前面两篇介绍了两个非常简单的排序算法,本篇介绍排序算法的一个简单应用--对大乐透随机号码进行排序. 由于工作中涉及很多前端的开发,所以对前端技术有一定了解,前端的一个好处是可以直观地看到页面的布局.每 ...
- 纯手工采用java编写双色球、大乐透随机生成算法,真实模拟出球
纯java原生态模拟双色球.大乐透规则进行出球,原理:比如双色球,红球33.蓝球16个,先进行红球出球计算,按照双色球出球的规则随机将33个球放入数组或集合中,规定一个出球的方向,随机数12个绑定33 ...
- 用linux模拟彩票摇号器下载,大乐透模拟摇奖器拟选号器
大乐透模拟摇奖器拟选号器是一款非常实用的彩票app,它给你带来了强大的模拟选号功能,同时也可以让小伙伴们更加钻研选号规律,让你能够轻松赢得大奖,只要你掌握一门技术,就可以稳步提升自己的收益哦,喜欢的朋 ...
- Java实现彩票大乐透、双色球机选号
手写大乐透.双色球机选代码,梦想还是要有的,万一中了一千万呢,哈哈哈. 效果如下: 代码: import java.util.*; import java.util.stream.Collectors ...
- C语言实现模拟大乐透和双色球彩票机选【纯娱乐】
最近迷恋彩票,无聊时用手机写的一个小程序.至于为什么要用纯C语言,因为我手机上下的编译器只支持C. #include <stdio.h> #include <stdlib.h> ...
- 数组随机取数(大乐透机选投注)
闲着没事写着完呢 package com.yjl.daletou.util;import java.awt.Color; import java.awt.Dimension; import java. ...
最新文章
- 在Labview中调用M文件(Matlab文件)
- 物联网:应用创新带来万亿元市场前景
- 【机器学习基础】支持向量机超参数的可视化解释
- 淮安掼蛋网页版-源码头文件总结
- sonarqube对接maven
- 内存记号(Memory Trail)[自定义的名字] --调试方法
- python简单代码示例-python3简单代码示例
- 投资理财--动态市盈率静态市盈率 整理
- pythonstdin_Python读取stdin方法实例
- 关于android模拟器上面物理键盘失效,电脑键盘也无法输入的解决
- 因执迷而绽放,终登聆听贡献者荣誉榜
- STM32:RTC实时时钟原理
- 计算机毕业设计-校园疫情防控系统【PHP源码】
- 是时候,给你们自由了
- Tensorboard可视化
- linux中磁盘分区命令是什么,linux中创建磁盘分区的命令是什么
- 特斯拉电动卡车Semi和全新Roadster亮相发布会,续航能力均超800公里
- 节省微博互粉时间,使用全自动一键关注Chrome扩展程序
- WineQQ2012 最新下载 (转)
- C#学习笔记(四)-- .NET Framework与C#简介