FUN GAME 一款普通的C++游戏
凑合看吧,不是完整版。
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
#define pt puts
#define pf printf
#define pc putchar
#define sf scanf
#define gt gets
#define sl Sleep
char name[101];
stack<int>gun;
bool chance;
const char Y[101]={"烟:可以回复一格血量"};
const char J[101]={"酒:可以弹出弹仓里的一枚子弹"};
const char F[101]={"放大镜:可以查看弹仓里的一枚子弹"};
const char D[101]={"刀:可以使下一发实弹伤害翻倍"};
const char S[101]={"手铐:可以使自己多操作一回合"};
void home();
void first();
void second();
void third();
inline int randtool(int x)//x枚子弹,y枚实弹
{
int y=rand()%((x+1)/2)+1;
bool use[101];
memset(use,false,sizeof(use));
for(int i=1;i<=y;i++)
{
int z=rand()%x+1;
if(use[z]==true)
{
i--;
}
else
{
use[z]=true;
}
}
for(int i=1;i<=x;i++)
{
if(use[i]==true)
{
gun.push(1);
}
else
{
gun.push(0);
}
}
return y;
}
void first()
{
system("cls");
int ai=2,player=2;
bool quan=true;
pt("进入第一关");
sl(3000);
while(ai>0&&player>0)
{
system("cls");
pf("您的剩余血量为%d\n",player);
pf("对方的剩余血量为%d\n",ai);
sl(3000);
if(gun.empty())
{
system("cls");
int m=rand()%2+3;
int n=randtool(m);
pf("%d枚实弹 %d枚空弹\n",n,m-n);
pt("子弹装填中……");
sl(3000);
}
int l=gun.top();
gun.pop();
int did=0;
if(quan==true)
{
system("cls");
pt("现在是您的回合");
pt("按9使用桌上的枪");
while(did!='9')
{
did=getch();
}
system("cls");
pt("按1对对方开枪");
pt("按0对自己开枪");
while(did!='0'&&did!='1')
{
did=getch();
}
system("cls");
if(did=='0')
{
pt("您选择对自己开枪");
sl(3000);
if(l==1)
{
pt("枪中是实弹");
sl(3000);
player--;
}
else
{
pt("枪中是空弹");
sl(3000);
}
}
else
{
pt("您选择对对方开枪");
sl(3000);
if(l==1)
{
pt("枪中是实弹");
sl(3000);
ai--;
}
else
{
pt("枪中是空弹");
sl(3000);
}
if(ai>0)
{
pt("主动权来到了对方手上");
sl(3000);
quan=false;
}
}
}
else
{
system("cls");
pt("人机计算中……");
did=rand()%2;
system("cls");
if(did==0)
{
pt("对方选择对自己开枪");
sl(3000);
if(l==1)
{
pt("枪中是实弹");
sl(3000);
ai--;
}
else
{
pt("枪中是空弹");
sl(3000);
}
}
else
{
pt("对方选择对您开枪");
sl(3000);
if(l==1)
{
pt("枪中是实弹");
sl(3000);
player--;
}
else
{
pt("枪中是空弹");
sl(3000);
}
if(player>0)
{
pt("主动权来到了您手上");
sl(3000);
quan=true;
}
}
}
}
while(gun.empty()==false)
{
gun.pop();
}
system("cls");
if(player>0)
{
system("color 06");
pt("您赢了");
sl(3000);
second();
}
else
{
system("color 04");
pt("您输了");
sl(3000);
home();
}
}
void second()
{
system("cls");
system("color 07");
int ai=4,player=4,atl[99],prtl[99],quan=1;
memset(atl,0,sizeof(atl));
memset(prtl,0,sizeof(prtl));
int atnum=0,atpl[11];
bool fin=true;
pt("进入第二关");
sl(3000);
while(ai>0&&player>0)
{
system("cls");
pf("您的剩余血量为%d\n",player);
pf("对方的剩余血量为%d\n",ai);
sl(3000);
if(gun.empty())
{
system("cls");
int m=rand()%4+3;
int n=randtool(m);
pf("%d枚实弹 %d枚空弹\n",n,m-n);
pt("子弹装填中……");
sl(3000);
int at1=rand()%5+1,at2=rand()%5+1,prt;
atnum++;
atl[atnum]=rand()%5+1;
atpl[atl[atnum]]++;
atnum++;
atl[atnum]=rand()%5+1;
atpl[atl[atnum]]++;
for(int i=1;i<=2;i++)
{
system("cls");
char pl=' ';
prt=rand()%5+1;
pt("获得新道具!");
sl(3000);
if(prt==1)
{
pt(Y);
}
if(prt==2)
{
pt(J);
}
if(prt==3)
{
pt(F);
}
if(prt==4)
{
pt(D);
}
if(prt==5)
{
pt(S);
}
sl(3000);
system("cls");
pt("请选择您要放置它的位置(1~8)");//处理满原情况
while(1==1)
{
while(pl<'1'||pl>'8')
{
pl=getch();
}
if(prtl[pl]>0)
{
system("cls");
pl=' ';
pt("抱歉,该位置已有物品");
}
else
{
system("cls");
pt("完成!");
sl(3000);
prtl[pl]=prt;
break;
}
}
}
}
int l=gun.top();
gun.pop();
if(quan>0)
{
fin=false;
system("cls");
pt("现在是您的回合");
pt("按1~8查看并使用相应的道具");
pt("按-查看敌人道具");
pt("按9使用桌上的枪");
while(fin==false)
{
char c=getch(),d;
if(c>='1'&&c<='8')
{
}
if(c=='-')
{
}
if(c=='9')
{
fin=true;
}
}
}
else
{
}
}
while(gun.empty()==false)
{
gun.pop();
}
system("cls");
if(player>0)
{
system("color 06");
pt("您赢了");
sl(3000);
third();
}
else
{
system("color 04");
pt("您输了");
sl(3000);
home();
}
}
void third()
{
}
void begin()
{
system("cls");
pt("剧情已跳过(doge)");
sl(3000);
if(strlen(name)==0)
{
pf("请输入昵称:");
sf("%s",name);
pt("完成!");
sl(3000);
}
first();
second();
}
void end()
{
}
void home()
{
system("color 07");
system("cls");
char c=' ';
pt(" 一款很新的游戏 ");
pt("");
pt(" 按 s 开始");
pt(" 按 e 退出");
while(c!='e'&&c!='s')
{
c=getch();
}
chance=true;
if(c=='e')
{
exit(0);
}
else
{
begin();
}
}
void kong()
{
}
int main()
{
srand((unsigned)time(NULL));
home();
}
//更新进度:第二关主体尚未完成
//更新公告
//2024/4/2
//增加了道具文案
//再次优化了子弹系统
//进行了操作系统的一部分制作
//2024/3/19=========
//修复了道具无法放置的BUG
//增加了更新公告栏
//更早=========
//优化了第二关的子弹系统
浙公网安备 33010602011771号