您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么用C語言實現飛行棋游戲”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用C語言實現飛行棋游戲”吧!
/* Author Mr.Long * Date 2015年12月2日17:33:17 */#include<iostream>#include<string>#include<windows.h>#include<stdlib.h>#include<time.h>#define random(x) (rand()%x) using namespace std; string player[2]={"玩家A","玩家B"};int map[100];int playerPos[2]={0,0};int gamePlayer = 0;bool isGameOver = false;int winer = -1;int pausePlayer = -1; //0□正常 1☆幸運輪盤 2◎地雷 3△暫停 4卍時空隧道 string getLogo(int pos){ string res = "□"; if((playerPos[0] == pos) && (playerPos[1] == pos)){ res = "<>"; }else if(playerPos[0]==pos){ res = "A"; }else if(playerPos[1]==pos){ res = "B"; }else{ switch(map[pos]){ case 1: res = "☆"; // 幸運輪盤 break; case 2: res = "◎"; // 地雷 break; case 3: res = "△"; // 暫停 break; case 4: res = "卍"; // 時空隧道 break; } } return res; } void drowMap(){ //繪制地圖 for(int i = 0;i<=29;++i){ cout<<getLogo(i); } cout<<endl; for(int i = 30;i<=34;++i){ for(int j = 0;j<=28;j++){ cout<<" "; } cout<<getLogo(i)<<endl;; } for(int i =64;i>=35;i--){ cout<<getLogo(i); } cout<<endl; for(int i = 65;i<=69;++i){ cout<<getLogo(i)<<endl; } for(int i = 70;i<=99;i++){ cout<<getLogo(i); } cout<<endl; cout<<"地圖說明:【☆幸運輪盤 卍時空隧道 ◎地雷 △暫停 <>玩家同處一個位置】"<<endl; } void gameOver(){ //游戲結束 isGameOver = true; winer = gamePlayer; playerPos[gamePlayer]=99; system("cls"); drowMap(); cout<<"***游戲結束!恭喜["<<player[gamePlayer]<<"]取得勝利!"<<endl; system("PAUSE"); } void initMap(){ //初始化地圖 int luckyTurn[] = {6,23,40,55,69,83};//幸運輪盤1 int landMine[] = {5,13,17,33,38,50,64,80,94};//地雷2 int pause[] = {9,27,60,93};//暫停3 int timeTunnel[] = {20,25,45,63,72,88,90};//時空隧道4 int i; for(i =0;i<6;++i){ int pos = luckyTurn[i]; map[pos] = 1; } for(i =0;i<9;++i){ int pos = landMine[i]; map[pos] = 2; } for(i =0;i<4;++i){ int pos = pause[i]; map[pos] = 3; } for(i =0;i<7;++i){ int pos = timeTunnel[i]; map[pos] = 4; } } void initUI(){ //初始化界面 cout<<"*******************小游戲*****************"<<endl; cout<<"* *"<<endl; cout<<"* 騎士飛行棋 *"<<endl; cout<<"* *"<<endl; cout<<"****************@詩意的叛逆***************"<<endl; } void joinPlayer(){ //加入玩家 string tmpStr = ""; cout<<"請輸入玩家A的名字___" <<endl; cin>>tmpStr; while(tmpStr==""){ cout<<"玩家名字不能為空請重新輸入___" <<endl; cin>>tmpStr; } player[0] = "A" + tmpStr; cout<<"請輸入玩家B的名字___" <<endl; cin>>tmpStr; while(tmpStr==""){ cout<<"玩家名字不能為空請重新輸入___" <<endl; cin>>tmpStr; } while(tmpStr == player[0]){ cout<<"玩家名字不能重復,請重新輸入___" <<endl; cin>>tmpStr; } player[1] = "B" + tmpStr; system("cls"); cout<<"***玩家加入成功..."<<endl; cout<<"***地圖中[A]表示玩家["<<player[0]<<"]的位置..."<<endl; cout<<"***地圖中[B]表示玩家["<<player[1]<<"]的位置..."<<endl; } void yaoYiYao(){ //投擲骰子 short number = 0; while(!isGameOver){ char a; cout<<"***請["<<player[gamePlayer]<<"]輸入g投擲骰子..."<<endl; cin>>a; if(a=='g'){ system("cls"); number = random(6)+1; cout<<"***玩家["<<player[gamePlayer]<<"]投擲的骰子數為:"<<number<<endl; playerPos[gamePlayer] += number; int pos = playerPos[gamePlayer]; if(pos >=99){ gameOver(); }else{ switch(map[pos]){ case 0: if(pausePlayer = -1){ gamePlayer = !gamePlayer; }else if(pausePlayer = 0){ pausePlayer++; }else if(pausePlayer = 1){ pausePlayer = -1; } break; case 1: int cnumber; cout<<"***哇哦!玩家["<<player[gamePlayer]<<"]獲得幸運轉一轉的機會..."<<endl; cout<<"***請輸入數字選擇要進行的操作...."<<endl; cout<<"1--與對方交換位置"<<endl<<"2--轟炸對方"<<endl; cin>>cnumber; if(cnumber == 1){ int t = 0; t = playerPos[gamePlayer]; playerPos[gamePlayer] = playerPos[!gamePlayer]; playerPos[!gamePlayer] = t; }else if(cnumber == 2){ playerPos[!gamePlayer] -=6 ; }else{ cout<<"輸入非規定數字!機會丟失。"<<endl; } gamePlayer = !gamePlayer; break; case 2: cout<<"***啊哦!玩家["<<player[gamePlayer]<<"]踩到地雷啦,后退6步..."<<endl; playerPos[gamePlayer] -= 6; gamePlayer = !gamePlayer; break; case 3: cout<<"***悲劇呀!玩家["<<player[gamePlayer]<<"]暫停投擲一次..."<<endl; pausePlayer = 0; gamePlayer = !gamePlayer; break; case 4: cout<<"***真棒!玩家["<<player[gamePlayer]<<"]穿越時空隧道..."<<endl; playerPos[gamePlayer] += 10; if(playerPos[gamePlayer]>=99){ gameOver(); } gamePlayer = !gamePlayer; break; } } }else if(a == 'a'){ winer = 0; gameOver(); }else if(a == 'b'){ winer = 1; gameOver(); } for(int i=0;i<=1;i++){ if(playerPos[i]<0) playerPos[i] = 0; } if(!isGameOver){ drowMap(); } } } int main(){ srand((unsigned)time(NULL)); initUI(); cout<<"***開始初始化玩家設置..."<<endl; joinPlayer(); initMap(); drowMap(); cout<<"***本場游戲開始:["<<player[0]<<"] VS ["<<player[1]<<"]"<<endl; gamePlayer = random(2); yaoYiYao(); return 0; }
感謝各位的閱讀,以上就是“怎么用C語言實現飛行棋游戲”的內容了,經過本文的學習后,相信大家對怎么用C語言實現飛行棋游戲這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。