抽奖Version0.1.1游戏源代码。也可直接下载源程序:
【免费】抽奖Version0.1.1游戏源程序资源-CSDN文库
bug:反馈至作者CSDN博客Wyze(June)。
提示:不建议在u盘中打开,防止盗版病毒。
更新日志:
Version0.1.0 20250315
Version0.1.0->0.1.1 20250319
1.修复了赌金消失的逻辑问题。
#include<bits/stdc++.h>//万能
#include<windows.h>//系统
#include<fstream>//写入
#define ld long double
short jd,hm[7],s,dsplayer,dscomputer;//jd决定 hm号码 s秒数
int yuan=100,quan=0,dj;//yuan元 quan券 dj赌金
ld smb,mmb,lmb;//mb目标
bool zj;//zj中奖
using namespace std;
string CDK;
void start()
{
printf("抽奖游戏 适龄提示12+ 请认真阅读协议后开始游戏\n");
system("pause") ;
printf("《<抽奖>Version0.1.1用户协议说明》\n 1.游戏权限:获得您的内存使用权,文件创建权和程序运行权。如侵犯了您的个人利益或对您的电脑造成了损坏,请联系作者:https://blog.csdn.net/2301_77158396?type=blog\n2.游戏引导含赌博,买彩票玩法,请未成年人不要买彩票赌博,成年人不要赌博,作者不负任何责任。\n3.抵制不良游戏,拒绝盗版游戏。注意自我保护,谨防受骗上当。适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。\n4.配置要求:系统:32位+ Windows7+/Linux/XP ROM:4GB+ CPU:I3+\n");
printf("我已阅读,");
system("pause");
printf("开始游戏,");
system("pause");
}
int main()
{
start();
printf("hello,欢迎来到抽奖的世界!!\n你的初始资金是100元,买彩票来获取金钱吧!!\n小目标:一万元 中目标:一百万元 大目标:一亿元,祝你好运!!\n");
system("pause");
system("cls");
for(;;)
{
printf("1.买彩票 2.去赌博(掷骰子) 3.破产补助 4.活动 5.个人 6.关于 0.退出\n");
scanf("%hd",&jd);
if(jd==1)
{
printf("你要买什么彩票呢(每个奖都只有一个号码哦)\n");
printf("1.翡翠奖 20元 5个码 开奖时间10s 一等奖2200元 二等奖500元 三等奖100元\n");
printf("2.大乐透 100元 12个码 开等奖2000元 三等奖1000元 四等奖350元\n");
printf("3.顶呱呱 500元 20个码 开奖时间40s 一等奖12000元 奖时间25s 一等奖5000元 二二等奖8000元 三等奖5000元 四等奖2500元 五等奖1000元\n");
printf("4.七星彩 3000元 30个码 开奖时间90s 一等奖200000元 二等奖100000元 三等奖60000元 四等奖15000元 五等奖7000元 六等奖 4000元\n");
scanf("%hd",&jd);
if(jd==1)
{
if(0+yuan<20)
{
printf("钱不够!!");
system("pause");
system("cls");
continue;
}
yuan-=20;
printf("你要什么码?(1-5)");
scanf("%hd",&jd);
srand(time(0));
for(int i=1;i<=3;i++)
{
hm[i]=rand()%5+1;
}
s=10;
for(int i=1;i<=10;i++)
{
system("cls");
printf("翡翠奖 20元 5个码 一等奖2200元 二等奖500元 三等奖100元\n您的号码:%d\n",jd);
printf("即将开奖:%d s",s);
Sleep(1000);
s-=1;
}
system("cls");
for(int i=1;i<=3;i++)
{
if(hm[i]==jd)
{
if(i==1)
{
printf("恭喜你,中了一等奖,+2200元!\n");
yuan+=2200;
zj=1;
}
else if(i==2)
{
printf("恭喜你,中了二等奖,+500元!\n");
yuan+=500;
zj=1;
}
else if(i==3)
{
printf("恭喜你,中了三等奖,+100元!\n");
yuan+=500;
zj=1;
}
system("pause");
}
}
if(!zj)
{
printf("哎呀,没中啊,下次加油,祝你好运!!");
system("pause");
}
}
if(jd==2)
{
if(0+yuan<100)
{
printf("钱不够!!");
system("pause");
system("cls");
continue;
}
yuan-=100;
printf("你要什么码?(1-12)");
scanf("%d",&jd);
srand(time(0));
for(int i=1;i<=4;i++)
{
hm[i]=rand()%12+1;
}
s=25;
for(int i=1;i<=25;i++)
{
system("cls");
printf("大乐透 100元 12个码 开奖时间25s 一等奖5000元 二等奖2000元 三等奖1000元 四等奖350元\n您的号码:%d\n",jd);
printf("即将开奖:%d s",s);
Sleep(1000);
s-=1;
}
system("cls");
for(int i=1;i<=4;i++)
{
if(hm[i]==jd)
{
if(i==1)
{
printf("恭喜你,中了一等奖,+5000元!\n");
yuan+=5000;
zj=1;
}
else if(i==2)
{
printf("恭喜你,中了二等奖,+2000元!\n");
yuan+=2000;
zj=1;
}
else if(i==3)
{
printf("恭喜你,中了三等奖,+1000元!\n");
yuan+=1000;
zj=1;
}
else if(i==4)
{
printf("恭喜你,中了四等奖,+350元!\n");
yuan+=350;
zj=1;
}
system("pause");
}
}
if(!zj)
{
printf("哎呀,没中啊,下次加油,祝你好运!!");
system("pause");
}
}
if(jd==3)
{
if(0+yuan<500)
{
printf("钱不够!!");
system("pause");
system("cls");
continue;
}
yuan-=500;
printf("你要什么码?(1-20)");
scanf("%d",&jd);
srand(time(0));
for(int i=1;i<=5;i++)
{
hm[i]=rand()%20+1;
}
s=40;
for(int i=1;i<=40;i++)
{
system("cls");
printf("顶呱呱 500元 20个码 开奖时间40s 一等奖12000元 二等奖8000元 三等奖5000元 四等奖2500元 五等奖1000元\n您的号码:%d\n",jd);
printf("即将开奖:%d s",s);
Sleep(1000);
s-=1;
}
system("cls");
for(int i=1;i<=5;i++)
{
if(hm[i]==jd)
{
if(i==1)
{
printf("恭喜你,中了一等奖,+12000元!\n");
yuan+=12000;
zj=1;
}
else if(i==2)
{
printf("恭喜你,中了二等奖,+8000元!\n");
yuan+=8000;
zj=1;
}
else if(i==3)
{
printf("恭喜你,中了三等奖,+5000元!\n");
yuan+=5000;
zj=1;
}
else if(i==4)
{
printf("恭喜你,中了四等奖,+2500元!\n");
yuan+=2500;
zj=1;
}
else if(i==5)
{
printf("恭喜你,中了五等奖,+1000元!\n");
yuan+=1000;
zj=1;
}
system("pause");
}
}
if(!zj)
{
printf("哎呀,没中啊,下次加油,祝你好运!!");
system("pause");
}
}
if(jd==4)
{
if(0+yuan<3000)
{
printf("钱不够!!");
system("pause");
system("cls");
continue;
}
yuan-=3000;
printf("你要什么码?(1-30)");
scanf("%d",&jd);
srand(time(0));
for(int i=1;i<=6;i++)
{
hm[i]=rand()%30+1;
}
s=90;
for(int i=1;i<=90;i++)
{
system("cls");
printf("七星彩 3000元 30个码 开奖时间90s 一等奖200000元 二等奖100000元 三等奖60000元 四等奖15000元 五等奖7000元 六等奖 4000元\n您的号码:%d\n",jd);
printf("即将开奖:%d s",s);
Sleep(1000);
s-=1;
}
system("cls");
for(int i=1;i<=6;i++)
{
if(hm[i]==jd)
{
if(i==1)
{
printf("恭喜你,中了一等奖,+200000元!\n");
yuan+=200000;
zj=1;
}
else if(i==2)
{
printf("恭喜你,中了二等奖,+100000元!\n");
yuan+=100000;
zj=1;
}
else if(i==3)
{
printf("恭喜你,中了三等奖,+60000元!\n");
yuan+=60000;
zj=1;
}
else if(i==4)
{
printf("恭喜你,中了四等奖,+15000元!\n");
yuan+=15000;
zj=1;
}
else if(i==5)
{
printf("恭喜你,中了五等奖,+7000元!\n");
yuan+=7000;
zj=1;
}
else if(i==6)
{
printf("恭喜你,中了六等奖,+4000元!\n");
yuan+=4000;
zj=1;
}
system("pause");
}
}
if(!zj)
{
printf("哎呀,没中啊,下次加油,祝你好运!!");
system("pause");
}
}
system("cls");
}
if(jd==2)
{
printf("玩法:出一定金额赌金,通过掷骰子比大小,如您点数比对方小,则赌金消失,如点数相同,赌金不变,如您点数比对方大,赌金双倍!!\n你出多少赌金呢:");
scanf("%d",&dj);
if(dj>yuan)
{
printf("你出的赌金你不够呢,请先买彩票吧!!");
system("pause");
system("cls");
continue;
}
srand(time(0));
dsplayer=rand()%6+1;
dscomputer=rand()%6+1;
if(dsplayer>dscomputer)
{
printf("恭喜你,赌金翻倍!!\n player:%d computer:%d\n",dsplayer,dscomputer);
yuan=yuan+dj+dj;
system("pause");
}
else if(dsplayer<dscomputer)
{
printf("啊哦,对不起,赌金消失了...\n player:%d computer:%d\n",dsplayer,dscomputer);
yuan-=dj;
system("pause");
}
else if(dsplayer==dscomputer)
{
printf("六百六十六,赌金不变!!\n player:%d computer:%d\n",dsplayer,dscomputer);
system("pause");
}
system("cls");
}
if(jd==3)
{
if(yuan>=20)
{
printf("你没有破产,请买彩票!!");
system("pause");
}
else
{
printf("100元补助已到达,再接再厉!!");
system("pause");
}
system("cls");
}
if(jd==4)
{
printf("活动大厅:\n0.兑换CDK\n1.新游豪礼3.16--3.31\n输入序号前往活动:");
scanf("%hd",&jd);
if(jd==0)
{
printf("输入兑换码20位,包含大小写字母和数字:");
printf("输入兑换码20位,包含大小写字母和数字:");
char cdk_input[21]; // Array to hold the input string (+1 for null terminator)
scanf("%20s", cdk_input); // Read up to 20 characters
CDK=cdk_input; // Convert to std::string
//此处特别感谢https://chat1.free2gpt.com/,本来兑换完会异常结束
//关于原始代码在使用 CDK 时崩溃的原因说明程序崩溃的最可能原因是 scanf("%s", &CDK) 使用不当。以下是它可能导致问题的原因:缓冲区溢出:`scanf("%s", &CDK)` 会尝试将字符直接写入 CDK 内部字符串缓冲区所指向的内存中。如果输入的长度超过了为该字符串分配的缓冲区大小,`scanf` 就会写到缓冲区的末尾之后,从而导致缓冲区溢出。这种溢出可能会覆盖重要的程序数据,导致程序行为不可预测并崩溃。内存损坏:即使输入的长度不足以直接导致缓冲区溢出,但直接向 `std::string` 对象的内部内存写入数据而不进行适当的内存管理,可能会损坏字符串的内部数据结构(例如,其长度、容量或指向已分配缓冲区的指针)。这可能会导致程序在稍后尝试访问或操作损坏的字符串时崩溃。重要安全提示`scanf("%s",...)` 函数本质上是危险的,因为它不提供任何边界检查。它会一直读取字符,直到遇到空白字符为止,而不管您写入的缓冲区大小如何。这使得创建缓冲区溢出变得非常容易,而缓冲区溢出是常见的安全漏洞来源。读取字符串时,始终使用更安全的替代方法,如 `fgets` 或 `std::getline`,并且一定要限制读取的字符数。使用 `scanf("%20s", cdk_input)` 进行修复更好,因为它限制了输入,但使用 `fgets` 或 `std::getline` 并进行大小检查会更可靠。
if(CDK=="CY662qLhGTgfFk7gi0DK")
{
yuan+=6660;
printf("\n兑换成功!!");
system("pause");
}
else
{
printf("\n兑换码错误!");
system("pause");
}
}
else if(jd==1)
{
printf("感谢你的游玩!!作者Wyze为你准备了惊喜礼物——6660元!!兑换码:CY662qLhGTgfFk7gi0DK");
system("pause");
}
system("cls");
}
if(jd==5)
{
printf("玩家:Player\n账号类型:一次性即注即销,保存数据敬请期待\n钱:%d\n券:%d\n",yuan,quan);
smb=yuan/10000.0*100.0;
mmb=yuan/1000000.0*100.0;
lmb=yuan/100000000.0*100.0;
//此处特别感谢https://chat1.free2gpt.com/,本来会异常输出
cout<<"小目标:"<<smb<<'%'<<endl;
cout<<"中目标:"<<mmb<<'%'<<endl;
cout<<"大目标:"<<lmb<<'%'<<endl;
system("pause");
system("cls");
}
if(jd==6)
{
printf("啦啦啦啦噜噜噜噜,经过作者2个月的努力,终于出版啦,以后会更新!!特别感谢https://chat1.free2gpt.com/,修复了两个大bug!!\n");
printf("抽奖(Lottery Draw)Version0.1.1.202503 (c)20250319 (c)Wyze (c)王者游戏工作室 Wangzhe Game Studio\n");
printf("寒暄一句,csdn六年级小学生单独出品!!希望大家喜欢,让我能更好!!以后我会推出数据储存的!!谢谢!!\n");
system("pause");
system("cls");
}
if(jd==0)
{
break;
}
}
return 0;
}
//system("md c:\\mydir");创建一个文件夹 system("rd c:\\mydir");//删除一个文件夹 system("c:\\test\\myfile.dat");//删除一个文件。
//1、添加头文件#include <fstream>2、打开txt文件ofstream outfile("test.txt",std::ios::app);3、写入txtoutfile << "Hello World!" << std::endl;4、关闭outfile.close()
感谢游玩哦,有bug可以反馈我哦