画象棋盘来浅显学习了解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. WCF绑定(Binding)

    一个Binding由一个有序的binding元素栈所组成,其中的每一个元素都指定了连接到ServiceEndpoint的一个方面.在这个栈中的最底两层都是必须要有的.最底下的一层是传输binding元 ...

  2. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_3 响应之返回值是void类型

    定义先的标签 返回void 测试默认的跳转 虽然是404但是方法执行了. 默认请求了 testVoid.jsp这个页面.请求路径叫什么 就访问哪个jsp页面. 使用request请求转发 抛出的异常 ...

  3. Python实现将不规范的英文名字首字母大写

    Python实现将不规范的英文名字首字母大写 这篇文章给大家主要介绍的是利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.文中给出了三种解决方法,大家可以根据需要选 ...

  4. Windows 2012 英文版系统安装中文语言包及时间格式设置

    1.安装中文语言包:在运行窗口中输入"LPKSetup.exe",选择中文语言包安装.--------------------------------------------- 2 ...

  5. golang(10)interface应用和复习

    原文链接 http://www.limerence2017.com/2019/10/11/golang15/ interface 意义? golang 为什么要创造interface这种机制呢?我个人 ...

  6. java:LeakFilling (Linux)

    1.Nosql 列数据库,没有update,非关系型数据库: 为了解决高并发.高可扩展.高可用.大数据存储问题而产生的数据库解决方案,就是NoSql数据库.  NoSQL,泛指非关系型的数据库,NoS ...

  7. Foxmail:导入联系人

    打开“Foxmail”之后,如下图所示: 接下来,在左下角找到箭头指示的位置处,点击此处: 接下来,在邮箱的右上角找到如图所示的位置,鼠标点击此处: 点击之后,如下图所示,找到“导入”: 点击“导入& ...

  8. nginx - 反向代理 - 配置文件模板 - nginx 代理tcp的服务 - 部署示意图

    danjan01deiMac:~ danjan01$ cat /usr/local/etc/nginx/nginx.conf|grep -v '^$' worker_processes 1; even ...

  9. 再谈mysql锁机制及原理—锁的诠释

    加锁是实现数据库并发控制的一个非常重要的技术.当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁.加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更 ...

  10. mybatis整体流程

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...