C++制作汉字版国际象棋(3)
前言
今天我们会写所有的输出操作.
输出
color函数
void color(int a)
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);//颜色=背景色*16+字体色
/* 1 深蓝色 2 深绿色 3 深青色 4 深红色5 深粉色 6 黄色 7 深白色 8 灰色9 浅蓝色 10 浅绿色 11 浅青色 12 浅红色13 浅粉色 14 浅黄色 15 浅白色*/
}
棋盘有些复杂
附:_qp_color_(坐标x,坐标y,背景色/棋子色)
void _qp_color_(int i,int j,bool b){color(b?15:240);if(b==1 || mp[i][j].dui==-1){if(mp[i][j].color==1) color(2*16); //深绿else color(10*16); //浅绿}else{if(mp[i][j].dui==0) color(15*16); //白else color(15); //黑}
}
我们首先需要循环每行棋子
for(int j=1;j<=8;j++){}
棋子第一行:就是棋盘的颜色
for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";}
棋子第二行:先棋盘的颜色,再棋子的颜色,最后棋盘的颜色
for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";_qp_color_(j,i,0);cout<<" ";_qp_color_(j,i,1);cout<<" ";}cout<<endl;
棋子第三行(自己看):
for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";_qp_color_(j,i,0);cout<<" ";if(mp[j][i].i!=-1){ //是否有棋子cout<<qi[mp[j][i].i].name;}else{cout<<" ";}cout<<" ";_qp_color_(j,i,1);cout<<" ";}cout<<endl;
棋子第四行:同第二行
棋子第五行:同第一行
完整代码
void map_out(){for(int j=1;j<=8;j++){for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";}cout<<endl;for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";_qp_color_(j,i,0);cout<<" ";_qp_color_(j,i,1);cout<<" ";}cout<<endl;for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";_qp_color_(j,i,0);cout<<" ";if(mp[j][i].i!=-1){cout<<qi[mp[j][i].i].name;}else{cout<<" ";}cout<<" ";_qp_color_(j,i,1);cout<<" ";}cout<<endl;for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";_qp_color_(j,i,0);cout<<" ";_qp_color_(j,i,1);cout<<" ";}cout<<endl;for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";}cout<<endl;}
}
效果(绿色):
那么我们今天就写到这里,再见!
完整代码
#include<string>
#include<windows.h>
#include<iostream>
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,-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;}}
}void color(int a)
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);//颜色=背景色*16+字体色
/* 1 深蓝色 2 深绿色 3 深青色 4 深红色5 深粉色 6 黄色 7 深白色 8 灰色9 浅蓝色 10 浅绿色 11 浅青色 12 浅红色13 浅粉色 14 浅黄色 15 浅白色*/
}
void _qp_color_(int i,int j,bool b){color(b?15:240);if(b==1 || mp[i][j].dui==-1){if(mp[i][j].color==1) color(2*16); //深绿else color(10*16); //浅绿}else{if(mp[i][j].dui==0) color(15*16); //白else color(15); //黑}
}
void map_out(){for(int j=1;j<=8;j++){for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";}cout<<endl;for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";_qp_color_(j,i,0);cout<<" ";_qp_color_(j,i,1);cout<<" ";}cout<<endl;for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";_qp_color_(j,i,0);cout<<" ";if(mp[j][i].i!=-1){cout<<qi[mp[j][i].i].name;}else{cout<<" ";}cout<<" ";_qp_color_(j,i,1);cout<<" ";}cout<<endl;for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";_qp_color_(j,i,0);cout<<" ";_qp_color_(j,i,1);cout<<" ";}cout<<endl;for(int i=1;i<=8;i++){_qp_color_(j,i,1);cout<<" ";}cout<<endl;}
}
int main(){csh();map_out();return 0;
}
C++制作汉字版国际象棋(3)相关推荐
- C++制作汉字版国际象棋第一篇
前言 今天我新开了一个专栏,在这里我将会一步步带大家写出一个国际象棋小游戏 定义 那么今天我就先带大家写一下定义各种棋的代码,这里我们需要用到struct 上代码: #include<strin ...
- C++制作汉字版国际象棋(2)
前言 上次我写出了棋类型的定义与赋值,今天我们来写地图与马 地图 定义 struct MAP{int i;bool dui;bool color; }mp[9][9]; int i; 现在格上是哪个棋 ...
- 汉字版九九乘法表c语言,WPS表格怎么制作九九乘法表和汉字版九九乘法表?
小编在这给大家讲讲WPS表格制作九九乘法表和汉字版九九乘法表 详细教程: 一.九九乘法表的3种制作方法 1. 单元格引用方法(混合引用单元格) =IF($A2 复制代码 2. 借助行列函数方法(行:r ...
- .net 数字转汉字_[原创工具] 小熊汉字笔顺学习软件,查笔顺、学拼音、制作汉字英文数字字贴...
点击右上角"设为星标"每日精彩内容,第一时间送达! 前言 今天带来的是原创软件.家里有上一二年级的小朋友有福了!家里有打印机的可以把设置好的字帖打印出来,小朋友即可临摹.赶紧下载使 ...
- dockerfile安装yum_Docker镜像-基于DockerFile制作yum版nginx镜像
Docker镜像-基于DockerFile制作yum版nginx镜像 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. DockerFile可以说是一种能被Docker程序解释的脚本, ...
- 制作网页版电子时钟特效
可以加我QQ1975728171代做 一.语言和环境 A.实现语言 JavaScript B.环境要求 Dreamweaver.WebStorm.Sublime任选其一 二.功能要求 利用JavaSc ...
- stable diffusion制作韩国版AI女友关键词
问题 怎么样使用stable diffusion简单制作韩国版AI女友?这里假设已经安装好stable diffusion webui版.这里主要记录一下韩国版AI女友sd配置参数 Stable Di ...
- 纯CSS制作加div制作动画版哆啦A梦
纯CSS代码加上<div>制作动画版哆啦A梦(机器猫) 哆啦A梦(机器猫)我们大家一定都很熟悉,今天给大家演示怎么用纯CSS代码,来做一个动画版的哆啦A梦. 效果图: ###下面代码同学可 ...
- 简单的《找不同汉字版》,来考考你的眼力吧
概述 简单的<找不同汉字版>,来考考你的眼力吧 详细 代码下载:http://www.demodashi.com/demo/10494.html 一.准备工作 本次游戏开发需要用到lufy ...
最新文章
- R包corrplot绘图相关系数矩阵
- iOS开发之UIWebView
- pytorch默认初始化_小白学PyTorch | 9 tensor数据结构与存储结构
- python【数据结构与算法】判断对称二叉树
- m3u8文件在手机上用什么软件看_新技能Get!教你制作m3u8文件 创建属于自己的直播视频列表...
- C语言 | 变量的存储方式
- LeetCode 406. Queue Reconstruction by Height
- 基础数据结构和算法概念
- 疯狂ios之cocos2d中的文本
- MySQL的MyISAM和InnoDB对比及优化(转)
- C程序设计语言(第2版)简单读书笔记
- 云端深度学习框架TensorFlow读取数据IO的高效方式
- MyBatis的插件
- 软件著作权在开发完成时就自动享有了还有必要申请软件著作权登记么?
- 拆机芯片DIY一个STM32F401CCU6核心板
- layer 在标题中加点击监听事件
- centos8安装smplayer
- 850万BTC,2万人参与,区块链时代看OKEx如何创新
- Directions Reduction-方向减少
- Vue(踩坑)vue.esm.js?efeb:628 [Vue warn]: Error in render: TypeError: Cannot read property '0' of unde
热门文章
- jQuery子元素选择器
- python学习 之 下载BliBli视频
- 最新!阿里云盘PC端抢先体验!
- [享学Eureka] 二十一、LookupService服务发现之客户端实现:EurekaClient接口
- 蓝桥杯单片机第六届省赛题详细讲解(温度记录器)
- 设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点。
- likely、unlikely
- 计算机突然断电不丢失已保存的数据是,(电脑上的Excel表格没保存,突然断电了。请问要怎么才能找回)表格数据不见了怎么办...
- WARN [Producer clientId=console-producer] Connection to node -1 could not be established.
- js运算符之逗号运算符