画象棋盘来浅显学习了解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. ajax post 请求

    $(".login_btn").click(function(){ if($(".user_").val()=="admin"&&a ...

  2. gl-transitions 【68个转场效果图】

    angular.glsl Bounce.glsl BowTieHorizontal.glsl BowTieVertical.glsl burn.glsl ButterflyWaveScrawler.g ...

  3. python常见报错

    1.Pycharm No module named requests 的解决方法 pip install requests 然后重启pycharm

  4. Vue中的slot

    个人理解:是对组件的扩展,通过slot插槽向组件内部指定位置传递内容,通过slot可以父子传参: Slot的通俗理解 是“占坑”,在组件模板中占好了位置,当使用该组件标签时候,组件标签里面的内容就会自 ...

  5. Eclipse 4.11 Debug jar包代码时进入空心J

    代码调试时,进入jar包中的时候,会出现如下的情况超级影响代码调试 断点打在上面的地方,但是却进入到了空心J的那个地方了. 解决办法:去掉勾选即可. 我是这么解决的.

  6. 【HANA系列】SAP HANA SQL截取字符串

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL截取字符 ...

  7. Django视图之FBV与CBV

    一. CBV与FBV CBV:Class Based View FBV:Function Based View 我们之前写过的都是基于函数的view,就叫FBV.还可以把view写成基于类的,那就是C ...

  8. 云计算共享组件--Memcache缓存系统(4)

    一.缓存系统 一.静态web页面: 1.在静态Web程序中,客户端使用Web浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告 ...

  9. C语言之联合体

    联合union是一个能在同一个存储空间存储不同类型数据的类型 联合体所占的内存长度等于其最长成员的长度,也有叫做共用体 联合体虽然可以有多个成员,但同一时间只能存放其中一种 对于联合体来讲最基本的原则 ...

  10. 用vs2008打开sln项目总是说没有对应的,打不开vs2008的工程文件提示不支持项目类型(.csproj)

    找了很多解决办法都搞不定,最后找了个老司机问了一下,原来是组件没有安装完整!!!只是安装了个vs2008的外壳...下次先检查开发工具是否完整!下载安装包安装vs再说吧!