前言

上次我写出了棋类型的定义与赋值,今天我们来写地图与马

地图

定义

struct MAP{int i;bool dui;bool color;
}mp[9][9];
int i;

现在格上是哪个棋(编号)

bool dui;

哪个队的

bool color;

当前格子的颜色

黑格与白格

国际象棋里的格子(8❌8)分黑与白,交替互换

下面实现颜色赋值

bool _color=0;for(int i=1;i<=8;i++){for(int j=1;j<=8;j++){mp[i][j].color=_color;_color=!_color;}_color=!_color;}

这里我们定义了个_color记录当前颜色为,
颜色是交替的,所以每次都要转一次
但每行的末尾与下一行的开头颜色一样,所以再换回来

棋子的摆放

没啥可说的,直接赋值(国际象棋的摆放规则)

short _mp[9][9]={{-1,-1,-1,-1,-1,-1,-1,-1},{-1,1,3,2,4,5,2,3,1},{-1,0,0,0,0,0,0,0,0},{-1,-1,-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1,-1,-1},{-1,0,0,0,0,0,0,0,0},{-1,1,3,2,4,5,2,3,1}};for(int i=1;i<=8;i++){for(int j=1;j<=8;j++){mp[i][j].i=_mp[i][j];}}

(-1代表没子或出界(i为0或j为0))

直接判定

