溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么用C語(yǔ)言實(shí)現(xiàn)飛行棋游戲

發(fā)布時(shí)間:2021-08-11 14:53:24 來(lái)源:億速云 閱讀:374 作者:chen 欄目:編程語(yǔ)言

這篇文章主要講解了“怎么用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)注!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI