社区讨论
求助!自制c++小游戏有问题
灌水区参与者 7已保存回复 10
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 10 条
- 当前快照
- 1 份
- 快照标识符
- @lo8mc7c2
- 此快照首次捕获于
- 2023/10/27 20:57 2 年前
- 此快照最后确认于
- 2023/10/27 20:57 2 年前
求助!!
哪个大佬帮我修一下代码!
CPP#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int a[1000],n,lis[1000],ll;
bool a1[1000];
void print(string a) {
int b=a.size();
for(int i=0; i<b; i++) {
if(a[i]!='.') {
cout<<a[i];
Sleep(20);
continue;
}
cout<<a[i];
Sleep(7);
}
cout<<endl;
while(!GetAsyncKeyState(VK_SPACE)) {
Sleep(0.1);
}
Sleep(100);
}
void wen(string a) {
int b=a.size();
for(int i=0; i<b; i++) {
if(a[i]!='.') {
cout<<a[i];
Sleep(20);
continue;
}
cout<<a[i];
Sleep(7);
}
cout<<endl;
}
void q() {
system("cls");
}
bool bao(int t){
for(int i=0;i<ll;i++){
if(t-1==lis[i]){
return 1;
}
}
return 0;
}
int main() {
print("曼德拉记录---------0.1 Beta");
print("在这个世界里,你将扮演两种角色:伪人与人类");
print("注:目前只是测试版..");
print("按空格开始...");
q();
wen("请输入玩家个数(目前只有2~5人模式)");
cin>>n;
while(n<3) {
wen("人数不够!重新输入");
cin>>n;
}
srand(time(0));
if(n<=5) {
int sum=1;
srand(time(0));
int ran=((rand()%n+1)*rand()%5)%n+1,la=rand()%n+1;
a[ran-1]=1145;
cout<<"你是"<<la<<"号玩家"<<endl;
if(la-1==ran-1) {
cout<<"你的身份:伪人"<<endl;
lis[ll]=la-1;
++ll;
while(!GetAsyncKeyState(VK_SPACE)) {
Sleep(0.1);
}
} else {
cout<<"你的身份:人类"<<endl;
while(!GetAsyncKeyState(VK_SPACE)) {
Sleep(0.1);
}
}
q();
int p[1000];
int x;
while(1) {
memset(p,0,n+1);
cout<<"第";
cout<<sum;
print("天...");
q();
for(int i=0; i<n; i++) {
if(a1[i]==0) {
cout<<"玩家"<<i+1<<"的状态:存活"<<endl;
} else {
cout<<"玩家"<<i+1<<"的状态:死亡";
if(a[i]==1145) {
wen(",是个伪人!!");
} else {
wen(",是个人类!");
}
}
}
if(sum>1) {
bool re=0;
for(int i=0; i<n; i++) {
if(a1[i]==1) {
re=1;
cout<<i+1;
print("号玩家死亡!!");
}
}
if(!re) {
print("平安夜...");
}
print("开始投票!!!");
for(int i=0; i<n; i++) {
if(i!=la-1&&a1[i]==0) {
srand(time(0));
x=rand()%n+1;
cout<<i+1<<"号玩家投了"<<x<<"号!"<<endl;
p[x-1]+=1;
Sleep(1000);
} else if(i==la-1&&a1[i]==0) {
int xuan;
wen("你选择投:");
cin>>xuan;
p[xuan-1]+=1;
while(!GetAsyncKeyState(VK_SPACE)) {
Sleep(0.1);
}
}
}
int max=1,xu=0;
for(int i=0; i<n; i++) {
if(p[i]>max) {
max=p[i];
xu=i;
}
}
if(max!=1) {
cout<<xu+1;
print("号玩家已出局!!");
a1[xu]=1;
print("他的身份:");
if(a[xu]==1145) {
print("伪人!!");
} else {
print("人类!?");
}
system("cls");
}
}
print("天黑了...");
if(a[la-1]==1145) {
int xua;
wen("你来了...选择你的猎物");
cin>>xua;
while(xua==la) {
system("cls");
wen("不可以选自己!!!");
cin>>xua;
}
a1[xua-1]=1;
print("他被你杀了!!");
lis[ll]=xua-1;
++ll;
wen("选择要变身的人");
cin>>xua;
while(!bao(xua)||a1[xua-1]){
wen("不能变成他!!");
cin>>xua;
}
print("变身成功!");
system("cls");
}
sum++;
}
}
return 0;
}
回复
共 10 条回复,欢迎继续交流。
正在加载回复...