当前位置: 首页 > news >正文

网站建设实训分析总结织梦网站变成手机站

网站建设实训分析总结,织梦网站变成手机站,手机设计装修图的app,网站建设经验大总结从控制台版本开始 考虑到象棋程序,其实就是数据结构与算法实现。 所以和界面相关的QT部分我们先放一放。 我们从控制台版本开始。这样大家更容易接受,也不影响开发。 后面我们会把控制台嫁接到QT上完成完整的游戏,那时候自然就水到渠成了…

从控制台版本开始

考虑到象棋程序,其实就是数据结构与算法实现。

所以和界面相关的QT部分我们先放一放。

我们从控制台版本开始。这样大家更容易接受,也不影响开发。

后面我们会把控制台嫁接到QT上完成完整的游戏,那时候自然就水到渠成了。

显示棋盘

中国象棋的棋盘是一个宽9列,长 5+5 = 10 行的一个长方形二维方格棋盘。

在控制台上显示一个棋盘是很容易的。

使用双重循环就可以打印出来了。

#include <iostream>
using namespace std;int main(void)
{for (int row = 0; row < 10; row++){for (int col = 0; col < 9; col++){cout << " _ ";//表示棋盘上的一个位置}cout << endl;}return 0;
}

程序输出如下:

 

棋盘显示棋子 

我们希望将棋子显示在棋盘上。

和贪吃蛇一样,我们需要在内存内存中创建一个棋盘,棋盘上不同的内容代表不同的棋子。

就用整数表示棋子就行。

我们希望像下面这样存储棋盘

    vector<vector<int>> chess_board{{ 1, 2, 3, 4, 5, 6, 7, 8, 9},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{ 0,10, 0, 0, 0, 0, 0,11, 0},{12, 0,13, 0,14, 0,15, 0,16},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{17,18,19,20,21,22,23,24,25},};

棋盘上不同的整数表示不同的棋子在对应的位置。

上面是开局时的棋盘数组的样子。

棋子的表示

我们虽然在棋盘上用数字表示了棋子(棋子ID),但是显示给用户的时候,总不能让用户看数字下棋。

所以,我们打算用汉字显示棋子。

这样以来,和贪吃蛇类似,我们也需要一个棋子容器。这个容器接受棋子的ID作为索引,查询棋子的名字,用来显示在棋盘上。

这个容器我们就用数组vector表示,棋子的数组的下标对应棋子的ID,数组的内容对应棋子的名字。

vector<string> chess_man;

完整代码如下:

#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
using namespace std;struct chess_object
{string name;//棋子要显示的名字
};int main(void)
{//棋盘数组,不同的数字表示不同的棋子,0表示没有棋子vector<vector<int>> chess_board{{ 1, 2, 3, 4, 5, 6, 7, 8, 9},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{ 0,10, 0, 0, 0, 0, 0,11, 0},{12, 0,13, 0,14, 0,15, 0,16},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{26, 0,27, 0,28, 0,29, 0,30},{ 0,31, 0, 0, 0, 0, 0,32, 0},{ 0, 0, 0, 0, 0, 0, 0, 0, 0},{17,18,19,20,21,22,23,24,25},};vector<string> chess_man{ "",//下标为0不用,编号从1开始//上方黑方棋子"车","马", "相", "士", "将", "士", "相", "马", "车","炮","炮","兵", "兵", "兵", "兵", "兵",//下方红方棋子"車", "馬", "象", "仕", "帥", "仕", "象", "馬", "車","卒", "卒", "卒", "卒", "卒","砲", "砲",};for (int row = 0; row < 10; row++){for (int col = 0; col < 9; col++){auto id = chess_board[row][col];if (id != 0){cout <<setw(5)<< chess_man[id] ;//输出一个棋子}else{cout<<setw(5) << "_";//表示棋盘上的一个位置}}cout << endl;cout << endl;}return 0;
}

输出如下:

http://www.yayakq.cn/news/485514/

相关文章:

  • 淘宝优惠券返利网站怎么做上海发布
  • 网站源码下载后怎么用网站建设怎么让网站收录
  • 邢台专业做网站的地方wordpress用户系统
  • 怎么用dw做静态网站修改wordpress的语言
  • seo网站建设步骤python基础教程免费
  • 免费网站建设联系电话建设银行网站 购买外汇
  • 做文学网站编辑的前景电子商务网站建设需要的语言及特点6
  • 外包网站济南做网站公司电话
  • 哪个网站做娱乐建设银行怎么加入信用网站
  • 珠海网站建设运营公司中国移动璧山网站建设
  • 网站搭建步骤广告创意设计竞赛
  • 个人网站如何在百度上做推广wordpress 后台底部修改
  • 网站界面大小网站做好怎么推广
  • 北京的电商平台网站有哪些黄岛开发区做网站的公司
  • 紫色 网站做网站年薪百万
  • 在线代理访问网站的网址如何做网页制作
  • 网站设计网站开发优化wordpress模版标签
  • 国外做测评的网站有哪些台州建设银行官方网站
  • 网站怎么做mip技术wordpress 课程管理
  • 专做女鞋的网站网站建设通讯设备中企动力
  • 江门网站优化经验交易所源码
  • 海口网站建设在线著名网站建设公司
  • 学校网站建设方案策划书如何制作网站图片
  • 电脑版网站建设企业建设网站管理制度
  • 湘潭网站建设速来磐石网络公司名称大全二字
  • 宝安网站建设推广站外推广免费网站
  • 江浙区域网络公司排名临沂seo整站优化厂家
  • 信息技术九年级上册网站咋做学校后勤部网站建设方案
  • 企业网站开发费用会计分录seo排名优化资源
  • 网站建设验收总结讲话申请一个网页要多少钱