画象棋盘来浅显学习了解easyx

了解象棋盘的构成:

如图就为一个基本的象棋棋盘我们下面就用esayx来画出这个棋盘,我的感觉这个棋盘大概分为两个部分:第一部分就是棋盘的大致布局,第二个就是棋盘的细节实现

棋盘的代码实现:

首先根据网上的数据我们可以得到一个棋盘的长大概为420像素点,宽大概370个像素点,

     initgraph(, );// 初始化720x640的绘图屏幕
setorigin(, );//设置坐标原点
//画外边框
setlinestyle(PS_SOLID,);
rectangle(,,wide,length);
setfillcolor(RGB(, , ));
fillrectangle(, , wide, length);
//画内边框
setlinestyle(PS_SOLID, );
rectangle(, , wide-, length-);

如上代码easyx这个库通过在划线或是矩形前设置矩形或是线的一些属性然后绘制,记得这些操作是不会改变得当且仅当你重新设置后才会有所变化

     //画网格
for (int i = ; i <= ; i++)
{
line( + i*gridx, , + i*gridx, length - );
}
setbkmode(TRANSPARENT);
fillrectangle(, + * gridy, wide - , + * gridy);
for (int i = ; i <= ; i++)
{
line(, + i*gridy, wide - , + i*gridy);
}
//输入汉字
RECT r = { + , + * gridy, + * , + * gridy };
drawtext(_T("楚 河"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
RECT c = { + * , + * gridy, + * , + * gridy };
drawtext(_T("汉 界"), &c, DT_CENTER | DT_VCENTER | DT_SINGLELINE); //细节补充
line( + * gridx, , + * gridx, + * gridy);
line( + * gridx, , + * gridx, + * gridy);
line( + * gridx, + * gridy, + * gridx, + * gridy + * gridy);
line( + * gridx, + * gridy, + * gridx, + * gridy + * gridy);

接下来就是画网格这里我们注意一下当我们填充矩形颜色实如果我们还要在这块矩形上进行操作那么我们最好使用 setbkmode(TRANSPARANT);来设置透明填充这样就相当于真正的背景填充。另外我们在输入汉字时我们这里要使用TCHAR这种字符串,如果非UNICODE模式两者是相同的都是char如果UNICODE模式下(支持宽字节)TCHAR 为双字节, 为unsigned short 类型比如汉字和一些扩展字符都是2个字节表示的, 刚好可以和这个类型对应上,微软将这两种ANSI和UNICODE进行了统一,可以再“”前加上  _T  来转换成TCHAR类型。下图为完成的效果图:

下面贴上总的代码供小伙伴们参考!

 #include<graphics.h>
#include<conio.h>
#include<string> enum {shiftingx=,shiftingy=,wide=,length=};
const int gridx = (wide - ) / ;
const int gridy = (length - ) / ; using namespace std; void main()
{
initgraph(, );// 初始化720x640的绘图屏幕
setorigin(, );//设置坐标原点
//画外边框
setlinestyle(PS_SOLID,);
rectangle(,,wide,length);
setfillcolor(RGB(, , ));
fillrectangle(, , wide, length);
//画内边框
setlinestyle(PS_SOLID, );
rectangle(, , wide-, length-);
//画网格
for (int i = ; i <= ; i++)
{
line( + i*gridx, , + i*gridx, length - );
}
setbkmode(TRANSPARENT);
fillrectangle(, + * gridy, wide - , + * gridy);
for (int i = ; i <= ; i++)
{
line(, + i*gridy, wide - , + i*gridy);
}
//输入汉字
RECT r = { + , + * gridy, + * , + * gridy };
drawtext(_T("楚 河"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
RECT c = { + * , + * gridy, + * , + * gridy };
drawtext(_T("汉 界"), &c, DT_CENTER | DT_VCENTER | DT_SINGLELINE); //细节补充
line( + * gridx, , + * gridx, + * gridy);
line( + * gridx, , + * gridx, + * gridy);
line( + * gridx, + * gridy, + * gridx, + * gridy + * gridy);
line( + * gridx, + * gridy, + * gridx, + * gridy + * gridy);
_getch();
closegraph();
}

c++ easyX的学习的更多相关文章

  1. C++经典绘图工具EasyX

    EasyX简介 EasyX 在学习C语言时,很多同学抱怨说C只能写最简单的Demo程序,通过printf在屏幕上打印字符来验证代码.这样的编程很枯燥,一点没觉得自己在设计软件. EasyX是针对C++ ...

  2. C/C++入门级小游戏——开发备忘录

    很多工科的学生在大一都有一门课程,叫C语言程序设计.大概就是装个IDE然后和一个黑乎乎的窗口打交道,期末到了考完试就结束了.然而很多人可能都有一个疑惑:C语言究竟能干什么?除开嵌入式单片机这些高大上的 ...

  3. easyx学习心得

    前几天算法课的实验要求实现可视化,搞了半天没动咋实现,然后有大佬说用easyx,,,我寻思着也没教这玩意咋用啊.然后很烦躁的上网找教程,发现没有教怎么使用的,都说有一本说明书(链接),自己调用函数就可 ...

  4. easyX最新版在VS2015上的问题解决啦啦

    7.10 修改完easyX的路径,只剩下一个问题 []无法解析的外部符号_iob_func,该符号在函数“”中被引用 []1个无法解析的外部命令 原因: 版本的问题,代码已经编译过了,但是是2012版 ...

  5. C图形库Easyx的使用

    学习Eaxy X图形库后我的成果: 花了一周时间做出并完善了Flappy Bird,目前功能如下: 1. 背景的显示 2. 加入小鸟image 3. 小鸟自由下落,按空格键/鼠标右键后上升 4. 加入 ...

  6. EASY-X

    ----------------------- Page 1----------------------- 一 创建新项目 VC 写程序要有项目的概念,一个项目可以有多个 .cpp 文件,多个项目构 ...

  7. easyx的基础应用教程

    引用 什么是 EasyX? 作者:EasyX EasyX 是针对 C++ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程. 比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或 ...

  8. PyQt 5 的学习引言

    Python 是我学习的第二门编程语言,第一门编程语言是C. 曾经用C和C++的一个库(easyx库)写过图形界面应用, 感受就是难受又难看, 现在想学一下 PyQt 5 这个python的库, 用博 ...

  9. easyx图形库做贪吃蛇游戏

    编程总是对着一个黑窗口,可以说是非常乏味了,于是喵喵就翻出来了以前用easyx图形库做图形界面的贪吃蛇游戏. 不过大家只是当做提高编程的乐趣来学习吧,想进一步做的话可以学习QT,还有其他的框架. 这是 ...

随机推荐

  1. char与varchar的区别

    char的长度是不可变的,而varchar的长度是可变的,也就是说, 定义一个char[10]和varchar[10],如果存进去的是‘csdn’, 那么char所占的长度依然为10, 除了字符‘cs ...

  2. java的几种上传文件方法

    这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/commonsmultipartreso ...

  3. 使用 joblib 对 Pandas 数据进行并行处理

    使用 joblib 对 Pandas 数据进行并行处理 如果需要对一个很大的数据集进行操作,而基于一列数据生成新的一列数据可能都需要耗费很长时间. 于是可以使用 joblib 进行并行处理. 假设我们 ...

  4. ModelAndView及页面转发

    1.ModelAndView springMVC中返回值如果是ModelAndView,则其既包含模型数据信息,也包含视图信息. 在处理方法中可以使用ModelAndView对象的方法添加模型数据:a ...

  5. C基础知识(1):基本数据类型

    C的基本数据类型包括整型和浮点型,长度及精度信息如下: #include <stdio.h> #include <limits.h> #include <float.h& ...

  6. Adobe Acrobat XI 中文版激活方法

    Adobe Acrobat XI不仅只是出色的PDF编辑.转换软件.此次更新深度整合了Microsoft Office套件,实现了PDF与Word.Excel以及PowerPoint等文档间的无缝相互 ...

  7. 3D玫瑰花

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. 【GDOI】2018题目及题解(未写完)

    我的游记:https://www.cnblogs.com/huangzihaoal/p/11154228.html DAY1 题目 T1 农场 [题目描述] [输入] 第一行,一个整数n. 第二行,n ...

  9. 从入门到自闭之Python序列化

    序列化(背) json :将数据类型转换成字符串(序列化),将字符串装换成原数据类型(反序列),支持dict,list,tuple等,序列后都变成了列表 dumps,loads ------ 用于网络 ...

  10. spark教程(14)-共享变量

    spark 使用的架构是无共享的,数据分布在不同节点,每个节点有独立的 CPU.内存,不存在全局的内存使得变量能够共享,驱动程序和任务之间通过消息共享数据 举例来说,如果一个 RDD 操作使用了驱动程 ...