- 分享
我要''匿名举报''这个人
- 2024-10-17 17:05:23 @
难道C++里的游戏不是游戏吗
3 条评论
-
dev-c++ @ 2024-10-17 17:13:28
?
-
2024-10-17 17:06:44@
什么鬼东西 @赵泽宇 @Mr.Huang
-
2024-10-17 17:06:14@
#include<bits/stdc++.h> using namespace std; int Your=6,Other=6; string daojuname[]={"放大镜","手铐","小刀","烟","饮料"}; double Yourmoney; int shi,kong; int q[10],qlen;//1 实 2 空 int Rand(int x,int y){ int A=rand(),B=rand(); return A*1ll*B%(y-x+1)+x; } int T;//ou->you int daojulen; int daoju[10]; int daojulen1; int daoju1[10]; void build_gun(){ kong=Rand(1,4); shi=Rand(1,4); qlen=0; printf("%d发实弹,%d发空弹\n",shi,kong); int a1=kong,a2=shi; for(int i=1;i<=kong+shi;i++){ // Sleep(50); int sum=Rand(1,a1+a2); if(sum<=a1){ a1--; q[++qlen]=2; }else{ a2--; q[++qlen]=1; } } int maxn=min(4,8-daojulen); printf("你获得了%d个道具:\n",maxn); daojulen+=maxn; for(int i=1;i<=maxn;i++){ // Sleep(50); int kkk=Rand(0,4); daoju[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); maxn=min(4,8-daojulen1); printf("恶魔获得了%d个道具:\n",maxn); daojulen1+=maxn; for(int i=1;i<=maxn;i++){ int kkk=Rand(0,4); daoju1[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); system("pause"); system("cls"); } void IsOver(){ if(Your<=0){ printf("你输了\n"); system("pause"); exit(0); } if(Other<=0){ printf("你赢了\n你获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); } } void wait(){ for(int i=1;i<=3;i++){ Sleep(500); printf("."); } Sleep(500); } int Hurt=1; int shoukao_you; void Timeyou(){ int x; while(1){ printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("你现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("恶魔现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是你的回合\n"); printf("你要\n1.向恶魔开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){ printf("你决定向恶魔开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukao_you==1){ shoukao_you=0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver(); if(shoukao_you==1){ shoukao_you=0; Yourmoney+=1000.0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==2){ printf("你决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver(); if(shoukao_you==1){ shoukao_you=0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju[0]){ daoju[0]--; daojulen--; printf("你使用了放大镜\n"); wait(); printf("\n你看到了"); if(q[qlen]==1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("你现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x==4){ if(daoju[1]){ if(!shoukao_you){ daoju[1]--; daojulen--; printf("你使用了手铐\n"); printf("你获得了连开两枪的机会\n"); shoukao_you=1; }else{ printf("你已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("你现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x==5){ if(daoju[2]){ if(Hurt==1){ daoju[2]--; daojulen--; printf("你使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("你已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("你现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x==6){ if(daoju[3]){ if(Your^6){ daoju[3]--; daojulen--; printf("你使用了烟\n"); printf("你回复了一点生命\n"); Yourmoney+=500.0; Your++; }else{ printf("你现在不需要烟\n"); } Sleep(1145); }else{ printf("你现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju[4]){ daoju[4]--; daojulen--; printf("你使用了饮料\n"); wait(); printf("\n"); printf("你退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("你现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } int Know;//通过放大镜得知下一发子弹 int shoukaoemo; void fightyou(){ printf("恶魔决定向你开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; Know=0; printf("是空弹\n"); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); T--; Sleep(500); shoukaoemo=0; } }else{ Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Know=0; Sleep(500); IsOver(); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); Yourmoney+=1000.0; T--; Sleep(500); shoukaoemo=0; } } } void fightemo(){ printf("恶魔决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=2000.0*(1+(double)(shi)*1.0/(double)(shi+kong)); kong--; qlen--; printf("是空弹\n"); Know=0; }else{ Yourmoney+=5000.0*(1+(double)(kong)*1.0/(double)(shi+kong)); shi--; T++; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Know=0; Sleep(500); IsOver(); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); T--; Sleep(500); shoukaoemo=0; } } } void Timeother(){ printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("你现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("恶魔现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是恶魔的回合\n"); Sleep(1500); if(Other!=6){ if(daoju1[3]){ daoju1[3]--; daojulen1--; printf("恶魔使用了烟\n"); printf("恶魔回复了一点生命\n"); Other++; Yourmoney+=500.0; Sleep(1145); system("cls"); return ; } } if(Know==0&&kong==0){ Know=1; } if(Know==0){ if(abs(shi-kong)<2&&kong!=0){ if(daoju1[0]){ daoju1[0]--; daojulen1--; printf("恶魔使用了放大镜\n"); wait(); printf("\n恶魔看到了"); if(q[qlen]==1){ printf("实弹"); Yourmoney+=2500.0; Know=1; }else{ printf("空弹"); Know=2; } Sleep(1145); system("cls"); return ; } } }else if(Know==1){ if(Hurt==1&&daoju1[2]){ daoju1[2]--; daojulen1--; Hurt++; printf("恶魔使用了小刀\n"); printf("若下一发为实弹则伤害+1"); Yourmoney+=500.0; Sleep(1145); system("cls"); return ; }else{ if(shi>=kong+1&&daoju1[1]&&shoukaoemo!=1){ daoju1[1]--; daojulen1--; shoukaoemo=1; printf("恶魔使用了手铐\n"); printf("恶魔获得了连开两枪的机会\n"); Sleep(1145); system("cls"); return ; } fightyou(); system("cls"); return ; } }else{ if(daoju1[4]){ daoju1[4]--; daojulen1--; printf("恶魔使用了饮料\n"); wait(); printf("\n"); printf("恶魔退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); shi--; } Know=0; qlen--; Sleep(500); Sleep(1145); system("cls"); return ; }else{ fightemo(); Sleep(1145); system("cls"); return ; } } if(shi>=kong){ fightyou(); }else{ fightemo(); } Sleep(1145); system("cls"); } void Play(){ while(1){ if(shi==0){ build_gun(); T=0; continue; } if(T%2==0){ Timeyou(); }else{ Timeother(); } } } void danrenplay(){ for(int i=1;i<=3;i++){ printf("."); // Sleep(1000); } printf("\n"); printf("又来了一位挑战者...\n"); Sleep(1000); int x; while(1){ printf("准备好参与恶魔的游戏吗?胜者带走奖金,败者将会在此长眠\n1.好的\n2.没问题\n"); scanf("%d",&x); if(x==1||x==2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } while(1){ printf("你清楚我们的规则吗?\n1.清楚\n2.不清楚\n"); scanf("%d",&x); if(x==1||x==2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){ }else{ for(int i=1;i<=3;i++){ printf("."); Sleep(1000); } printf("\n"); printf("规则:\n"); printf("你和恶魔都各有6点生命\n") ; printf("每一回合开始前,你将知道一共有几发实弹,几发空弹,同时双方都将获得4个道具作为补给(上限为8个)\n"); printf("每一回合,你可以选择对自己开枪,对恶魔开枪或者使用道具\n"); printf("如果你对自己开枪,若为空弹,则可以继续行动,否则,停止行动\n"); printf("如果你对恶魔开枪,无论如何,都将停止行动\n"); printf("道具一览:\n"); printf("放大镜:可以知道下一发子弹是空弹还是实弹\n"); printf("手铐:增加一次本回合的行动次数\n"); printf("小刀:若下一发子弹为实弹,则伤害+1\n"); printf("烟:可以回复1点体力\n"); printf("饮料:可以退一发子弹\n"); system("pause"); system("cls"); } printf("好吧\n"); Sleep(1145); printf("游戏将要开始了哦\n"); Sleep(1145); system("cls"); Play(); } void IsOver_duo(){ if(Your<=0){ printf("玩家B赢了\n玩家B获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); }else if(Other<=0){ printf("玩家A赢了\n玩家A获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); } } void build_gun_duo(){ kong=Rand(1,4); shi=Rand(1,4); qlen=0; printf("%d发实弹,%d发空弹\n",shi,kong); int a1=kong,a2=shi; for(int i=1;i<=kong+shi;i++){ // Sleep(50); int sum=Rand(1,a1+a2); if(sum<=a1){ a1--; q[++qlen]=2; }else{ a2--; q[++qlen]=1; } } int maxn=min(2,8-daojulen); printf("玩家A获得了%d个道具:\n",maxn); daojulen+=maxn; for(int i=1;i<=maxn;i++){ // Sleep(50); int kkk=Rand(0,4); daoju[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); maxn=min(2,8-daojulen1); printf("玩家B获得了%d个道具:\n",maxn); daojulen1+=maxn; for(int i=1;i<=maxn;i++){ int kkk=Rand(0,4); daoju1[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); system("pause"); system("cls"); } void Timeyou_duo(){ int x; while(1){ printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("玩家A现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("玩家B现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是玩家A的回合\n"); printf("玩家A要\n1.向玩家B开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){ printf("玩家A决定向玩家B开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukao_you==1){ shoukao_you=0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you==1){ shoukao_you=0; Yourmoney+=1000.0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==2){ printf("玩家A决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you==1){ shoukao_you=0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju[0]){ daoju[0]--; daojulen--; printf("玩家A使用了放大镜\n"); wait(); printf("\n玩家A看到了"); if(q[qlen]==1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("玩家A现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x==4){ if(daoju[1]){ if(!shoukao_you){ daoju[1]--; daojulen--; printf("玩家A使用了手铐\n"); printf("玩家A获得了连开两枪的机会\n"); shoukao_you=1; }else{ printf("玩家A已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家A现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x==5){ if(daoju[2]){ if(Hurt==1){ daoju[2]--; daojulen--; printf("玩家A使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("玩家A已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家A现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x==6){ if(daoju[3]){ if(Your^4){ daoju[3]--; daojulen--; printf("玩家A使用了烟\n"); printf("玩家A回复了一点生命\n"); Yourmoney+=500.0; Your++; }else{ printf("玩家A现在不需要烟\n"); } Sleep(1145); }else{ printf("玩家A现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju[4]){ daoju[4]--; daojulen--; printf("玩家A使用了饮料\n"); wait(); printf("\n"); printf("玩家A退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("玩家A现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } void Timeother_duo(){ int x; while(1){ printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("玩家A现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("玩家B现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是玩家B的回合\n"); printf("玩家B要\n1.向玩家A开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){ printf("玩家B决定向玩家A开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukaoemo==1){ shoukaoemo=0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukaoemo==1){ shoukaoemo=0; Yourmoney+=1000.0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==2){ printf("玩家B决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you==1){ shoukao_you=0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju1[0]){ daoju1[0]--; daojulen1--; printf("玩家B使用了放大镜\n"); wait(); printf("\n玩家B看到了"); if(q[qlen]==1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("玩家B现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x==4){ if(daoju1[1]){ if(!shoukaoemo){ daoju1[1]--; daojulen1--; printf("玩家B使用了手铐\n"); printf("玩家B获得了连开两枪的机会\n"); shoukaoemo=1; }else{ printf("玩家B已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家B现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x==5){ if(daoju1[2]){ if(Hurt==1){ daoju1[2]--; daojulen1--; printf("玩家B使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("玩家B已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家B现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x==6){ if(daoju1[3]){ if(Other^4){ daoju1[3]--; daojulen1--; printf("玩家B使用了烟\n"); printf("玩家B回复了一点生命\n"); Yourmoney+=500.0; Other++; }else{ printf("玩家B现在不需要烟\n"); } Sleep(1145); }else{ printf("玩家B现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju1[4]){ daoju1[4]--; daojulen1--; printf("玩家B使用了饮料\n"); wait(); printf("\n"); printf("玩家B退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("玩家B现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } int asdasd; void duorenplay(){ while(1){ if(shi==0){ build_gun_duo(); T=asdasd; asdasd++; continue; } if(T%2==0){ Timeyou_duo(); }else{ Timeother_duo(); } } } int main(){ srand(time(0)); int x; while(1){ printf("请选择你想要的模式:\n1.单人\n2.双人(此模式中,生命值为4,道具补给为2)\n"); scanf("%d",&x); if(x==1||x==2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } system("cls"); if(x==1){ danrenplay(); }else{ Your=Other=4; duorenplay(); } return 0; } 2 天前
- 1