编译环境

系 统:Windows11

编译器:Visual Studio 2022

图形库:EasyX


源代码

#include<easyx.h>
#include<stdio.h>
const int WIDTH = 400;
const int HEIGHT = 760;
const int INTERVAL = 48;IMAGE img_bk;
IMAGE img_item[3];void loadImg()
{loadimage(&img_bk, "images/bk.jpg", WIDTH, HEIGHT);loadimage(img_item + 0, "images/cao.png",48,48);loadimage(img_item + 1, "images/lingdang.png", 48, 48);loadimage(img_item + 2, "images/shu.png", 48, 48);
}int main()
{initgraph(WIDTH, HEIGHT,EW_SHOWCONSOLE);loadImg();int map[3][3] = {0};//初始化地图for (int r = 0; r < 3; r++){for (int c = 0; c < 3; c++){map[r][c] = r+1;   //1 2 3}}//打乱数组for (int r = 0; r < 3; r++){for (int c = 0; c < 3; c++){int r1 = rand() % 3;int c1 = rand() % 3;int t = map[r1][c1];map[r1][c1] = map[r][c];map[r][c] = t;}}int store[7] = { 0 };int offsetX = (WIDTH - (2 * (48 + INTERVAL) + 48)) / 2;int offsetY = (HEIGHT - (2 * (48 + INTERVAL) + 48)) / 2;while (true){BeginBatchDraw();//绘制地图putimage(0, 0, &img_bk);//输出图片for (int r = 0; r < 3; r++){for (int c = 0; c < 3; c++){if(map[r][c])putimage(offsetX + c * (48 + INTERVAL), offsetY + r * (48 + INTERVAL), img_item + (map[r][c]-1));}}//绘制下面for (int i = 0; i < 7; i++){if (store[i])putimage((i * 50)+26, 620, img_item + (store[i]-1));}EndBatchDraw();ExMessage msg = { 0 };if (peekmessage(&msg) && msg.message == WM_LBUTTONDOWN){//鼠标坐标判断for (int r = 0; r < 3; r++){for (int c = 0; c < 3; c++){int x = offsetX + c * (48 + INTERVAL);int y = offsetY + r * (48 + INTERVAL);//printf("pos(%d,%d)\n", x, y);//判断鼠标是否点击了图片if (msg.x > x && msg.x < x + 48 && msg.y>y && msg.y < y + 48){//求出点击的图片对应的数组下标int col = (msg.x - offsetX)  /  (48 + INTERVAL);int row = (msg.y - offsetY)  / (48 + INTERVAL);//printf("row:%d col:%d\n", row, col);//把点击的图片添加到下面for (int i = 0; i < 7; i++){if (store[i] == 0){store[i] = map[row][col];break;}}//如果下面有三个一样的就消除int cnt = 0;for (int i = 0; i < 7; i++){if (store[i] == map[row][col]){cnt++;}}if (cnt == 3){for (int i = 0; i < 7; i++){if (store[i] == map[row][col]){store[i] = 0;}}}//把点击的图片从map中删除map[row][col] = 0;                  }}}}}while (1);return 0;
}

总结

代码不难也不多,跟上线的游戏比还有很多可以完善优化的地方

如果有什么不懂的地方可以私信问我,素材可以自行准备哦,不想找的小伙伴可以访问我主页的粉丝君¥下载。

总的来说,能够自己摸透的话写出一个类似的游戏还是很容易的。

最后喜欢蜜糖的可以支持一下点赞关注我哟,今天就到这里啦,我们下次再见!

