#include<iostream>
#include<conio.h>
#include<windows.h>
#include<ctime>
#include<cstdlib>
using namespace std;
struct node{char data;node*next;bool live;};
#define DAN 26//数据可自行更改
void start(){
system("mode con cols=24 lines=5");
cout<<"=======左轮游戏=======\n";
cout<<"|(俄罗斯转盘) |\n";
cout<<"|按 下 任 意 键 开 始|\n";
cout<<"======================";
getch();
}
int main(){
start();
node*head,*r;
head=new node;
head->next=nullptr;
r=head;
node*p;
int k=0,d=0;
system("cls");
system("mode con cols=30 lines=10");
while(true){
cout<<"请输入转盘人数(2~26):";
cin>>k;
if(k>=2&&k<=26){break;}
else{cout<<"数据错误!";Sleep(1000);system("cls");}
}
system("cls");
while(true){
cout<<"请输入转盘格数\n(弹容量)(2~"<<DAN<<"):";
cin>>d;
if(d>=2&&d<=DAN){break;}
else{cout<<"数据错误!";Sleep(1000);system("cls");}
}
for(int i=1;i<=k;i++){
p=new node;
p->data='A'+i-1;
p->next=nullptr;
p->live=true;
r->next=p;
r=p;
}
r->next=head->next;
p=head->next;
srand(time(0));
system("mode con cols=60 lines=20");
cout<<"--左 轮 游 戏 开 始--\n";
char player=(rand()%k)+'A';
cout<<"你是赌徒"<<player<<"按任意键继续......\n";
getch();
for(int i=1;i<k;i++){
cout<<"=====新的一轮=====\n";
p=head->next;
while(!p->live){p=p->next;}
int kill=rand()%d+1;
node*pre=p;
for(int j=1;j<kill;j++){
if(p->data==player){cout<<"你举起枪,对着自己开了一枪......(按任意键继续)\n";}
else{cout<<"赌徒"<<p->data<<"举起枪,对着自己开了一枪......(按任意键继续)\n";}
getch();
cout<<"然而什么也没有发生......\n";
pre=p;
p=p->next;
while(!p->live){p=p->next;}
}
if(p->data==player){cout<<"你举起枪,对着自己开了一枪......(按任意键继续)\n";}
else{cout<<"赌徒"<<p->data<<"举起枪,对着自己开了一枪......(按任意键继续)\n";}
getch();
if(p->data==player){cout<<"你倒在了血泊中!你死了(按任意键继续)\n";getch();}
else{cout<<"砰!赌徒"<<p->data<<"倒在了血泊中!\n";}
p->live=false;
pre->next=p->next;
}
if(p->next->data==player){cout<<"你是胜利者!";}
else{cout<<"赌徒"<<p->next->data<<"是胜利者!";}
}
5 个赞