绘制国际象棋棋盘
国际象棋模型的制作
接下来制作棋子, 先制作车,在制作 前现将棋盘隐藏起 来,之后按L切换 到左视图,用样条 线工具绘制出车的 大致半拉侧面图。
切换到层次 选项卡,改 变物体坐标 轴的位置。
添加“车削” 修改器,如图 所示
之后添加“涡轮平滑” 修改器,如图所示,至 此车的模型制作完毕
用同样的方法制作出以下四种棋子。
接下来制作“马”, 这个棋子与其他的棋 子不同不能使用“车 削”制作,我们先要 在“左视图”中建立 一个平面,导入一张 该棋子的侧视图,之 后再建立一个长方体, 并转换为可编辑的多 边形进行加工,如图 所示。
最后将这些棋子放到相应 的位置上即可。
国际象棋模型的制作
damaque 01撰写
分析
国际象棋通常是由一张棋盘和若干个棋 子组成的,其中棋子包括双方兵各八个, 双方的车各两个,双方的马各两个,双方 的象各两个,双方的后各一个,双方的王 各一个,总共有三十二个棋子。 我们先来制作棋盘,之后再制作棋子。
首先启动软件,之后按P键切换到透视窗口,在其中建立 一个较扁的长方体,参数如图所示,之后按F4键让物体的 边显示出来。
选中物体,并将其转换成可编辑的多边形,之后使用 “挤出”、“切角”等工具将物体制作如下形状。
依次向对象添加“细化”修改器和“涡轮平滑” 修改器,使得物体看起来更加真实。
切换到“面”选择中间部分的面,之后添 加棋盘贴图, 图所示。至此棋盘模型制作完成。
国际象棋棋盘
国际象棋棋盘导言:国际象棋是一种受欢迎的棋类游戏,其棋盘是游戏的核心组成部分之一。
国际象棋棋盘是一个方形棋盘,由64个方格组成,棋盘上的黑白相间的格子为棋子提供了一个有效的布局和移动空间。
本文将介绍国际象棋棋盘的基本构成、规格和棋盘布局。
一、基本构成国际象棋棋盘由8行8列的方格组成,每一行被标记为字母a至h,每一列被标记为数字1至8。
这个标记系统使得在比赛或者棋盘布局中准确定位每个方格变得容易。
棋盘的总面积是64个方格以及方格之间的边框区域。
二、规格国际象棋棋盘的标准规格是每个方格的尺寸为5.7厘米。
棋盘总尺寸为45.7厘米 x 45.7厘米。
这个规格是国际象棋比赛和专业比赛使用的标准大小。
然而,棋盘的尺寸可以有所变化,在一些便携式棋盘中,尺寸可能会小一些。
三、棋盘布局国际象棋棋盘上的布局是固定的,每个方格都有特定的位置和用途。
正式比赛中,会按照以下方式进行棋盘布局:1. 棋盘上从a到h排列了8个兵营,即白色玩家的兵营和黑色玩家的兵营。
每个兵营都有16个方格。
2. 每个兵营的第一排是主要棋子的位置。
从白色玩家的角度来看,从左到右依次为:车、马、象、后、国王、象、马和车。
黑色玩家的第一排则与白色玩家对称。
3. 每个兵营的第二排是八个兵的位置。
兵是最弱的棋子,但它们可以通过进攻和协作来起到重要的作用。
4. 在开始时,棋盘上的其他方格是空的。
玩家可以根据自己的策略和游戏进展来移动其他棋子。
在布局中,棋盘上的每个方格都具有其独特的位置表示方法。
例如,左上角的方格是a1,右下角的方格是h8。
A列是白色玩家的一侧,而H列是黑色玩家的一侧。
这种布局方式确保了公平性和对称性,玩家轮流走棋,并且每个玩家都有相同的机会来利用棋盘上的位置和布局。
结论:国际象棋棋盘是国际象棋中不可或缺的组成部分。
棋盘由64个方格组成,并且具有标准的规格和布局。
了解棋盘的构成和布局对于理解和玩好国际象棋是至关重要的。
通过熟悉棋盘上的方格位置和棋子布局,玩家可以制定更有效的策略和战术,提高他们的国际象棋水平。
棋盘制作
1新建800*600像素的图象文件2将前景色和背景色分别设置为木纹中的浅色纹路色和深色纹路色(前景色RGB为200.120.70.背景色的RGB分别为160.45.5)。
3单击菜单命令“滤镜>杂色>添加杂色”对话框,并按图中所示设置参数,在图像中添加一些杂点4单击菜单命令”滤镜>像素化>晶格化”,打开晶格话对话框,将单元格大小设置为10,上一步添加的杂点被结晶为10像素大小的色块,图像效果如图所示5单击菜单命令”滤镜>扭曲>切变”,打开如图所示切边对话框,在对话框左上角的曲线图中拖动曲线,将其调整为图中所示的形状,并选中“折回”单选框,单击确定后,图像按照切变曲线进行扭曲6单击菜单命令“图像》图像大小”打开如图所示的对话框,在对话框中单击“约束比例”复选框,清楚其中的钩状符号,然后将高度设置为600像素,将图像在垂直方向上压缩为原来的一半,使木头的纹路密集一些7单击菜单命令“编辑>预置>参考线,网格,切片”.打开如图所示的对话框,按照图中的网格参数然后单击菜单命令“视图>显示>网格”,在图像窗口中显示网格线8在”图层”面板中建立新层,并将其命名为”棋盘格”9在工具箱中选择铅笔工具,在工具栏中将铅笔的笔尖直径设置为2像素,将前景色设置为黑色,然后按住了shift键沿主网格线拖动鼠标,绘制棋盘格线10在工具选项栏中将铅笔的笔尖直径设置为5像素,然后按住shift键沿主网格线外的第一条子网格线拖动鼠标,绘制棋盘外框线,绘制完毕11在菜单中图层,打开图层样式斜面和浮雕对话框,并按照体重所示效果参数,产生凹陷效果12在工具箱中选择椭圆工具,在工具选项栏中单击按钮指定行装图层,将前景色设置为95%灰色,将鼠标指针一共到两条棋盘格线的交叉点,然后拖动鼠标绘制一个圆,创建出一个圆形的深灰色形状图层,拖动过程中按住alt键使拖动的起点为圆心,按住shift键使会是的形状为正圆13在图层调板中将该图层命名为黑子14在图层调板中弹出斜面和浮雕命令,打开图层样式对话框,并按照图中线面和浮雕以及投影效果设置我从来就不是一个独立的人,也从没有独立生活过,直到来了加国。
绘制国际象棋棋盘
目录一、设计任务,目的与要求 (1)1.设计内容: (1)2.设计目的: (1)3.设计要求: (1)二、概要设计 (1)1.设计流程: (1)三、运行结果及分析 (4)1.程序运行测试: (4)2.应用运行的结果: (5)四、源代码 (6)一、设计任务,目的与要求1.设计内容:在屏幕上绘制输出国际象棋棋盘,分别利用命令提示行和MFC制作输出。
2.设计目的:1)复习、巩固C++语言的基础知识,进一步加深对C++语言的理解和掌握;2)课程设计为将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。
提高适应实际,实践编程的能力;3)加强学生的团队合作能力。
3.设计要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2)系统设计要实用,编程简练,可用,功能全面;3)说明书、流程图要清楚;4)记录设计情况(备查,也为编写设计说明书作好准备);5)要求采用模块化程序设计方法,要求上机调试通过和按设计报告格式;6)设计上交内容:设计报告一人一份(按格式书写),源程序文件。
二、概要设计1.设计流程:1)设计要求:(1)国际象棋棋盘是个正方形,由横纵各8格、颜色一深一浅交错排列的64个小方格组成,并且对奕时右下角为白色方格。
(2)能够写出相应的源程序代码,采用结构化、模块化程序设计方法,功能完善,界面要美观;(3)所设计的系统要求运行没有错误;(4)当程序运行时弹出一个界面,并显示棋盘;(5)最后经验收合格后,按要求写出课程设计报告。
2)运行环境:本设计使用的运行环境是Microsoft Visual C++ 6.0开发环境,所做的是基于MFC的打印国际象棋棋盘的应用程序。
3)总体设计:1.用命令提示行输出棋盘是横竖各8个方格排列而成的,将横定为排,纵定为列。
横向有8排编号为0到7,纵向亦有8列编号为0到7。
观察棋盘特点黑白相间可知排号与列号相加为偶数的是白色方块,反之为黑色方块。
word绘制中国象棋棋盘[整理版]
word绘制中国象棋棋盘[整理版] word绘制中国象棋棋盘
注:本文涉及版权,不得用于商业用途,仅供参考。
用Word就可以轻松绘制出美观、实用的中国象棋棋盘。
一、设置页面
运行Word,点“文件”?“页面设置”,打开“页面设置”对话框。
切换到“纸型”标签卡,在下拉列表中选择或自定义一种纸型。
(选择自定义,宽度设为30厘米,高度设为33厘米,其它选项默认。
二、绘制棋盘
1.插入表格:点击“表格”?“插入表格”,打开“插入表格”对话框,因为中国象棋的棋盘从整体上看是一个9行8列的表格,所以在“列数”一栏的文本框中输入8,“行数”一栏的文本框中输入9,单击“确定”,在Word工作窗口中插入一张9行8列的表格;
2.调整大小:选中刚才插入的整张表格,单击鼠标右键,在弹出的快捷菜单中选择“表格属性”命令,打开“表格属性”对话框,将表格的行高和列宽都设置为3厘米;
3.细节处理:点击“表格”?“绘制表格”,调出“表格和边框”工具栏,利用绘制表格工具,在棋盘上下两端将、帅的活动区域画出“米”字格。
选中表格的第五行,单击右键,在快捷菜单中选择“合并单元格”,将表格第五行的所有单元格合并,这样一张中国象棋棋盘的外形就绘制完成了。
三、修饰棋盘
1.设置边框:选中整张表格,单击鼠标右键,在弹出的快捷菜单选择“表格属性”命令,打开“表格属性”对话框,单击“边框和底纹”按钮,打开“边框和底纹”窗口,根据自己的喜好,对表格的边框和页面边框的线型、粗细、颜色进行设置。
2.添加文字:将光标定位到表格的第五行,输入“楚河汉界”四个字,并根据需要调整文字的字体、大小、颜色和位置。
一张美观、实用的中国象棋棋盘就制作好了,只要联上打印机打印一张就行了。
javascript简单写出国际象棋棋盘
javascript简单写出国际象棋棋盘 关于昨天的⼀个作业,做了⼀个国际象棋的棋盘,效果图如下 这⾥的思路是根据off=true的值进⾏反转来判断单元格的颜⾊。
就那第⼀⾏来说,当条件语句if的off=true则输出str+='<td class="td01"></td>';,然后off=!off进⾏反转,得到off=false。
在下⼀次循环条件语句if的off=false,则输出str+='<td class="td02"></td>';,然后off=!off再进⾏反转,如此反复。
当⾥⾯的for循环完毕,off=!off再进⾏反转。
代码如下:<!DOCTYPE html><html><head><meta charset="UTF-8"><title>国际象棋棋盘</title><script type="text/javascript">var str="<table cellpadding='0' cellspacing='0'>";var off=true;for(i=1;i<=8;i++){str+="<tr>";for(j=1;j<=8;j++){if(off){off=!off;str+='<td class="td01"></td>';}else{off=!off;str+='<td class="td02"></td>';}}off=!off;str+="</tr>";}str+="</table>";document.write(str);</script><style type="text/css">table{border: 1px solid #000;}td{width: 100px;height: 100px;background: #ff0; }.td01{background: #fff; }.td02{background: #000; }</style></head><body></body></html>。
高级语言程序设计项目八绘制中国象棋棋盘
教案教学过程实施内 容【导入】网络游戏公司最近请软件工程师小张开发一套在线式的中 国象棋游戏。
小张决定用C#(弋码来实现中国象棋棋盘的绘制。
中国象棋棋盘大致有 9条竖线和10条横线,还包括游戏双方的 一个米字格(九宫格)以及五个兵位和两个炮位,棋盘中间写 有“楚河汉界”。
效果图如下:【新课】绘制中国象棋棋盘主要的步骤:1 .绘制棋盘轮廓2 •绘制棋盘线条 3. 书写棋盘中间文字任务一 绘制棋盘轮廓【任务描述】 新建项目,并在窗体上绘制棋盘背景图和外框。
【任务实施】1.新建一个 Windows 项目,在模板中选择“Windows 应用程序”,方法创设情境、激发学习兴趣, 营造良好的学习氛围明确任务,通过系列实验逐 步呈现知识教师演示学生练习,教师巡 回指导、及时评价师生互动学习环节包括“合作与探索”、“交流与分享”、“实践 与体验” 引导学生:除用Pai nt 事件,请大家试 一试用Image 对象来实现。
属性取值/说明NameFormMa in / 窗体类名称 FormBorderStyleFixedS in gle / 边框大小固定将项目名称设为“ Chinese chessboard ”,位置设为 “ E:\CspharpApp\Examples ” (或其它位置 )。
中的坐标轴方向完全相反:窗体的左上角为原点(0, 0),水平向左则X增大,垂直下向则Y增大。
3. GDI+的坐标系统GDI+的坐标系统建立在通过像素中心的假想数学直线上,这些直线从0开始,其左上角的交点是X=0,Y=0。
X=1,Y=2的简短记号是点(1,2)。
用于绘图的每个窗口都有自己的座标。
女口果要创建一个可以在其他窗口使用的定制控件,这个定制控件本身就有自己的坐标。
换言之,在绘制该定制控件时,他的左上角是点(0,0)。
不用担心定制控件放在其包含窗体的什么地方。
在绘制线条时,GDI+会把绘制出来的像素在指定的数学直线上对中。
国际象棋新手入门ppt课件
6.吃子规那么 玩家棋子挪动到的位置假设有对方的棋子,那么吃掉对
方的这个棋子,并占据该格。 特殊: 兵的挪动和吃子规那么是直进斜吃,假设兵的斜进一格
有对方棋子,那么兵可以吃掉这个棋子,并且占据该格。
7.攻击和将军 假设一个棋子可以根据挪动和吃子规那么在下一步吃掉对方的某个棋子,那么称
为攻击对方的这个棋子。 一方的王遭到对方棋子攻击时,称为王被照将,攻击方称为“将军〞。 此时被攻击方的下一步走子必需立刻“应将〞,假设无论怎样走子都无法避开被
图: 短易位:
长易位:
*以下情况,暂时不能王车易位:
⑴王和车之间有其他棋子阻隔;
⑵王正被对方“将军〞;
⑶王经过或到达的位置受对方棋子的攻击。
* 以下情况,本局都不能王车易位: ⑴王曾经挪动过。
⑵车曾经挪动过。
● 兵的升变 任何一个兵直进到达对方底线时,玩家
必需把该兵升变为车、马、象或后之中的一 枚棋子
4.棋子的规划 如图:每方的次底线各摆8个兵,每方
的底线由外向内依次是车、马、象。 底线中间的两个格子摆王和后,白后在 白格,黑后在黑格,白王在黑格,黑王 在白格。
5.走棋规那么 对局由白方先行,每次走一步,双方轮番行棋,直到
对局终了。 下面引见各个棋子的走棋规那么: ●王 横、竖、斜都可以走,每次限走一格。
国际象棋 图文讲解
1.游戏人数 国际象棋是两人对局的,一方用白棋,一方用黑棋。
2.棋盘 国际象棋棋盘为正方形,由横纵各8格、颜色一深一浅交
错陈列的64个小方格 组成。 深色格称黑格,淡色格称白格,棋子就放在这些格子中挪
动,每个玩家的右下 角为白格。
8条竖格别用小写字母a、b、c、d、e、f、g、h表示。 8条横格分别用数字1、2、3、4、5、6、7、8表示。 这样每个格子的坐标都可以用字母+数字的方式来标识。 3.棋子 棋子共32个,分为黑白两组,由对弈双方各执一组,各16 个。 兵种是一样的,分为六种,每方配置的棋子如下: 王(1)、后(1)、车(2)、象(2)、马(2)、兵(8)
国际象棋的棋盘与棋子讲解
国际象棋的棋盘与棋子讲解
国际象棋与中国象棋在一些地方是有相同的地方的,下面我们一起来看下棋盘以及棋子的不同,希望对大家有所帮助。
棋盘
国际象棋棋盘是个正方形,由横纵各8格、颜色一深一浅交错排列的64个小方格组成。
深色格称黑格,浅色格称白格,棋子就放在这些格子中移动,右下角是白格。
8条直线从白方左边到右边分别用小写字母a、b、c、d、e、f、g、h表示。
8条横线从白方到黑方分别用数字1、2、3、4、5、6、7、8表示。
棋子
国际象棋棋子共三十二个,分为黑白两组,各十六个,由对弈双方各执一组,兵种是一样的,分为六种:
在比赛中,国际象棋棋子采用立体棋子,非正式的下棋可以采用平面图案的棋子。
随着网络时代的到来,国际象棋事实上已经进入了平面图案棋子的时代。
中国最大的游戏网站联众网开发的国际象棋游戏就是使用平面图案棋子,国外大型的游戏网站开发的国际象棋游戏同样都是平面图案棋子。
而正式的国际、国内的国际象棋比赛必须使用立体棋子。
CAD怎么画中国象棋棋盘?象棋棋牌cad图纸的画法
CAD怎么画中国象棋棋盘?象棋棋牌cad图纸的画法经常使⽤CAD绘制⼀些图纸,想要绘制⼀个棋盘的图纸,该怎么绘制呢?在使⽤cad绘制的时候,涉及到的知识点有矩形阵列,镜像等,总体难度并不⾼,下⾯我们就来看看详细的教程。
AutoCAD 2020.1.3 简体中⽂正式版(含安装密钥+安装教程) Win64位类型:3D制作类⼤⼩:1.46GB语⾔:简体中⽂时间:2020-06-28查看详情绘制棋盘的思路是,⾸先画出⼀个⼩矩形,对其进⾏阵列绘制⼀个⼤体棋盘,再对细节进⾏修饰。
现在使⽤命令“rec”来绘制⼀个矩形。
现在我们来画出长为10,宽为10的⼩⽅块,在输⼊矩形命令后,输⼊公式“@10,10”来绘制。
绘制好基本矩形后,开始输⼊阵列命令“arrayclassic”,调⽤出阵列参数⾯板进⾏编制。
出现矩形参数⾯板后,选择“矩形阵列”,设置⾏列数,⾏数为“9”,列数为“8”,再设置⾏列偏距,⾏偏距为“10”,列偏距为“10”。
设置好⼀系列参数后,我们就要去选取实现这些参数的对象,点击参数⾯板右上⾓的“选择对象”按钮。
将我们绘制的矩形进⾏选中,这⾥解释下参数的实现,棋盘为9⾏8列的空格,⾏列偏距为10可实现空格的逐个排列。
选择完对象后,会弹回阵列参数⾯板前,这时就是做最后的检查,确认⽆误后,点击“确认”。
这样我们就看到棋盘的⼤体已经出来了,现在将楚河汉界的空留出来。
将图中选中的⽅块删掉并在两边添加直线。
现在⽤直线命令来绘制,双⽅元帅所在的九宫,使⽤命令“l”并按“F8”将正交状态关闭,就可以绘制斜线了。
现在我们来绘制卒位和炮位线,使⽤直线命令“l”绘制如图所⽰的L图形,在交叉点⼀侧绘制两条。
接下来我们使⽤镜像命令进⾏镜像,直接输⼊命令“mi”后空格确定,选中对象进⾏镜像。
逐⼀镜像完成,我们的象棋棋盘也差不多完成了,还原度是不是很⾼呢。
以上就是象棋棋牌cad图纸的画法,希望⼤家喜欢,请继续关注。
国际象棋棋盘
线
八、小方格的标志
坐标记录法:
棋盘上每个小方
a8 b8 a7 b7 a6 b6 a5 b5 a4 b4 a3 b3 a2 b2 a1 b1
c8 d8 c7 d7 c6 d6 c5 d5 c4 d4 c3 d3 c2 d2 c1 d1
e8 e7 e6 e5 e4 e3 e2 e1
f8 f7 f6 f5 f4 f3 f2 f1
欢迎光临指导!
有一个古老的传说。 相传国际象棋的发明人是古印度的一个宰相,当时的国王就打算 重赏他,问他有什么要求。 这位聪明的大臣思考了一下,他说只希望国王给他一些小麦,把 这些小麦放在国际象棋棋盘的小方格里,条件是第一个小格内放一粒麦 子,在第二个小格内放两粒,第三格内放四粒,第四格内放八粒,照这 样下去,每一小格内的麦粒数都是前一格的二倍。 国王非常高兴,认为这样的要求太低了 ,于是马上命人拿来了一 袋小麦。 第一格内放一粒,第二格内放两粒,第三格内放四粒,………… 还没放到第二十格,一袋小麦就没有了,然后一袋又一袋麦子被放到国 王面前。 但是,麦粒数一格一格地迅速增大,很快可以看出,即使拿出当时 全印度的所有麦子,国王也无法满足宰相的要求。 后来,有人经过计算得出的结果是需要18,446,744,073,709, 551,615粒小麦,相当于当时全世界两千年内所生产的小麦。
第1横线,第2横线,
第3横线,第4横线, 第5横线,第6横线, 第7横线,第8横线.
三、棋盘的竖线
竖 线 a 竖 线 b 竖 线 c 竖 线 d 竖 线 e 竖 线 f 竖 线 g 竖 线 h
• 棋盘上竖直方向的方格组成竖 线。 • 棋盘有八条竖线, 它们是: 竖线a,竖线b,竖线c,竖线d,
竖线e,竖线f,竖线g,竖线h。
国际象棋电子棋盘设计
l
表示棋 子种类 , 如 王为 1 , 后 为 2 , 车为 3 , 象为 4 , 马 为 5, 兵 为
6 ;低 4位 数 表 示 兵 的 序 号 , 如
式, 2 . 3 引脚之间与电位 背光, 使显 示效果更好。
此设 计 中液 晶显示 模 块
- )
; I }
—二 二 ] ; }
2 电子 棋 盘 软 件 设 计
上 电后 , 按 下 开 始按 键 , 从 而 引 导 实 现 程 序 加 载 和 棋 子 原 始
三 I-
限 状 态 机模 型是 一 致 的 ,所 以在 编 程 时 我 们 考 虑加 入 有 限 状 态
机协议。
图 4 棋 子 信 号 采 集 电 路
综上所 述 , 一 条 记 录 共 有 5个 字 节 构 成 , 表 达方式 为 : 时、 ~
分、 秒、 棋 子种 类 、 棋 子位 置 。 棋
现, 将 会使 得 电子 棋 盘 的 设 计 更 加 简单 完 善 。
参 考文 献
[ 1 ] 赵巍. 单 片 机 在 棋 类 比赛 中 的 应 用 [ J ] , 科技情 报开发与经 济 , 2 0 0 7 ,
1 8 ( 1 7 ) : 1 8 7 -1 8 8
: : GND
2 4 ( 32
二二 = ]
—- 一 1 1 0 }
主要用于系统设置、 棋钟 数据显示等。
—一 1 i 2 i { — 1 ” 4 1
1 . 4存储器接口设计
我们 在 比赛 中需要
G N D I l I r—二 = ]
 ̄ ℃