C语言游戏开发丨源代码丨开发教程相关推荐

  1. 100行源代码搞定用户态协议栈丨udp,icmp,arp协议的现实丨网络协议栈丨Linux服务器开发丨C++后端开发丨Linux后台开发

    100行源代码搞定用户态协议栈 视频讲解如下,点击观看: 100行源代码搞定用户态协议栈丨udp,icmp,arp协议的现实丨网络协议栈丨Linux服务器开发丨C++后端开发丨Linux后台开发丨网络 ...

  2. 熟练掌握skynet,后端开发丨游戏开发轻松搞定丨多线程丨多进程

    掌握skynet,后端开发原来如此简单 1. 多线程 2. 多进程 3. actor模型-skynet 4. csp模型 [技术分享篇]熟练掌握skynet,后端开发丨游戏开发轻松搞定丨多线程丨多进程 ...

  3. 【云风skynet】详解skynet的多核高并发编程丨actor模型丨游戏开发丨游戏服务端开发丨多线程丨Linux服务器开发丨后端开发

    skynet中多核高并发编程给我们的启发 1. 多核并发编程 2. actor模型详解 3. 手撕一个万人同时在线游戏 视频讲解如下,点击观看: [云风skynet]详解skynet的多核高并发编程丨 ...

  4. easyx游戏编程:五子棋(C语言游戏开发)

    easyx游戏编程:五子棋(C语言游戏开发) 五子棋: 本游戏用到了图形界面库graphics.h,图形界面库下载安装: 下载链接: https://easyx.cn/downloads/. 下方有源 ...

  5. 纯c语言游戏引擎开发,C++ 写个游戏引擎—(基础篇) 1

    目标:用 c++ 写个游戏引擎打基础 基本要求:有一定编程基础,对游戏编程有热情 开发平台:windows 开发工具:visual studio 2017 communicty 前言 今天 C++ 视 ...

  6. 红黑树在linux内核中的应用场景(红黑树,进程管理CFS,内存管理)丨epoll丨c/c++linux服务器开发丨linux后台开发

    红黑树在linux内核中的应用场景(红黑树,进程管理CFS,内存管理) 视频讲解如下: 红黑树在linux内核中的应用场景(红黑树,进程管理CFS,内存管理)丨epoll丨c/c++linux服务器开 ...

  7. 全面了解C++后端开发技能树,C++后端开发面试技术点丨C/C++linux服务器开发丨linux后台开发

    C++后端开发技能树,C++后端开发面试技术点 视频讲解如下: 全面了解C++后端开发技能树,C++后端开发面试技术点丨C/C++linux服务器开发丨linux后台开发丨网络编程丨面试经验 C/C+ ...

  8. 音视频开发成长之路—进阶之路3个重要知识点丨WebRTC丨FFmpeg丨SRS流媒体服务器丨C++音视频丨嵌入式音视频

    音视频开发成长之路-进阶之路3个重要知识点 视频讲解如下,点击观看: 音视频开发成长之路-进阶之路3个重要知识点丨WebRTC丨FFmpeg丨SRS流媒体服务器丨C++音视频丨嵌入式音视频 音视频高级 ...

  9. Nginx源码实现的细枝末节 11个阶段的实现丨Nginx Filter|中间件开发|惊群效应|负载均衡丨组件丨c/c++linux服务器开发

    Nginx源码实现的细枝末节 11个阶段的实现 视频讲解如下,点击观看: Nginx源码实现的细枝末节 11个阶段的实现丨Nginx Filter|中间件开发|惊群效应|负载均衡丨组件丨c/c++li ...

最新文章

  1. JQuery中2个等号与3个等号的区别
  2. Firefox v5 正式版
  3. java中que_重写java Eques()方法-不工作吗?
  4. Innodb中MySQL如何快速删除2T的大表
  5. java ranger rest_kafka ranger integration issuse
  6. Dapr + .NET Core实战(三)状态管理
  7. python的Web编程
  8. mysql pdo 查询一条数据,使用 PDO 关联查询 MySQL 数据
  9. 演练 小米商城 手机版块 0920
  10. 【Kafka】Kafka Consumer 管理 Offset 原理
  11. ArcGIS API for Silverlight 调用GP服务绘制等值面
  12. java开发特殊技能怎么填_【程序员简历】IT技能/编程技能应当怎么写?
  13. Java合并两个有序数组
  14. intel AVX / AVX2指令学习资源
  15. Insyde uefi 隐藏设置_UEFI+GPT安装Windows10
  16. 微信公众平台开发实例 php,php微信公众平台开发类实例,php公众平台实例_PHP教程...
  17. 【MTK驱动模块_4】battery--硬件原理介绍
  18. H3C交换机端口链路聚合
  19. 无线技术—安全认证技术
  20. MPI并行编程: 矩阵乘法,积分计算,PSPR排序

热门文章

  1. 如何利用linux分析转录组数据库,转录组分析(8)----批量处理脚本了解一下
  2. COLOR_RGB2BGR
  3. vue实现时间倒计时
  4. MCP3421差分输入
  5. 给准备面试的应届生一个建议:做好自我介绍
  6. python运行使用gpu运算【python基础】python开启GPU加速
  7. 文档管理系统,你用了吗?
  8. echartjs 绘制 圆环 排版
  9. CString::MakeLower() 崩溃问题
  10. 用尽全部力气 通过了科目三的考试