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

基于EasyX的井字棋游戏制作

从零开始的游戏制作:
1.下载vs
选择2020免费版本
下载连接:https://visualstudio.microsoft.com/zh-hans/vs/
在这里插入图片描述

2.安装EasyX
安装下载连接:https://easyx.cn/easyx-20230723
选择版本
在这里插入图片描述

3.查看安装版本
安装vs时选择空项目,安装EasyX时选择合适的包。
右键源文件新建,新建项。自己命名文件名称。
在这里插入图片描述

测试代码:

#include <graphics.h>#include <iostream>int main() {printf("%ws", GetEasyXVer());return 0;
}

运行结果:
在这里插入图片描述
井字棋实现

#include <graphics.h>
#include <iostream>// 棋盘数据
char board_data[3][3] = {{'-', '-', '-'},{'-', '-', '-'},{'-', '-', '-'},
};// 实时数据
char current_piece = 'o';// 获胜
bool checkwin(char c) {if (board_data[0][0] == c && board_data[0][1] == c && board_data[0][2] == c) {return true;}if (board_data[1][0] == c && board_data[1][1] == c && board_data[1][2] == c) {return true;}if (board_data[2][0] == c && board_data[2][1] == c && board_data[2][2] == c) {return true;}if (board_data[0][0] == c && board_data[1][0] == c && board_data[2][0] == c) {return true;}if (board_data[0][1] == c && board_data[1][1] == c && board_data[2][1] == c) {return true;}if (board_data[0][2] == c && board_data[1][2] == c && board_data[2][2] == c) {return true;}if (board_data[0][0] == c && board_data[1][1] == c && board_data[2][2] == c) {return true;}if (board_data[0][2] == c && board_data[1][1] == c && board_data[2][0] == c) {return true;}return false;}// 胜利条件判断后,棋盘是否还有空位置
bool checkdraw() {for (size_t i = 0; i < 3; i++) {for (size_t j = 0; j < 3; j++) {if (board_data[i][j] == '-') {return false;}}}return true;
}// 棋盘
void Drawboard() {line(0, 200, 600, 200);line(0, 400, 600, 400);line(200, 0, 200, 600);line(400, 0, 400, 600);
}
//棋子
void Drawpiece() {for (size_t i = 0; i < 3; i++) {for (size_t j = 0; j < 3; j++) {switch (board_data[i][j]){case 'o':circle(200 * j + 100, 200 * i + 100, 100);break;case 'x':line(200 * j, 200 * i, 200 * (j + 1), 200 * (i + 1));line(200 * (j + 1), 200 * i, 200 * j, 200 * (i + 1));break;}}}
}
// 提示
void Drawtiptext() {static TCHAR str[64];_stprintf_s(str, _T("当前棋子类型:%c"), current_piece);settextcolor(RGB(255, 175, 45));outtextxy(0, 0, str);
}int main() {// 初始化窗口initgraph(600, 600);int x = 300;int y = 300;// 初始化批量绘图 双缓冲BeginBatchDraw();bool running = true;ExMessage msg;while (running) {// 获取时间DWORD start_time = GetTickCount();// 绘制圆形 坐标 半径//solidcircle(300, 300, 100);//// 消息队列 获取输入事件//ExMessage msg;while (peekmessage(&msg)) {// 事件 若为鼠标坐标//if (msg.message == WM_MOUSEMOVE) {//	// 赋值给外面xy//	x = msg.x;//	y = msg.y;//}// 鼠标左键触发事件if (msg.message == WM_LBUTTONDOWN) {// 计算点击位置属于哪个格子int x = msg.x;int y = msg.y;int index_x = x / 200;int index_y = y / 200;if (board_data[index_y][index_x] == '-') {board_data[index_y][index_x] = current_piece;// 切换与本次不同的棋子类型if (current_piece == 'o') {current_piece = 'x';}else {current_piece = 'o';}}}// 获取绘制的时间DWORD end_time = GetTickCount();DWORD del_time = end_time - start_time;// 计算绘制画面的停留时间if (del_time < (1000 / 60)) {Sleep((1000 / 60) - del_time);}}cleardevice();//绘制圆形 坐标 半径//solidcircle(x, y, 100);Drawboard();Drawpiece();Drawtiptext();// 缓冲图一次性加载 双缓冲FlushBatchDraw();if (checkwin('x')) {MessageBox(GetHWnd(), _T("x 玩家获胜"), _T("游戏结束"), MB_OK);running = false;}else if (checkwin('o')) {MessageBox(GetHWnd(), _T("o 玩家获胜"), _T("游戏结束"), MB_OK);running = false;}else if (checkdraw()) {MessageBox(GetHWnd(), _T("平局"), _T("游戏结束"), MB_OK);running = false;}}// 批量绘图关闭 双缓冲 必要EndBatchDraw();return 0;
}
http://www.dtcms.com/a/408190.html

相关文章:

  • LangChain核心组件之---Chain(链)
  • 网站正在建设中是什么意思百度网站查反链
  • Rust/C/C++ 混合构建 - Cmake集成Cargo编译动态库
  • 松岗网站开发头条热点新闻
  • 如何建设wap网站泉州网站制作多少钱
  • 从转动惯量到惯量张量:深入理解刚体旋转的惯性本质
  • AG-UI协议详解:让智能体与前端无缝对话的事件通信标准
  • 宁波江北区城市建设档案馆网站企业门户网站需求文档
  • 太仓做企业网站网站搭建策略与方法
  • GraphRAG:知识图谱赋能的检索增强生成
  • 幽冥大陆(八)网页wasm汇编语言的作用—东方仙盟化神期
  • centos7.9和rocky8.6 部署MongoDB4.4.18分片集群对比
  • 相亲网站如何做自我介绍营销运营推广服务
  • 商会网站设计企业网站seo优帮云
  • 做网站需要那些技术怎么把自己做的网站放到百度上
  • Android16 应用代码新特性
  • 哪个网站做h5好小程序注册的账号怎么注销
  • 网站怎样做快照是做网站编辑还是做平面设计
  • 做好网站建设和运营秦皇岛建筑
  • 网站建设维护招聘一个新手如何做网站
  • 深圳网站建设做微信的网站叫什么软件
  • 惠州网站建设教程wordpress企业网站插件
  • 快应用报错Module Error 分包要求 app.json#minPlatformVersion 不小于 1061, 当前值为 21解决方案-优雅草卓伊凡
  • 做网站空间备案的职业wordpress 投稿 加标签
  • 网站建设外包工作怎么知道网站的ftp
  • 网站查询域名解析ip接单网站开发
  • 美发企业网站建设价格有网站和无网站的区别
  • 外贸关键词网站南昌开发公司
  • 电商网站设计文档网络工程师高级职称
  • 备案网站名怎么填写丽水微信网站建设报价