琢磨了一段时间后,突发奇想用dev做了一个项目,模拟了cf游戏中的抽奖,目前只做了“幻神夺宝”部分,其他的抽奖懒得敲了,代码差不多,只需修改部分就行
如果运行代码选择了其他的抽奖选项,将会直接退出程序
该项目分为三个文件:
test.c——用于存放主函数
#include<stdio.h>
int main()
{
int ctrl=1;
while(ctrl==1)
{
select1();
printf("\n");
ctrl=0;
}
return 0;
}
game.h——用于声明函数、头文件以及存放变量
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void select1();
void select2();
void fj();
void HS();
void HuanS();
void dh1();
int ys=10;
int jf=0;
int hs=0;
int ty=0;
int zf=0;
int zl=0;
int qb=0;
int zq=0;
int ly=0;
int ts=0;
int tl=0;
int slb=0;
int st=0;
game.c——存放各个函数
#include"game.h"
void HS()
{
int m=0;
m=rand()%1000+1;
if(m==1||m==2)
{
printf("恭喜你获得道具:M200-幻神\n");
hs++;
}
if(m==3||m==4)
{
printf("恭喜你获得道具:王者涂鸦\n");
ty++;
}
if(m==5||m==6||m==7||m==8)
{
printf("恭喜你获得道具:觉醒版王者之锋\n");
zf++;
}
if(m==9||m==10||m==11||m==12)
{
printf("恭喜你获得道具:觉醒版王者之灵\n");
zl++;
}
if(m>=13 && m<=23)
{
printf("恭喜你获得道具:炫金千变\n");
qb++;
}
if(m>=24 && m<=39)
{
printf("恭喜你获得道具:Barrett-朱雀\n");
zq++;
}
if(m>=40 && m<=55)
{
printf("恭喜你获得道具:100积分\n");
jf+=100;
}
if(m>=56 && m<=76)
{
printf("恭喜你获得道具:加特林-炼狱\n");
ly++;
}
if(m>=77 && m<=97)
{
printf("恭喜你获得道具:50积分\n");
jf+=50;
}
if(m>=98 && m<=128)
{
printf("恭喜你获得道具:沙鹰-天神\n");
ts++;
}
if(m>=129 && m<=169)
{
printf("恭喜你获得道具: 屠龙\n");
tl++;
}
if(m>=170 && m<=270)
{
printf("恭喜你获得道具:20积分\n");
jf+=20;
}
if(m>=271 && m<=321)
{
printf("恭喜你获得道具:A背包套装-手雷包\n");
slb++;
}
if(m>=322 && m<=382)
{
printf("恭喜你获得道具:王者之石\n");
st++;
}
if(m>=383 && m<=583)
{
printf("恭喜你获得道具:10积分\n");
jf+=10;
}
if(m>583)
{
printf("恭喜你获得道具:5积分\n");
jf+=5;
}
printf("当前积分:%d\n",jf);
}
void dh1()
{
printf("当前积分:%d\n",jf);
printf("请选择你要兑换的道具:\n");
printf("1.M200-幻神 3000积分\n");
printf("2.王者涂鸦 3000积分\n");
printf("3.觉醒版王者之锋 1500积分\n");
printf("4.觉醒版王者之灵 1500积分\n");
printf("5.炫金千变 900积分\n");
printf("6.Barrett-朱雀 900积分\n");
printf("7.加特林-炼狱 750积分\n");
printf("8.沙鹰-天神 450积分\n");
printf("9.屠龙 450积分\n");
printf("10.A背包套装-手雷包 300积分\n");
printf("11.王者之石 50积分\n");
printf("12.退出\n");
int a=0;
scanf("%d",&a);
switch(a)
{
case 1:
if(jf<3000)
{
printf("积分不足!\n");
}
else
{
jf-=3000;
hs++;
printf("兑换完毕!\n");
}
break;
case 2:
if(jf<3000)
{
printf("积分不足!\n");
}
else
{
jf-=3000;
ty++;
printf("兑换完毕!\n");
}
break;
case 3:
if(jf<1500)
{
printf("积分不足!\n");
}
else
{
jf-=1500;
zf++;
printf("兑换完毕!\n");
}
break;
case 4:
if(jf<1500)
{
printf("积分不足!\n");
}
else
{
jf-=1500;
zl++;
printf("兑换完毕!\n");
}
break;
case 5:
if(jf<900)
{
printf("积分不足!\n");
}
else
{
jf-=900;
qb++;
printf("兑换完毕!\n");
}
break;
case 6:
if(jf<900)
{
printf("积分不足!\n");
}
else
{
jf-=900;
zq++;
printf("兑换完毕!\n");
}
break;
case 7:
if(jf<750)
{
printf("积分不足!\n");
}
else
{
jf-=750;
ly++;
printf("兑换完毕!\n");
}
break;
case 8:
if(jf<450)
{
printf("积分不足!\n");
}
else
{
jf-=450;
ts++;
printf("兑换完毕!\n");
}
break;
case 9:
if(jf<450)
{
printf("积分不足!\n");
}
else
{
jf-=450;
tl++;
printf("兑换完毕!\n");
}
break;
case 10:
if(jf<300)
{
printf("积分不足!\n");
}
else
{
jf-=300;
slb++;
printf("兑换完毕!\n");
}
break;
case 11:
if(jf<50)
{
printf("积分不足!\n");
}
else
{
jf-=50;
st++;
printf("兑换完毕!\n");
}
break;
case 12:
break;
default:
printf("选择错误,请重新选择!\n\n");
dh1();
}
}
void HuanS()
{
int ctrl=1;
while(ctrl==1)
{
printf("请选择:1.单抽 2.十连 3.兑换 4.返回\n");
int a=0;
int i=0;
scanf("%d",&a);
switch(a)
{
case 1:
if(ys<1)
{
printf("钥匙不足!\n");
}
else
{
ys--;
HS();
}
break;
case 2:
if(ys<10)
{
printf("钥匙不足!\n");
}
else
{
ys-=10;
for(i=1;i<10;i++)
{
HS();
}
}
break;
case 3:
dh1();
break;
case 4:
select2();
ctrl=0;
break;
default:
printf("选择错误,请重新选择!\n\n");
HuanS();
}
}
}
void select2()
{
printf("请选择想尝试的抽奖:\n");
printf("1.幻神夺宝 2.传说圣灵 3.王者许愿 4.返回\n");
int a=0;
scanf("%d",&a);
switch(a)
{
case 1:
HuanS();
break;
case 2:
break;
case 3:
break;
case 4:
select1();
break;
default:
printf("选择错误,请重新选择!\n\n");
select2();
}
}
void fj()
{
printf("请选择要分解的道具:\n");
printf("1.M200-幻神 24把钥匙\n");
printf("剩余数量:%d\n",hs);
printf("2.王者涂鸦 24把钥匙\n");
printf("剩余数量:%d\n",ty);
printf("3.觉醒版王者之锋 12把钥匙\n");
printf("剩余数量:%d\n",zf);
printf("4.觉醒版王者之灵 12把钥匙\n");
printf("剩余数量:%d\n",zl);
printf("5.炫金千变 7把钥匙\n");
printf("剩余数量:%d\n",qb);
printf("6.Barrett-朱雀 7把钥匙\n");
printf("剩余数量:%d\n",zq);
printf("7.加特林-炼狱 6把钥匙\n");
printf("剩余数量:%d\n",ly);
printf("8.沙鹰-天神 4把钥匙\n");
printf("剩余数量:%d\n",ts);
printf("9.屠龙 4把钥匙\n");
printf("剩余数量:%d\n",tl);
printf("10.A背包套装-手雷包 2把钥匙\n");
printf("剩余数量:%d\n",slb);
printf("11.王者之石 1把钥匙\n");
printf("剩余数量:%d\n",st);
printf("12.返回\n");
int a=0;
scanf("%d",&a);
switch(a)
{
case 1:
if(hs<1)
{
printf("道具不足!\n");
}
else
{
jf--;
ys+=24;
printf("分解完毕!\n");
}
break;
case 2:
if(ty<1)
{
printf("道具不足!\n");
}
else
{
ty--;
ys+=24;
printf("分解完毕!\n");
}
break;
case 3:
if(zf<1)
{
printf("道具不足!\n");
}
else
{
zf--;
ys+=12;
printf("分解完毕!\n");
}
break;
case 4:
if(zl<1)
{
printf("道具不足!\n");
}
else
{
zl--;
ys+=12;
printf("分解完毕!\n");
}
break;
case 5:
if(qb<1)
{
printf("道具不足!\n");
}
else
{
qb--;
ys+=7;
printf("分解完毕!\n");
}
break;
case 6:
if(zq<1)
{
printf("道具不足!\n");
}
else
{
zq--;
ys+=7;
printf("分解完毕!\n");
}
break;
case 7:
if(ly<1)
{
printf("道具不足!\n");
}
else
{
ly--;
ys+=6;
printf("分解完毕!\n");
}
break;
case 8:
if(ts<1)
{
printf("道具不足!\n");
}
else
{
ts--;
ys+=4;
printf("分解完毕!\n");
}
break;
case 9:
if(tl<1)
{
printf("道具不足!\n");
}
else
{
tl--;
ys+=4;
printf("分解完毕!\n");
}
break;
case 10:
if(slb<1)
{
printf("道具不足!\n");
}
else
{
slb--;
ys+=2;
printf("分解完毕!\n");
}
break;
case 11:
if(st<1)
{
printf("道具不足!\n");
}
else
{
st--;
ys++;
printf("分解完毕!\n");
}
break;
case 12:
break;
default:
printf("选择错误,请重新选择!\n\n");
fj();
}
select1();
}
void select1()
{
printf("请进行选择:1.抽奖 2.分解 3.退出\n");
int a=0;
scanf("%d",&a);
switch(a)
{
case 1:
select2();
break;
case 2:
fj();
break;
case 3:
break;
default:
printf("选择错误,请重新选择!\n\n");
select1();
}
}
代码类型简单,新手也能容易读懂
但是有个问题,每次运行后抽到的道具都是一样的,不论选择单抽还是十连,都是这个顺序
例:十连
请进行选择:1.抽奖 2.分解 3.退出
1
请选择想尝试的抽奖:
1.幻神夺宝 2.传说圣灵 3.王者许愿 4.返回
1
请选择:1.单抽 2.十连 3.兑换 4.返回
2
恭喜你获得道具:100积分
当前积分:100
恭喜你获得道具:10积分
当前积分:110
恭喜你获得道具:王者之石
当前积分:110
恭喜你获得道具:10积分
当前积分:120
恭喜你获得道具:20积分
当前积分:140
恭喜你获得道具:5积分
当前积分:145
恭喜你获得道具:10积分
当前积分:155
恭喜你获得道具:王者之石
当前积分:155
恭喜你获得道具:5积分
当前积分:160
请选择:1.单抽 2.十连 3.兑换 4.返回
单抽:
请进行选择:1.抽奖 2.分解 3.退出
1
请选择想尝试的抽奖:
1.幻神夺宝 2.传说圣灵 3.王者许愿 4.返回
1
请选择:1.单抽 2.十连 3.兑换 4.返回
1
恭喜你获得道具:100积分
当前积分:100
请选择:1.单抽 2.十连 3.兑换 4.返回
1
恭喜你获得道具:10积分
当前积分:110
请选择:1.单抽 2.十连 3.兑换 4.返回
1
恭喜你获得道具:王者之石
当前积分:110
请选择:1.单抽 2.十连 3.兑换 4.返回
1
恭喜你获得道具:10积分
当前积分:120
请选择:1.单抽 2.十连 3.兑换 4.返回
1
恭喜你获得道具:20积分
当前积分:140
请选择:1.单抽 2.十连 3.兑换 4.返回
这里进行了五次单抽,发现与十连前五次道具一样,意思是获得道具是固定的,不知道为什么
这五次单抽与十连是分开的,十连后退出程序再进行五次单抽得到的结果