1
I l
衢 4
” 1
将比赛过程记录下来形 成棋谱, 帮助我们分析比
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、设计任务,目的与要求 (1)
1.设计内容: (1)
2.设计目的: (1)
3.设计要求: (1)
二、概要设计 (1)
1.设计流程: (1)
三、运行结果及分析 (4)
1.程序运行测试: (4)
2.应用运行的结果: (5)
四、源代码 (6)
一、设计任务,目的与要求
1.设计内容:
在屏幕上绘制输出国际象棋棋盘,分别利用命令提示行和MFC制作输出。
2.设计目的:
1)复习、巩固C++语言的基础知识,进一步加深对C++语言的理解和掌握;2)课程设计为将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。
提高适应实际,实践编程的能力;
3)加强学生的团队合作能力。
3.设计要求:
1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
2)系统设计要实用,编程简练,可用,功能全面;
3)说明书、流程图要清楚;
4)记录设计情况(备查,也为编写设计说明书作好准备);
5)要求采用模块化程序设计方法,要求上机调试通过和按设计报告格式;6)设计上交内容:设计报告一人一份(按格式书写),源程序文件。
二、概要设计
1.设计流程:
1)设计要求:
(1)国际象棋棋盘是个正方形,由横纵各8格、颜色一深一浅交错排列的64
个小方格组成,并且对奕时右下角为白色方格。
(2)能够写出相应的源程序代码,采用结构化、模块化程序设计方法,功能完善,界面要美观;
(3)所设计的系统要求运行没有错误;
(4)当程序运行时弹出一个界面,并显示棋盘;
(5)最后经验收合格后,按要求写出课程设计报告。
2)运行环境:
本设计使用的运行环境是Microsoft Visual C++ 6.0开发环境,所做的是基于MFC的打印国际象棋棋盘的应用程序。
3)总体设计:
1.用命令提示行输出
棋盘是横竖各8个方格排列而成的,将横定为排,纵定为列。
横向有8排编号为0到7,纵向亦有8列编号为0到7。
观察棋盘特点黑白相间可知排号与列号相加为偶数的是白色方块,反之为黑色方块。
例如第0排第5列为(0+5)=5,结果为奇数则为白色。
再如第3排每1列为(3+1)=4,结果为偶数则为黑色。
据此打印相应的方块形成整个棋盘。
本设计中白色方格用两个ASCII码为219的符号(如图)形成,黑色方格用两个空格形成。
图1 ASCII码对照表
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。
标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。
其中:0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字
符),ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。
它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
48~57为0到9十个阿拉伯数字;65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
后128个称为扩展ASCII码。
扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
2.用MFC绘制输出
MFC(Microsoft Foundation Classes),是微软公司提供的一个类库,以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。
其中包含的类包含大量句柄封装类和很多内建控件和组件的封装类。
与其他所有的Windows 应用程序一样,在使用MFC 的应用程序中也要处理系统消息,但是在MFC中消息处理更容易,封装得更好,更易于维护。
下图为应用程序的执行过程
图2 应用程序的执行过程
Windows 使用图形设备接口(GDI)进行图形和文本输出,MFC 封装了GDI 对象,提供了CGdiObject 类和CDC 类支持图形和文本输出。
应用程序可以使用GDI 创建矢量图形、光栅图形和文本3 种类型的图形输出,本设计主要是输出一定形状的矢量图形。
MFC 封装了DC,提供CDC 类及它的子类以访问GDI。
MFC 提供的设备环境类包括CDC、CPaintDC、CClientDC、CWindowDC 和CMetaFileDC 等,其中CDC 类是MFC 设备环境类的基类,其他MFC 设备环境类都是CDC 类的派生类,CDC 提供了基本的绘图操作函数,如画点、画线、画圆、画矩形、画多边形等。
本设计主要用到Rectangle( )函数。
它根据指定的左上角和右下角坐标绘制一个矩形,其格式如下:
CRect rect(0,0,100,100); //括号里的参数是左上角与右下角的坐标
pDC->Rectangle(&rect);
在绘制图形和图像时,颜色是一个重要的因素。
Windows 用COLORREF 类型的数据存放颜色。
它实际上是一个32 位整数。
任何一种颜色都是由红、绿、蓝3 种基本颜色组成的,COLORREF 类型数据的低位字节存放红色强度值,第2 个字节存放绿色强度值,第3个字节存放蓝色强度值,高位字节为0,每一种颜色分量的取值范围为0~255。
直接设置COLORREF 类型的数据不太方便。
MFC 提供了RGB 宏,用于设置颜色,它将其中的红、绿、蓝分量值转换为COLORREF 类型的颜色数据,其使用形式为:
RGB(byRed,byGreen,byBlue)
其中参数byRed、byGreen 和byBlue 分别表示红、绿、蓝分量值(范围0~255)。
设计中用到了RGB(192,192,192)和RGB(0,0,0),他们分别为灰色和黑色。
程序中是以某一坐标为参考点在OnDraw函数中形成两层循环利用笔刷绘
制黑白间的64格棋盘。
三、运行结果及分析
1.程序运行测试:
1.进入VC++环境,文件新建一个单文档的MFC 应用程序,命名为“绘制国际象棋棋盘”。
2.选择项目工作区的ClassView,展开CMyView 类,找到成员函数OnDraw()并输入绘制代码。
3. 编译、链接并运行程序,等到所要求的棋盘。
2.应用运行的结果:
1)利用命令提示行输出:
2)利用MFC绘图输出:
四、源代码
1.用命令提示行打印棋盘
#include"stdio.h"
#include<windows.h>
int main()
{
int i,j;
SetConsoleOutputCP(437); //显示大于127的asc码
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf(" ");
printf("\n");
}
return 0;
}
2.用MFC应用程序绘制棋盘
为了节省篇幅,只写出了实现本设计中OnDraw()函数中的主要绘制代码,程序如下:
void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
ASSERT_V ALID(pDoc);
CBrush *BrushOld,BrushNew; //建立刷指针
COLORREF BrushClr[]={RGB(192,192,192),RGB(0,0,0)};//选用灰色和黑色COLORREF BrushColor;
int x,y;
pDC->TextOut(200,20,"国际象棋棋盘"); //在坐标处输出标题
for(int i=0;i<8;i++) //列控制
{
for(int j=0;j<8;j++) //行控制
{
x=i+1;
y=j+1;
if((i+j)%2==0)
{
BrushColor=BrushClr[0];
BrushNew.CreateSolidBrush(BrushColor); //创建实心画刷
BrushOld=pDC->SelectObject(&BrushNew); //选用实心画刷}
else
{
BrushColor=BrushClr[1];
BrushNew.CreateSolidBrush(BrushColor); //创建实心画刷
BrushOld=pDC->SelectObject(&BrushNew); //选用实心画刷}
pDC->Rectangle(50*x,50*y,50*(x+1),50*(y+1));
pDC->SelectObject(BrushOld); //还原画刷
BrushNew.DeleteObject(); //释放画刷
}
}
}。