直接上代码吧:
#include<bits/stdc++.h> #include<windows.h> using namespace std; char P; int player,num=0,player1_e=0,player2_e=0,player1_d=0,player2_d=0,t=0,n1=0; int player1_m=0,player2_m=0,n2=0,true1=0,true2=0; void game();void shop();void home();void rule();void play();void money();void people(); void before(){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY); } void blue_C(){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE); } void red_C(){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED); } void green_C(){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN); } void pink_C(){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_BLUE); } void home(){ char game; printf("||商城(s)||开始游戏(p)||游戏规则(r)||离开游戏(o)||玩家属性查询(m)||编写人员(z)||\n"); Sleep(1000); cin>>game; switch(game){ case ‘s‘:{ Sleep(1000); printf("页面跳转中,请稍候……\n"); Sleep(1000); shop(); break; } case ‘p‘:{ Sleep(1000); printf("页面跳转中,请稍候……\n"); Sleep(1000); play(); break; } case ‘r‘:{ Sleep(1000); printf("页面跳转中,请稍候……\n"); Sleep(1000); rule(); break; } case ‘o‘:{ Sleep(1000); printf("页面跳转中,请稍候……\n"); Sleep(1000); printf("欢迎您随时返回游戏!\n"); break; } case ‘m‘:{ Sleep(1000); printf("页面跳转中,请稍候……\n"); Sleep(1000); money(); break; } case ‘z‘:{ Sleep(1000); printf("页面跳转中,请稍候……\n"); Sleep(1000); people(); break; } default :{ printf("输入不正确,请重新输入!\n"); Sleep(1000); home(); return ; } } } void people(){ before(); printf("编写人员:均由DreamShadow创编\n"); Sleep(1000); switch(P){ case ‘B‘:{ blue_C(); break; } case ‘R‘:{ red_C(); break; } case ‘G‘:{ green_C(); break; } } home(); } void money(){ printf(" 玩家 金币 蓝色魔法药水 红色魔法药水\n"); printf(" 玩家一 || %d$ || %d || %d\n",player1_m,player1_e,player1_d); Sleep(2000); printf(" 玩家二 || %d$ || %d || %d\n",player2_m,player2_e,player2_d); Sleep(2000); home(); } void shop(){ char buy; pink_C(); printf(" 商品名称 作用 价格($)\n"); Sleep(1000); printf("蓝色魔法药水(e) || 在最后错误计算完毕时可以减掉5次错误次数 || 1000\n"); Sleep(1000); printf("红色魔法药水(d) || pass一道题目 || 100\n"); Sleep(1000); printf("P1玩家?(1)P2玩家?(2)放弃交易?(3)");cin>>player; if(player==3){ switch(P){ case ‘B‘:{ blue_C(); break; } case ‘R‘:{ red_C(); break; } case ‘G‘:{ green_C(); break; } } home(); return ; } printf("\n请选择要买的商品名称:");cin>>buy; Sleep(1000); printf("\n购买数量(切记不可超过购买最大值,否则系统自动清零当前玩家的钱币):");cin>>num; switch(buy){ case ‘e‘:{ if(player==1){ if(player1_m>=1000*num){ player1_e+=num; player1_m-=1000*num; printf("交易成功!\n"); printf("剩余金币:%d\n",player1_m); Sleep(1000); }else { printf("P1玩家试图超过购买最大值,金币清零!下不为例\n"); Sleep(2000); player1_m=0; } }else{ if(player2_m>=1000*num){ player2_e+=num; player2_m-=1000*num; printf("交易成功!\n"); printf("剩余金币:%d\n",player1_m); Sleep(1000); }else { printf("P2玩家试图超过购买最大值,金币清零!下不为例\n"); Sleep(2000); player2_e=0; } } num=0; break; } case ‘d‘:{ if(player==1){ if(player1_m>=100*num){ player1_d+=num; player1_m-=100*num; printf("交易成功!\n"); Sleep(1000); }else { printf("P1玩家试图超过购买最大值,金币清零!下不为例\n"); Sleep(2000); player1_e=0; } }else{ if(player2_m>=100*num){ player2_d+=num; player2_m-=100*num; printf("交易成功!\n"); Sleep(1000); }else { printf("P2玩家试图超过购买最大值,金币清零!下不为例\n"); Sleep(2000); player2_m=0; } } num=0; break; } } Sleep(2000); printf("欢迎再次光临!\n"); switch(P){ case ‘B‘:{ blue_C(); break; } case ‘R‘:{ red_C(); break; } case ‘G‘:{ green_C(); break; } } home(); } void rule(){ printf("游戏规则:\n"); Sleep(1000); printf("本游戏由两个玩家参与,在游戏界面中开始进行猜随机数的游戏,并有钱币奖励,钱币可在商城中购买一些道具\n"); Sleep(3000); printf("温馨提示:建议折半查找这个数据,猜的次数越少,钱币越多(建立在对方错的次数上,也就是说,对方错的越多,你得到的金币越多),反之,越少!\n"); Sleep(6000); printf("本款游戏出现的BUG可联系创编者哦!\n钦此!\n"); Sleep(1000); printf("-----------------------------------------------------------------------------\n"); home(); } void play(){ before(); srand( (unsigned)time( NULL ) ); Sleep(1000); cout<<"随机数生成中……"<<endl; Sleep(1000); int player1_num = rand() % 1000 + 1; srand( (unsigned)time( NULL ) ); int player2_num = rand() % 1000 + 1; printf("玩家一开始猜数(本次数据范围为0~1000)\n"); Sleep(1000); n1=0; while(true1!=player1_num){ cin>>true1; if(true1>player1_num){ printf("猜错了!大了!\n"); Sleep(1000); if(player1_d>=1){ printf("是否使用红色魔法药水?是(1)否(2):"); Sleep(1100); cin>>t; if(t==1){ player1_d--; printf("\n剩余红色魔法药水:%d\n",player1_d); Sleep(1000); n1--; } } n1++; }else if(true1<player1_num){ printf("猜错了!小了!\n"); Sleep(1000); if(player1_d>=1){ printf("是否使用红色魔法药水?是(1)否(2):"); Sleep(1000); cin>>t; if(t==1){ player1_d--; printf("\n剩余红色魔法药水:%d\n",player1_d); Sleep(1000); n1--; }; } n1++; } } printf("猜对喽!二号玩家准备!\n") ; Sleep(2000); printf("玩家二开始猜数(本次数据范围为0~1000)\n"); Sleep(1000); n2=0; while(true2!=player2_num){ cin>>true2; if(true2>player2_num){ printf("猜错了!大了!\n"); Sleep(1000); if(player2_d>=1){ printf("是否使用红色魔法药水?是(1)否(2):"); Sleep(1000); cin>>t; if(t==1){ player2_d--; printf("\n剩余红色魔法药水:%d\n",player2_d); Sleep(1000); n2--; printf("继续猜!\n"); } } n2++; }else if(true2<player2_num){ printf("猜错了!小了○!\n"); Sleep(1000); if(player2_d>=1){ printf("是否使用红色魔法药水?是(1)否(2):"); Sleep(1000); cin>>t; if(t==1){ player2_d--; printf("\n剩余红色魔法药水:%d\n",player2_d); Sleep(1000); n2--; printf("继续猜!\n"); } } n2++; } } pink_C(); printf("猜对喽!\n"); Sleep(4000); if(player1_e>=1){ printf("是否使用蓝色魔法药水?是(1)否(2):"); Sleep(1000); cin>>t; if(t==1){ player1_e--; printf("\n剩余蓝色魔法药水:%d\n",player2_d); Sleep(1000); n1-=5; } } if(player2_e>=1){ printf("是否使用蓝色魔法药水?是(1)否(2):"); Sleep(1000); cin>>t; if(t==1){ player2_e--; printf("\n剩余蓝色魔法药水:%d\n",player2_d); Sleep(1000); n2-=5; } } printf("玩家一猜的次数为:%d 得到的金币数为: %d\n",n1,n2*5); Sleep(1000); printf("玩家二猜的次数为:%d 得到的金币数为: %d\n",n2,n1*5); Sleep(2000); printf("目前玩家一的金币为:%d\n",player1_m+=n2*5); Sleep(1000); printf("目前玩家二的金币为:%d\n",player2_m+=n1*5); Sleep(1000); switch(P){ case ‘B‘:{ blue_C(); break; } case ‘R‘:{ red_C(); break; } case ‘G‘:{ green_C(); break; } } home(); } void findt(int n){ if(n<2)printf("%d",n); if(n>=2){ findt(n/2); printf("%d",n%2); } } void finde(int n){ if(n<8)printf("%d",n); if(n>=8){ finde(n/8); printf("%d",n%8); } } void finds1(int n){ switch(n){ case 10:printf("A");break; case 11:printf("B");break; case 12:printf("C");break; case 13:printf("D");break; case 14:printf("E");break; case 15:printf("F");break; default:printf("%d",n); } } void finds2(int n){ if(n<16){ finds1(n); } if(n>=16){ finds2(n/16); finds1(n%16); } }
以上为子程序,经供参考,若需要完整版,请点击关注,然后问楼主所要即可。
原文地址:https://www.cnblogs.com/DreamShadow/p/10742550.html
时间: 2024-10-29 19:10:55