/* 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. android 默认中文时区,修改android默认系统语言为中文和时区
  2. leetcode算法题--Minimum Number of Arrows to Burst Balloons
  3. “外部质量”还是“内部质量”
  4. 简单的php探针,php探针程序的推荐
  5. 字符串里面的单词反转
  6. 从零开始学ios开发(三):第一个有交互的app
  7. mock.js那点事(上)
  8. linux安装audit软件,linux audit工具
  9. java 子类 继承父类的注解,spring使用注解通过子类注入父类的私有变量
  10. JDK8与JDK11
  11. 景区门票怎么在线上渠道分销?
  12. python画三色柱状图_python画手绘图
  13. 如何在一周内摸清一个行业?
  14. 未检测到与wia兼容的设备_为不支持 WIA 的设备配置基于 intranet 窗体的身份验证...
  15. UVALive - 7456 Least Crucial Node ( dfs + set )
  16. 微信开发总结1——关于微信企业号API,Auth验证
  17. UE4碰撞射线检测2
  18. Android项目用到的or比较好的资料
  19. 2018-2019-2 20165315《网络对抗技术》Exp7 网络欺诈防范
  20. 【20220501】众人眼中的架构师

热门文章

  1. 基于SSM+Redis+RocketMQ实现的校园快递配送代拿管理系统
  2. java qname 调用soap_java 调用webservice的各种方法总结
  3. 微信登录获取 openid 失败原因
  4. 迟来的 2020 年度总结
  5. CST仿真同轴馈电的微带天线
  6. 人工智能大神何凯明往事与风华岁月
  7. 打开Eclipse报错:发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。 解决方案
  8. http、https、Socks代理知识汇总
  9. 复旦大学研究生机试题目解析(2016-2018)
  10. 使用QRCode.js生成的二维码,隐藏title