- BC20270041's blog
骰子竞技场3.0(原创加密)
- 2025-9-4 15:00:47 @
#include<bits/stdc++.h> #include<windows.h> #include<time.h> #include<conio.h> #include<stdio.h> using namespace std; int now1=1,w1=2,s1=5,a1=4,d1=3,b1=6;//蓝队 int now2=1,w2=5,s2=2,a2=3,d2=4,b2=6;//红队 int px1=1,py1=1,px2=6,py2=6,key1=3,key2=3; int gameover=0; void Slowsay(string a){ int l=a.size(); for(int i=0;i<l;i++){ cout<<a[i]; Sleep(2); } printf("\n"); } void Color(int a){ if(a0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN); if(a3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE); if(a4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); if(a5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); if(a6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); if(a7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN); if(a8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|BACKGROUND_INTENSITY|BACKGROUND_RED); if(a10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE|BACKGROUND_INTENSITY|BACKGROUND_BLUE); } void writemap(){ system("cls"); for(int i=1;i<=6;i++){ for(int j=1;j<=6;j++){ if(i+py17&&jpx1)cout<<"*--"<<w1<<"--"; else if(i+py27&&jpx2)cout<<"*--"<<w2<<"--"; else if(i+py18&&jpx1)cout<<"*--"<<s1<<"--"; else if(i+py28&&jpx2)cout<<"--"<<s2<<"--"; else cout<<"-----"; } cout<<"*"<<endl; for(int j=1;j<=6;j++){ if(i+py17&&jpx1)cout<<"| | "; else if(i+py27&&jpx2)cout<<"| | "; else cout<<"| "; } cout<<"|"<<endl; int flag=false; if(py1+i7&&py2+i7&&(px1-px21||px2-px11)){ flag=min(px1,px2); } for(int j=1;j<=6;j++){ if(flagfalse){ if(i+py17&&jpx1){ cout<<a1<<"- "; Color(6),cout<<now1; Color(8),cout<<" -"; } else if(i+py17&&jpx1+1)cout<<d1<<" "; else if(i+py27&&jpx2){ cout<<a2<<"- "; Color(4),cout<<now2; Color(8),cout<<" -"; } else if(i+py27&&jpx2+1)cout<<d2<<" "; else cout<<"| "; }else{ if(jflag){ j++; cout<<a1<<"- "; Color(6),cout<<now1; Color(8),cout<<" -"; Color(5),cout<<"+"; Color(8),cout<<"- "; Color(4),cout<<now2; Color(8),cout<<" -"<<d2; }else if(jflag+2){ cout<<" "; }else{ cout<<"| "; } } } if(i+py17&&px16){ cout<<d1<<endl; }else if(i+py27&&px26){ cout<<d2<<endl; }else{ cout<<"|"<<endl; } for(int j=1;j<=6;j++){ if(i+py17&&jpx1)cout<<"| | "; else if(i+py27&&jpx2)cout<<"| | "; else cout<<"| "; } cout<<"|"<<endl; } for(int i=1;i<=6;i++){ if(ipx1&&py11){cout<<"--"<<s1<<"--";} else if(ipx2&&py21){cout<<"--"<<s2<<"--";} else cout<<"-----"; } cout<<""<<endl; return ; } void movement(){ char way; int isin=0; while(isin<=0){ Slowsay("please player1 cin how to move:1,6,0,w,s,a or d"); cin>>way; //key if(way=='1'||way=='6'||way=='0'){ if(way=='1'&&key1>0){ Slowsay("OK, you can move one more time this round"); Sleep(1000); key1--; isin--; }else if(way=='6'&&key1>0){ Slowsay("OK, your number is six"); key1--; now1=6,w1=2,s1=5,a1=4,d1=3,b1=1; }else if(way=='0'&&key1>0){ Slowsay("OK, your position is changed"); key1--; px1=1,py1=1; Sleep(1000); }else{ Slowsay("Sorry, you don't have enough key"); Sleep(1000); } } //fight else if((way=='w'&&px1px2&&py1py2-1&&now1>now2)||(way=='s'&&px1px2&&py1py2+1&&now1>now2)||(way=='a'&&py1py2&&px1px2+1&&now1>now2)||(way=='d'&&py1py2&&px1px2-1&&now1>now2)){ gameover=1; isin++; }else if((way=='w'&&px1px2&&py1py2-1&&now1<=now2)||(way=='s'&&px1px2&&py1py2+1&&now1<=now2)||(way=='a'&&py1py2&&px1px2+1&&now1<=now2)||(way=='d'&&py1py2&&px1px2-1&&now1<=now2)){ Slowsay("you'ren't able to fight with player2, please cin again!"); Sleep(1000); } //move else if(way=='w'&&py1<6){ w1=now1; now1=s1; s1=b1; b1=7-now1; py1++; isin++; }else if(way=='s'&&py1>1){ s1=now1; now1=w1; w1=b1; b1=7-now1; py1--; isin++; }else if(way=='a'&&px1>1){ a1=now1; now1=d1; d1=b1; b1=7-now1; px1--; isin++; }else if(way=='d'&&px1<6){ d1=now1; now1=a1; a1=b1; b1=7-now1; px1++; isin++; }else{ Slowsay("please cin correctly"); Sleep(1000); } writemap(); } if(gameover)return; isin=0; while(isin<=0){ Slowsay("please player2 cin how to move:1,6,0,w,s,a or d"); cin>>way; //key if(way=='1'||way=='6'||way=='0'){ if(way=='1'&&key2>0){ Slowsay("OK, you can move one more time this round"); Sleep(1000); key2--; isin--; }else if(way=='6'&&key2>0){ Slowsay("OK, your number is six"); key2--; now2=6,w2=5,s2=2,a2=3,d2=4,b2=1; Sleep(1000); }else if(way=='0'&&key2>0){ Slowsay("OK, your position is changed"); key2--; px2=6,py2=6; Sleep(1000); }else{ Slowsay("Sorry, you don't have enough key"); Sleep(1000); } } //fight else if((way=='w'&&px1px2&&py1py2+1&&now1<now2)||(way=='s'&&px1px2&&py1py2-1&&now1<now2)||(way=='a'&&py1py2&&px1px2-1&&now1<now2)||(way=='d'&&py1py2&&px1px2+1&&now1<now2)){ gameover=2; isin++; }else if((way=='w'&&px1px2&&py1py2+1&&now1>=now2)||(way=='s'&&px1px2&&py1py2-1&&now1>=now2)||(way=='a'&&py1py2&&px1px2-1&&now1>=now2)||(way=='d'&&py1py2&&px1px2+1&&now1>=now2)){ Slowsay ("you'ren't able to fight with player1, please cin again!"); Sleep(1000); } //move else if(way=='w'&&py2<6){ w2=now2; now2=s2; s2=b2; b2=7-now2; py2++; isin++; }else if(way=='s'&&py2>1){ s2=now2; now2=w2; w2=b2; b2=7-now2; py2--; isin++; }else if(way=='a'&&px2>1){ a2=now2; now2=d2; d2=b2; b2=7-now2; px2--; isin++; }else if(way=='d'&&px2<6){ d2=now2; now2=a2; a2=b2; b2=7-now2; px2++; isin++; }else{ Slowsay("please cin correctly"); Sleep(1000); } writemap(); } if(gameover)return ; } void endgame(int winpn){ system("cls"); Color(3),Slowsay("gameover!"); Color(8),cout<<"player1's score is "; Color(6),cout<<now1<<endl; Sleep(500); Color(8),cout<<"player2's score is "; Color(4),cout<<now2<<endl; Sleep(500); Color(7),cout<<"and player"<<winpn<<" hits player"<<3-winpn<<endl; Sleep(500); Color(5),cout<<"so, player"<<winpn<<" win!"; Color(8); return ; } void startboard(){ Color(2),Slowsay("游戏名:骰子竞技场3.0"); Color(8),Slowsay("相比于2.0美化棋盘,加入0键"); Color(5),Slowsay("制作:2024级0310"); Color(4),Slowsay("不要将代码放入自己的博客"); Color(6),Slowsay("按下任意键游戏规则"); Color(8); char choose='t'; while(choose=='t')choose=_getch(); return ; } void gamerule(){ system("cls"); Color(2),Slowsay("游戏名称:骰子竞技场3.0"); Color(3),Slowsay("基础规则"); Color(7),cout<<"1 "; Color(8),Slowsay("每人初始有一个点数为1的骰子,上下左右的四个数值是骰子的四个面"); Color(7),cout<<"2 "; Color(8),Slowsay("双方玩家轮流移动1格或者在你的骰子点数比对方大的时候攻击对方获得胜利"); Color(3),Slowsay("道具规则"); Color(8),Slowsay("每人有3次使用道具的机会,但是每回合可以重复使用"); Color(7),cout<<"1 键 "; Color(8),Slowsay("本回合多行动1次"); Color(7),cout<<"6 键 "; Color(8),Slowsay("你的点数变成6"); Color(7),cout<<"0 键 "; Color(8),Slowsay("回到出生点"); Color(6),Slowsay("最后,本游戏需要双人游玩"); Color(8),Slowsay("按下任意键开始"); char t='t'; while(t=='t')t=_getch(); return ; } int main(){ startboard(); gamerule(); while(gameover==0){ writemap(); movement(); } endgame(gameover); return 0; }