/* 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语言编写小游戏——骑士飞行棋相关推荐

  1. 开发一款C语言小游戏——骑士飞行棋

    需求分析 游戏规则和传统的飞行棋一样,支持两人对战 采用100格小型游戏棋盘 游戏规则:对战双方轮流掷骰子控制自己的骑兵前进或后退,在游戏棋盘上设置有关卡 普通 地雷 暂停 时空隧道 幸运轮盘(提供两 ...

  2. 用c语言编写的打字母游戏,用C语言编写小游戏——“井字棋”

    原标题:用C语言编写小游戏--"井字棋" 作者:Milo Yip 来源:知乎 原文链接:https://zhuanlan.zhihu.com/p/39581573 在 Milo Y ...

  3. 【C++FunCode】基于Funcode使用C++语言编写小游戏(小鲨鱼历险记)

    一.前言 大一暑假参加了山东省软件设计大赛,基于FunCode平台使用C++语言编写了大鱼吃小鱼游戏,其美名曰小鲨鱼历险记,哈哈.比赛成绩惨烈,只拿了一个省三,赛后也进行了分析总结,主要还是太不重视比 ...

  4. Java语言编写小游戏

    贪吃蛇游戏 https://download.csdn.net/download/qq_43909539/10841380 躲避球小游戏 https://download.csdn.net/downl ...

  5. c++语言编的小游戏,用C++语言编写小游戏系统(可读取文件)

    #include #include #include #include #include #include #include #include #include using namespace std ...

  6. 如何用java语言编写小游戏?(贪吃蛇)

    自己做了个贪吃蛇,效果图如下" 素材和图片是网上找的,在做这游戏的过程中其实最麻烦的是像素的调整,需要一点点去试....所以大家做的时候像素方面自己试就行了,根据自己的实际情况判断. 先说一 ...

  7. 作用python需要语言编写小游戏_作的解释|作的意思|汉典“作”字的基本解释

    详细字义 ◎ 作 zuō 〈名〉 (1) 作坊,手工业工场 [workshop] 明帝方修宫室而节气不合,-而 礼径至所作,不复重奏,称诏罢民.--<三国志·魏志> 又如:作房(作坊);作 ...

  8. 利用python语言编写小游戏斗地主

    import random card =[] for i in range(3,16):if i == 11:i ='J'elif i == 12:i = 'Q'elif i == 13:i = 'k ...

  9. 黑马程序员----小游戏代码之“骑士飞行棋”

    ----------------------  ASP.Net+Android+IO开发S .  .Net培训.期待与您交流! ---------------------- 骑士飞行棋代码如下: cl ...

最新文章

  1. 程序化广告(4):考核指标
  2. 计算机专业申请,申请计算机专业
  3. jooq 分页排序_将jOOQ与Spring结合使用:排序和分页
  4. winpythonhadoop_让python在hadoop上跑起来
  5. 删除VisaulStudio2010产生的垃圾
  6. 通过案例学调优之--和 LOG BUFFER 相关的主要 Latch
  7. Truthman or Fakeman 并查集
  8. 计算机考试桌贴,考试考场桌贴打印
  9. 华为18级工程师三年心血终成趣谈网络协议文档(附详细讲解)
  10. C语言怎么实现熊猫上香中的系统错误提示,熊猫烧香的病毒是用什么程序语言编写的 原理是什么...
  11. 移动边缘计算(Mobile Edge Computing)MEC5G
  12. 2022版首发,阿里Java开发手册(黄山版).PDF
  13. CAD增强属性块的还原
  14. 主板检测卡c5_主板检测卡代码(常见)及解决方法
  15. 小智双核浏览器下载安装配置教程
  16. PS钢笔--制图抠图
  17. 高级算法日记9:图(2)
  18. 排球分组循环交叉编排_全国气排球邀请赛在我市举行
  19. 关于checksum校验和算法
  20. 机械键盘恢复出厂fn_怎么切换fn恢复f1 - 卡饭网

热门文章

  1. 软件产品需求管理工具哪个好?国内知名产品管理工具使用体验分享
  2. CSDN学霸课表——信息系统项目管理师(软考高级)
  3. Exoplayer的缓存 一 使用简介
  4. 一个无法识别数据的U盘数据恢复!!
  5. SLAM ++ 快速的非线性优化(批处理和增量模式)
  6. OpenPose参数选项
  7. 美团面试,问了ThreadLocal原理,这个回答让我通过了
  8. autocad2015增加字体炸开命令
  9. java utf8 文件转gbk_java txt文件utf-8转GBK的问题
  10. HDU4081:Qin Shi Huang's National Road System (任意两点间的最小瓶颈路)