您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么用C語(yǔ)言實(shí)現(xiàn)飛行棋游戲”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么用C語(yǔ)言實(shí)現(xiàn)飛行棋游戲”吧!
/* 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☆幸運(yùn)輪盤(pán) 2◎地雷 3△暫停 4卍時(shí)空隧道 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 = "☆"; // 幸運(yùn)輪盤(pán) break; case 2: res = "◎"; // 地雷 break; case 3: res = "△"; // 暫停 break; case 4: res = "卍"; // 時(shí)空隧道 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<<"地圖說(shuō)明:【☆幸運(yùn)輪盤(pán) 卍時(shí)空隧道 ◎地雷 △暫停 <>玩家同處一個(gè)位置】"<<endl; } void gameOver(){ //游戲結(jié)束 isGameOver = true; winer = gamePlayer; playerPos[gamePlayer]=99; system("cls"); drowMap(); cout<<"***游戲結(jié)束!恭喜["<<player[gamePlayer]<<"]取得勝利!"<<endl; system("PAUSE"); } void initMap(){ //初始化地圖 int luckyTurn[] = {6,23,40,55,69,83};//幸運(yùn)輪盤(pán)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};//時(shí)空隧道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<<"****************@詩(shī)意的叛逆***************"<<endl; } void joinPlayer(){ //加入玩家 string tmpStr = ""; cout<<"請(qǐng)輸入玩家A的名字___" <<endl; cin>>tmpStr; while(tmpStr==""){ cout<<"玩家名字不能為空請(qǐng)重新輸入___" <<endl; cin>>tmpStr; } player[0] = "A" + tmpStr; cout<<"請(qǐng)輸入玩家B的名字___" <<endl; cin>>tmpStr; while(tmpStr==""){ cout<<"玩家名字不能為空請(qǐng)重新輸入___" <<endl; cin>>tmpStr; } while(tmpStr == player[0]){ cout<<"玩家名字不能重復(fù),請(qǐng)重新輸入___" <<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<<"***請(qǐng)["<<player[gamePlayer]<<"]輸入g投擲骰子..."<<endl; cin>>a; if(a=='g'){ system("cls"); number = random(6)+1; cout<<"***玩家["<<player[gamePlayer]<<"]投擲的骰子數(shù)為:"<<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]<<"]獲得幸運(yùn)轉(zhuǎn)一轉(zhuǎn)的機(jī)會(huì)..."<<endl; cout<<"***請(qǐng)輸入數(shù)字選擇要進(jìn)行的操作...."<<endl; cout<<"1--與對(duì)方交換位置"<<endl<<"2--轟炸對(duì)方"<<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<<"輸入非規(guī)定數(shù)字!機(jī)會(huì)丟失。"<<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]<<"]穿越時(shí)空隧道..."<<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<<"***開(kāi)始初始化玩家設(shè)置..."<<endl; joinPlayer(); initMap(); drowMap(); cout<<"***本場(chǎng)游戲開(kāi)始:["<<player[0]<<"] VS ["<<player[1]<<"]"<<endl; gamePlayer = random(2); yaoYiYao(); return 0; }
感謝各位的閱讀,以上就是“怎么用C語(yǔ)言實(shí)現(xiàn)飛行棋游戲”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么用C語(yǔ)言實(shí)現(xiàn)飛行棋游戲這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。