怎么用C语言实现飞行棋游戏

发布时间:2021-08-11 14:53:24 作者:chen
来源:亿速云 阅读:381

这篇文章主要讲解了“怎么用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语言实现飞行棋游戏这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. python怎么实现飞行棋游戏
  2. 使用C#怎么实现一个飞行棋游戏

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:C语言怎么实现单词助手程序

下一篇:怎么用C语言实现火车售票系统

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》