俄罗斯轮盘赌
zshcchenyi · · 个人记录
好玩的俄罗斯轮盘赌
自己打的,别喷。
#include<bits/stdc++.h>//可加入道具,小刀,汽水,香烟,手铐,放大镜,上帝的契约
#include<windows.h>
#include<time.h>
#include<conio.h>
#include<cmath>
using namespace std;
int shi,dan,xu;
int cang[10];
char n;
string player1,player2;//单人/双人模式下的人名
int er1,er2;//记录角色的血量
int people=1;
void Color(int a){
if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY|7);//白色
if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_RED);//红底黄字
if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED);//红底
if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY);//灰底
if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_RED);//黄底黄字
if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED);//黄字
if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);//木色
if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);//白底
}
void SetPos(int i, int j){//设置光标 (i为列,j为行)
COORD pos={i, j};
HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(out, pos);
}
void init(){
dan=rand()%8+1;//子弹的总数
shi=rand()%(dan-1)+1;//实弹的数量
xu=dan-shi; //虚弹的数量
}
void tianru(){//装入弹药
int x=xu;
int s=shi;
for(int i=1;i<=dan;i++){
int flag=rand()%2;
if(flag==1&&s>0){//填入实弹
s--;
cang[i]=1;
continue;
}
if(flag==0&&x>0){//填入虚弹
x--;
cang[i]=0;
continue;
}
if(x==0&&s>0){
s--;
cang[i]=1;
continue;
}
if(s==0&&x>0){
x--;
cang[i]=0;
continue;
}
}
return ;
}
void zhanshi(){//展示弹药
system("cls");
cout<<"展示弹药如下"<<endl;
cout<<"红色为实弹,灰色为虚弹。"<<endl;
for(int j=1;j<=3;j++){
for(int i=1;i<=dan;i++){
if(i<=shi){
cout<<" ";
Color(2);
cout<<" ";
Color(0);
cout<<" ";
}else{
cout<<" ";
Color(3);
cout<<" ";
Color(0);
cout<<" ";
}
cout<<" ";
}
cout<<endl;
}
for(int i=1;i<=dan;i++){
Color(5);
cout<<"_";
Color(4);
cout<<"____";
Color(5);
cout<<"_";
Color(0);
cout<<" ";
}
cout<<endl;
}
void gongju(){
if(n=='d'){
}else if(n=='q'){
}else if(n=='x'){
}else if(n=='s'){
}else if(n=='f'){
}else if(1){
}
}
void gjx(){//播放攻击他人但是是虚弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ 咔! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
SetPos(0,7);
Sleep(300);
printf("虚");
Sleep(100);
printf("弹");
Sleep(100);
printf("而");
Sleep(100);
printf("已\n");
Sleep(1000);
}
void gjs(){//播放攻击他人但是是实弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ 嘭! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
SetPos(0,1);
Color(1);
cout<<"|%|";
Color(0);
int ge=5;
while(ge--){
int x=rand()%4;
int y=rand()%2;
if(x==1&&y==1){
ge++;
continue;
}
SetPos(x,y);
Color(2);
cout<<" ";
Color(0);
}
SetPos(0,7);
Sleep(300);
printf("实");
Sleep(100);
printf("弹");
Sleep(100);
printf("!");
Sleep(100);
printf("!\n");
Sleep(1000);
}
void zsx(){//播放攻击自己但是是虚弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(600);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(600);
system("cls");
printf(" _ 咔! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
SetPos(0,7);
Sleep(200);
printf("虚");
Sleep(100);
printf("弹");
Sleep(100);
printf("而");
Sleep(100);
printf("已\n");
Sleep(1000);
}
void zss(){//播放攻击自己但是是实弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ 嘭! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
SetPos(14,1);
Color(1);
cout<<"|%|";
Color(0);
int ge=5;
while(ge--){
int x=rand()%4;
int y=rand()%2;
x+=14;
if(x==15&&y==1){
ge++;
continue;
}
SetPos(x,y);
Color(2);
cout<<" ";
Color(0);
}
SetPos(0,7);
Sleep(300);
printf("实");
Sleep(100);
printf("弹");
Sleep(100);
printf("!");
Sleep(100);
printf("!\n");
Sleep(1000);
}
void zxtwo(){//双人
while(1){
init();
tianru();
zhanshi();
Sleep(1000);
printf("正在装填弹药中");
int ti=dan;
while(ti--){
Sleep(200);
cout<<".";
}
printf("\n装填完毕。");
Sleep(1000);
for(int i=1;i<=dan;i++){
system("cls");
//输出血量
cout<<player1<<":";
for(int j=1;j<=6;j++){
if(j<=er1){
Color(2);
cout<<"_";
Color(0);
}else{
Color(7);
cout<<"_";
Color(0);
}
}
cout<<endl;
cout<<player2<<":";
for(int j=1;j<=6;j++){
if(j<=er2){
Color(2);
cout<<"_";
Color(0);
}else{
Color(7);
cout<<"_";
Color(0);
}
}
cout<<endl;
//血量到此为止
if(people==1){
cout<<"这是"<<player1<<"的回合,请攻击: \n";
cout<<"1."<<player1<<";\n";
cout<<"2."<<player2<<";\n";
}else if(people==2){
cout<<"这是"<<player2<<"的回合,请攻击: \n";
cout<<"1."<<player2<<";\n";
cout<<"2."<<player1<<";\n";
}
n='0';
while(n!='1'&&n!='2'){
n=getch();
}
if(n=='1'){//选择了打自己
if(cang[i]==1){//当前为实弹
zss();
Sleep(1000);
printf("你打中了自己,扣一滴血\n");
if(people==1){
er1--;
}else if(people==2){
er2--;
}
}else if(cang[i]==0){//当前为虚弹
zsx();
}
}
else if(n=='2'){//选择了打别人
if(cang[i]==1){//当前为实弹
gjs();
if(people==1){
er2--;
}else if(people==2){
er1--;
}
}else if(cang[i]==0){//当前为虚弹
gjx();
}
if(people==1){
people=2;
}else if(people==2){
people=1;
}
}
Sleep(500);
if(er1==0||er2==0){
return ;
}
}
if(er1==0||er2==0){
return ;
}
if(er1!=0&&er2!=0){
printf("子弹打完了,重新填弹\n");
Sleep(1000);
}
cout<<1<<endl;
}
return ;
}
int main(){
srand((unsigned)time(0)); //初始化随机函数,以时间为随机种子
Color(0);
printf("欢迎来到俄罗斯轮盘赌。\n");//双人对战
printf("请输入你的名字,player1:\n");
cin>>player1;
printf("请输入你的名字,player2:\n");
cin>>player2;
er1=6;
er2=6;
zxtwo();
if(er1==0){
cout<<player1<<"死了,他化作了地底的亡魂。"<<endl;
cout<<player2<<"赢了,他获得了50000000¥。"<<endl;
}else if(er2==0){
cout<<player2<<"死了,他化作了地底的亡魂。"<<endl;
cout<<player1<<"赢了,他获得了50000000 $。"<<endl;
}
return 0;
}
2.0
输入后打完要加回车,但不会误触,请保证你的输入都是对的
#include<bits/stdc++.h>//可加入道具,小刀,汽水,香烟,手铐,放大镜,上帝的契约
#include<windows.h>
#include<time.h>
#include<conio.h>
#include<cmath>
using namespace std;
int shi,dan,xu;
int cang[10];
char n;
string player1,player2;//单人/双人模式下的人名
int er1,er2;//记录角色的血量
int people=1;
void Color(int a){
if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY|7);//白色
if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_RED);//红底黄字
if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED);//红底
if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY);//灰底
if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_RED);//黄底黄字
if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED);//黄字
if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);//木色
if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);//白底
}
void SetPos(int i, int j){//设置光标 (i为列,j为行)
COORD pos={i, j};
HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(out, pos);
}
void init(){
dan=rand()%8+1;//子弹的总数
shi=rand()%(dan-1)+1;//实弹的数量
xu=dan-shi; //虚弹的数量
}
void tianru(){//装入弹药
int x=xu;
int s=shi;
for(int i=1;i<=dan;i++){
int flag=rand()%2;
if(flag==1&&s>0){//填入实弹
s--;
cang[i]=1;
continue;
}
if(flag==0&&x>0){//填入虚弹
x--;
cang[i]=0;
continue;
}
if(x==0&&s>0){
s--;
cang[i]=1;
continue;
}
if(s==0&&x>0){
x--;
cang[i]=0;
continue;
}
}
return ;
}
void zhanshi(){//展示弹药
system("cls");
cout<<"展示弹药如下"<<endl;
cout<<"红色为实弹,灰色为虚弹。"<<endl;
for(int j=1;j<=3;j++){
for(int i=1;i<=dan;i++){
if(i<=shi){
cout<<" ";
Color(2);
cout<<" ";
Color(0);
cout<<" ";
}else{
cout<<" ";
Color(3);
cout<<" ";
Color(0);
cout<<" ";
}
cout<<" ";
}
cout<<endl;
}
for(int i=1;i<=dan;i++){
Color(5);
cout<<"_";
Color(4);
cout<<"____";
Color(5);
cout<<"_";
Color(0);
cout<<" ";
}
cout<<endl;
}
void gongju(){
if(n=='d'){
}else if(n=='q'){
}else if(n=='x'){
}else if(n=='s'){
}else if(n=='f'){
}else if(1){
}
}
void gjx(){//播放攻击他人但是是虚弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ 咔! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
SetPos(0,7);
Sleep(300);
printf("虚");
Sleep(100);
printf("弹");
Sleep(100);
printf("而");
Sleep(100);
printf("已\n");
Sleep(1000);
}
void gjs(){//播放攻击他人但是是实弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ 嘭! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
SetPos(0,1);
Color(1);
cout<<"|%|";
Color(0);
int ge=5;
while(ge--){
int x=rand()%4;
int y=rand()%2;
if(x==1&&y==1){
ge++;
continue;
}
SetPos(x,y);
Color(2);
cout<<" ";
Color(0);
}
SetPos(0,7);
Sleep(300);
printf("实");
Sleep(100);
printf("弹");
Sleep(100);
printf("!");
Sleep(100);
printf("!\n");
Sleep(1000);
}
void zsx(){//播放攻击自己但是是虚弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(600);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(600);
system("cls");
printf(" _ 咔! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
SetPos(0,7);
Sleep(200);
printf("虚");
Sleep(100);
printf("弹");
Sleep(100);
printf("而");
Sleep(100);
printf("已\n");
Sleep(1000);
}
void zss(){//播放攻击自己但是是实弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
Sleep(500);
system("cls");
printf(" _ 嘭! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
SetPos(14,1);
Color(1);
cout<<"|%|";
Color(0);
int ge=5;
while(ge--){
int x=rand()%4;
int y=rand()%2;
x+=14;
if(x==15&&y==1){
ge++;
continue;
}
SetPos(x,y);
Color(2);
cout<<" ";
Color(0);
}
SetPos(0,7);
Sleep(300);
printf("实");
Sleep(100);
printf("弹");
Sleep(100);
printf("!");
Sleep(100);
printf("!\n");
Sleep(1000);
}
void zxtwo(){//双人
while(1){
init();
tianru();
zhanshi();
Sleep(1000);
printf("正在装填弹药中");
int ti=dan;
while(ti--){
Sleep(200);
cout<<".";
}
printf("\n装填完毕。");
Sleep(1000);
for(int i=1;i<=dan;i++){
system("cls");
//输出血量
cout<<player1<<":";
for(int j=1;j<=6;j++){
if(j<=er1){
Color(2);
cout<<"_";
Color(0);
}else{
Color(7);
cout<<"_";
Color(0);
}
}
cout<<endl;
cout<<player2<<":";
for(int j=1;j<=6;j++){
if(j<=er2){
Color(2);
cout<<"_";
Color(0);
}else{
Color(7);
cout<<"_";
Color(0);
}
}
cout<<endl;
//血量到此为止
if(people==1){
cout<<"这是"<<player1<<"的回合,请攻击: \n";
cout<<"1."<<player1<<";\n";
cout<<"2."<<player2<<";\n";
}else if(people==2){
cout<<"这是"<<player2<<"的回合,请攻击: \n";
cout<<"1."<<player2<<";\n";
cout<<"2."<<player1<<";\n";
}
cin>>n;
if(n=='1'){//选择了打自己
if(cang[i]==1){//当前为实弹
zss();
Sleep(1000);
printf("你打中了自己,扣一滴血\n");
if(people==1){
er1--;
}else if(people==2){
er2--;
}
}else if(cang[i]==0){//当前为虚弹
zsx();
}
}
else if(n=='2'){//选择了打别人
if(cang[i]==1){//当前为实弹
gjs();
if(people==1){
er2--;
}else if(people==2){
er1--;
}
}else if(cang[i]==0){//当前为虚弹
gjx();
}
if(people==1){
people=2;
}else if(people==2){
people=1;
}
}
Sleep(500);
if(er1==0||er2==0){
return ;
}
}
if(er1==0||er2==0){
return ;
}
if(er1!=0&&er2!=0){
printf("子弹打完了,重新填弹\n");
Sleep(1000);
}
cout<<1<<endl;
}
return ;
}
int main(){
srand((unsigned)time(0)); //初始化随机函数,以时间为随机种子
Color(0);
printf("欢迎来到俄罗斯轮盘赌。\n");//双人对战
printf("请输入你的名字,player1:\n");
cin>>player1;
printf("请输入你的名字,player2:\n");
cin>>player2;
er1=6;
er2=6;
zxtwo();
if(er1==0){
cout<<player1<<"死了,他化作了地底的亡魂。"<<endl;
cout<<player2<<"赢了,他获得了50000000¥。"<<endl;
}else if(er2==0){
cout<<player2<<"死了,他化作了地底的亡魂。"<<endl;
cout<<player1<<"赢了,他获得了50000000 $。"<<endl;
}
return 0;
}
3.0
增加了动画,优化了细节,建议玩这款
#include<bits/stdc++.h>//可加入道具,小刀,汽水,香烟,手铐,放大镜,上帝的契约
#include<windows.h>
#include<time.h>
#include<conio.h>
#include<cmath>
using namespace std;
int shi,dan,xu;
int cang[10];
char n;
string player1,player2;//单人/双人模式下的人名
int er1,er2;//记录角色的血量
int people=1;
void Color(int a){
if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY|7);//白色
if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_RED);//红底黄字
if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED);//红底
if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY);//灰底
if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_RED);//黄底黄字
if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED);//黄字
if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);//木色
if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);//白底
}
void SetPos(int i, int j){//设置光标 (i为列,j为行)
COORD pos={i, j};
HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(out, pos);
}
void init(){
srand((unsigned)time(0)); //初始化随机函数,以时间为随机种子
dan=rand()%8+1;//子弹的总数
shi=rand()%dan+1;//实弹的数量
if(shi>(dan/2+1)){
shi=min(shi,dan/2+1);
}
if(dan==shi&&dan==1){
dan++;
}
xu=dan-shi; //虚弹的数量
}
void tianru(){//装入弹药
int x=xu;
srand((unsigned)time(0)); //初始化随机函数,以时间为随机种子
int s=shi;
for(int i=1;i<=dan;i++){
int flag=rand()%2;
if(flag==1&&s>0){//填入实弹
s--;
cang[i]=1;
continue;
}
if(flag==0&&x>0){//填入虚弹
x--;
cang[i]=0;
continue;
}
if(x==0&&s>0){
s--;
cang[i]=1;
continue;
}
if(s==0&&x>0){
x--;
cang[i]=0;
continue;
}
}
return ;
}
void zhanshi(){//展示弹药
system("cls");
cout<<"展示弹药如下"<<endl;
cout<<"红色为实弹,灰色为虚弹。"<<endl;
for(int j=1;j<=3;j++){
for(int i=1;i<=dan;i++){
if(i<=shi){
cout<<" ";
Color(2);
cout<<" ";
Color(0);
cout<<" ";
}else{
cout<<" ";
Color(3);
cout<<" ";
Color(0);
cout<<" ";
}
cout<<" ";
}
cout<<endl;
}
for(int i=1;i<=dan;i++){
Color(5);
cout<<"_";
Color(4);
cout<<"____";
Color(5);
cout<<"_";
Color(0);
cout<<" ";
}
cout<<endl;
}
void name(){
SetPos(0,6);
cout<<player1;
SetPos(13,6);
cout<<player2;
}
//下面的数字指的是发起攻击的人
void gj1x(){//播放攻击他人但是是虚弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" |----|| | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ 咔! _ \n");
printf("|_| ==== |_| \n");
printf(" |----|| | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
SetPos(0,8);
Sleep(300);
printf("虚");
Sleep(100);
printf("弹");
Sleep(100);
printf("而");
Sleep(100);
printf("已\n");
Sleep(1000);
}
void gj2x(){//播放攻击他人但是是虚弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ 咔! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
SetPos(0,8);
Sleep(300);
printf("虚");
Sleep(100);
printf("弹");
Sleep(100);
printf("而");
Sleep(100);
printf("已\n");
Sleep(1000);
}
void gj1s(){//播放攻击他人但是是实弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" |----|| | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ 嘭! _ \n");
printf("|_| ==== |_| \n");
printf(" |----|| | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
SetPos(14,1);
Color(1);
cout<<"|%|";
Color(0);
int ge=5;
while(ge--){
int x=rand()%4;
int y=rand()%2;
x+=14;
if(x==15&&y==1){
ge++;
continue;
}
SetPos(x,y);
Color(2);
cout<<" ";
Color(0);
}
SetPos(0,8);
Sleep(300);
printf("实");
Sleep(100);
printf("弹");
Sleep(100);
printf("!");
Sleep(100);
printf("!\n");
Sleep(1000);
}
void gj2s(){//播放攻击他人但是是实弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ 嘭! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
SetPos(0,1);
Color(1);
cout<<"|%|";
Color(0);
int ge=5;
while(ge--){
int x=rand()%4;
int y=rand()%2;
if(x==1&&y==1){
ge++;
continue;
}
SetPos(x,y);
Color(2);
cout<<" ";
Color(0);
}
SetPos(0,8);
Sleep(300);
printf("实");
Sleep(100);
printf("弹");
Sleep(100);
printf("!");
Sleep(100);
printf("!\n");
Sleep(1000);
}
void zs1x(){//播放攻击自己但是是虚弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(600);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" |----|| | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(600);
system("cls");
printf(" _ 咔! _ \n");
printf("|_| ==== |_| \n");
printf(" |----|| | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
SetPos(0,8);
Sleep(200);
printf("虚");
Sleep(100);
printf("弹");
Sleep(100);
printf("而");
Sleep(100);
printf("已\n");
Sleep(1000);
}
void zs2x(){//播放攻击自己但是是虚弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(600);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(600);
system("cls");
printf(" _ 咔! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
SetPos(0,8);
Sleep(200);
printf("虚");
Sleep(100);
printf("弹");
Sleep(100);
printf("而");
Sleep(100);
printf("已\n");
Sleep(1000);
}
void zs1s(){//播放攻击自己但是是实弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" |----|| | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ 嘭! _ \n");
printf("|_| ==== |_| \n");
printf(" |----|| | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
SetPos(0,1);
Color(1);
cout<<"|%|";
Color(0);
int ge=5;
while(ge--){
int x=rand()%4;
int y=rand()%2;
if(x==1&&y==1){
ge++;
continue;
}
SetPos(x,y);
Color(2);
cout<<" ";
Color(0);
}
SetPos(0,8);
Sleep(300);
printf("实");
Sleep(100);
printf("弹");
Sleep(100);
printf("!");
Sleep(100);
printf("!\n");
Sleep(1000);
}
void zs2s(){//播放攻击自己但是是实弹的动画
system("cls");
printf(" _ _ \n");
printf("|_| |_| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
Sleep(500);
system("cls");
printf(" _ 嘭! _ \n");
printf("|_| ==== |_| \n");
printf(" | ||----| \n");
printf(" | | \n");
printf(" | | \n");
printf(" | | \n");
Color(6);
SetPos(3,3);
printf("___________");
SetPos(3,4);
printf("| | | |");
SetPos(3,5);
printf("| | | |");
Color(0);
name();
SetPos(14,1);
Color(1);
cout<<"|%|";
Color(0);
int ge=5;
while(ge--){
int x=rand()%4;
int y=rand()%2;
x+=14;
if(x==15&&y==1){
ge++;
continue;
}
SetPos(x,y);
Color(2);
cout<<" ";
Color(0);
}
SetPos(0,8);
Sleep(300);
printf("实");
Sleep(100);
printf("弹");
Sleep(100);
printf("!");
Sleep(100);
printf("!\n");
Sleep(1000);
}
void zxtwo(){//双人
while(1){
init();
tianru();
zhanshi();
Sleep(1000);
printf("正在装填弹药中");
int ti=dan;
while(ti--){
Sleep(200);
cout<<".";
}
printf("\n装填完毕。");
Sleep(1000);
for(int i=1;i<=dan;i++){
system("cls");
//输出血量
cout<<player1<<":";
for(int j=1;j<=6;j++){
if(j<=er1){
Color(2);
cout<<"_";
Color(0);
}else{
Color(7);
cout<<"_";
Color(0);
}
}
cout<<endl;
cout<<player2<<":";
for(int j=1;j<=6;j++){
if(j<=er2){
Color(2);
cout<<"_";
Color(0);
}else{
Color(7);
cout<<"_";
Color(0);
}
}
cout<<endl;
//血量到此为止
if(people==1){
cout<<"这是"<<player1<<"的回合,请攻击: \n";
cout<<"1."<<player1<<";\n";
cout<<"2."<<player2<<";\n";
}else if(people==2){
cout<<"这是"<<player2<<"的回合,请攻击: \n";
cout<<"1."<<player2<<";\n";
cout<<"2."<<player1<<";\n";
}
n='0';
while(n!='1'&&n!='2'){
n=getch();
}
if(n=='1'){//选择了打自己
if(cang[i]==1){//当前为实弹
if(people==1){
zs1s();
er1--;
}else if(people==2){
zs2s();
er2--;
}
}else if(cang[i]==0){//当前为虚弹
if(people==1){
zs1x();
}else if(people==2){
zs2x();
}
}
}
else if(n=='2'){//选择了打别人
if(cang[i]==1){//当前为实弹
if(people==1){
gj1s();
er2--;
}else if(people==2){
gj2s();
er1--;
}
}else if(cang[i]==0){//当前为虚弹
if(people==1){
gj1x();
}else if(people==2){
gj2x();
}
}
if(people==1){
people=2;
}else if(people==2){
people=1;
}
}
Sleep(500);
if(er1==0||er2==0){
return ;
}
}
if(er1==0||er2==0){
return ;
}
if(er1!=0&&er2!=0){
printf("子弹打完了,重新填弹\n");
Sleep(1000);
}
cout<<1<<endl;
}
return ;
}
int main(){
srand((unsigned)time(0)); //初始化随机函数,以时间为随机种子
Color(0);
printf("欢迎来到俄罗斯轮盘赌。\n");//双人对战
printf("请输入你的名字,player1:\n");
cin>>player1;
printf("请输入你的名字,player2:\n");
cin>>player2;
while(player2==player1){
printf("请勿输入相同的名字\n请重新"){
cin>>player2;
}
}
er1=6;
er2=6;
zxtwo();
if(er1==0){
cout<<player1<<"死了,他化作了地底的亡魂。"<<endl;
cout<<player2<<"赢了,他获得了50000000¥。"<<endl;
}else if(er2==0){
cout<<player2<<"死了,他化作了地底的亡魂。"<<endl;
cout<<player1<<"赢了,他获得了50000000 $。"<<endl;
}
return 0;
}