c++自制控制台俄罗斯转盘小游戏

#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 个赞

这是一个纯靠运气的小游戏,玩法就是按空格输入数字输入数字然后按空格

4 个赞