for(int i=1;i<=8;i++){            //队初始化 for(int j=1;j<=8;j++){if(i==1||i==2) mp[i][j].dui=1;else if(i==7||i==8) mp[i][j].dui=0;else mp[i][j].dui=-1;}}

(-1代表没子)

上一期我们把马都设为了待定,今天我们来搞定马的路线

这是马能走的所有路线

short ma_zoux[8]={1,1,-1,-1,2,2,-2,-2},ma_zouy[8]={2,-2,2,-2,1,-1,1,-1};

代码

这是目前为止的代码

#include<string>
using namespace std;
struct MAP{int i;short dui;bool color;
}mp[9][9];
struct Qi{string name;char id;short a[8];
}qi[6];
short ma_zoux[8]={1,1,-1,-1,2,2,-2,-2},ma_zouy[8]={2,-2,2,-2,1,-1,1,-1};
void qi_fuzhi(int ii,string _name,char iid,short a1,short a2,short a3,short a4,short a5,short a6 ,short a7,short a8){qi[ii].name=_name;qi[ii].id=iid;qi[ii].a[0]=a1;qi[ii].a[1]=a2;qi[ii].a[2]=a3;qi[ii].a[3]=a3;qi[ii].a[4]=a4;qi[ii].a[5]=a5;qi[ii].a[6]=a7;qi[ii].a[7]=a8;
}
void csh(){qi_fuzhi(0,"兵",' ',1,0,0,0,-1,-1,0,0);        //棋子初始化 qi_fuzhi(1,"车",'R',2,2,2,2,0,0,0,0);qi_fuzhi(2,"象",'B',0,0,0,0,2,2,2,2);qi_fuzhi(3,"马",'N',-2,-2,-2,-2,-2,-2,-2,-2);qi_fuzhi(4,"后",'Q',2,2,2,2,2,2,2,2);qi_fuzhi(5,"王",'K',1,1,1,1,1,1,1,1);bool _color=0;for(int i=1;i<=8;i++){        //棋盘颜色初始化 for(int j=1;j<=8;j++){mp[i][j].color=_color;_color=!_color;}_color=!_color;}short _mp[9][9]={{-1,-1,-1,-1,-1,-1,-1,-1},        //棋盘棋子初始化 {-1,1,3,2,4,5,2,3,1},{-1,0,0,0,0,0,0,0,0},{-1,-1,-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1,-1,-1},{-1,0,0,0,0,0,0,0,0},{-1,1,3,2,4,5,2,3,1}};for(int i=1;i<=8;i++){for(int j=1;j<=8;j++){mp[i][j].i=_mp[i][j];}}for(int i=1;i<=8;i++){            //队初始化 for(int j=1;j<=8;j++){if(i==1||i==2) mp[i][j].dui=1;else if(i==7||i==8) mp[i][j].dui=0;else mp[i][j].dui=-1;}}
}
int main(){csh();return 0;
}

C++制作汉字版国际象棋(2)相关推荐

  1. C++制作汉字版国际象棋第一篇

    前言 今天我新开了一个专栏,在这里我将会一步步带大家写出一个国际象棋小游戏 定义 那么今天我就先带大家写一下定义各种棋的代码,这里我们需要用到struct 上代码: #include<strin ...

  2. C++制作汉字版国际象棋(3)

    前言 今天我们会写所有的输出操作. 输出 color函数 void color(int a) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HAND ...

  3. 汉字版九九乘法表c语言,WPS表格怎么制作九九乘法表和汉字版九九乘法表?

    小编在这给大家讲讲WPS表格制作九九乘法表和汉字版九九乘法表 详细教程: 一.九九乘法表的3种制作方法 1. 单元格引用方法(混合引用单元格) =IF($A2 复制代码 2. 借助行列函数方法(行:r ...

  4. .net 数字转汉字_[原创工具] 小熊汉字笔顺学习软件,查笔顺、学拼音、制作汉字英文数字字贴...

    点击右上角"设为星标"每日精彩内容,第一时间送达! 前言 今天带来的是原创软件.家里有上一二年级的小朋友有福了!家里有打印机的可以把设置好的字帖打印出来,小朋友即可临摹.赶紧下载使 ...

  5. dockerfile安装yum_Docker镜像-基于DockerFile制作yum版nginx镜像

    Docker镜像-基于DockerFile制作yum版nginx镜像 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. DockerFile可以说是一种能被Docker程序解释的脚本, ...

  6. 制作网页版电子时钟特效

    可以加我QQ1975728171代做 一.语言和环境 A.实现语言 JavaScript B.环境要求 Dreamweaver.WebStorm.Sublime任选其一 二.功能要求 利用JavaSc ...

  7. stable diffusion制作韩国版AI女友关键词

    问题 怎么样使用stable diffusion简单制作韩国版AI女友?这里假设已经安装好stable diffusion webui版.这里主要记录一下韩国版AI女友sd配置参数 Stable Di ...

  8. 纯CSS制作加div制作动画版哆啦A梦

    纯CSS代码加上<div>制作动画版哆啦A梦(机器猫) 哆啦A梦(机器猫)我们大家一定都很熟悉,今天给大家演示怎么用纯CSS代码,来做一个动画版的哆啦A梦. 效果图: ###下面代码同学可 ...

  9. 简单的《找不同汉字版》,来考考你的眼力吧

    概述 简单的<找不同汉字版>,来考考你的眼力吧 详细 代码下载:http://www.demodashi.com/demo/10494.html 一.准备工作 本次游戏开发需要用到lufy ...

最新文章

  1. 制定OKR的两种方式,你知道吗?
  2. Azure Redis Cache (3) 创建和使用P级别的Redis Cache
  3. 你只管打开清华小姐姐总结的Python学习知识手册 ,剩下的交给「卧槽」
  4. Windows系统中安装Python模块pip numpy matplotlib
  5. switch 条件判断_C语言学习第7篇---C语言三大结构之一判断结构
  6. k64 datasheet学习笔记25--Multipurpose Clock Generator (MCG)
  7. Neo4j fails creating index,创建索引失败
  8. python期末复习卷_【期末复习卷A】六年级科学上册期末复习试题
  9. python循环结构高一信息技术会考_高一信息技术会考样题及参考答案
  10. 学计算机的思维导图,电脑上最好用的6款,思维导图软件测评
  11. 【密码学原理】密钥管理和分发——对称密钥分发
  12. 马克思对“货币之谜”的 历史唯物主义解答
  13. lbs mysql_使用mysql来实现lbs排序
  14. Android 9.0 简单适配
  15. CMYK模式(cmyk模式导出的图片颜色变了)
  16. 第壹近场让天下没有难做的生意
  17. 还在为动态太大不能用发愁么?只需3步学会高效压缩GIF动图
  18. maven model inspection
  19. “2019世界计算机大会”新闻发布会在京召开
  20. 【windows service】C# 创建Windows Service(Windows服务)程序

热门文章

  1. 如何改变对话框的背景颜色
  2. python使用 xlwt,xlrd,xlutils库操作Excel教程
  3. 如何绘制泳道图?3步就能快速上手!
  4. 孔雀翎---- Programming C 中文版 第4版
  5. linux怎么找回误删的文件,Linux恢复误删除的文件或者目录
  6. SNIP-An Analysis of Scale Invariance in Object Detection
  7. JavaScript 计算相隔日期之间的天数、小时数、分钟数、秒数
  8. 奇安信 渗透测试(攻防类)一面复盘
  9. 使用tun虚拟网络接口建立IP隧道的实例
  10. Andorid6.0 动态权限管理