贪吃蛇小游戏—小白的进阶之路的开始
来源:互联网 发布:java基础学完学什么 编辑:程序博客网 时间:2024/05/29 08:41
该程序的实现主要是通过Easyx实现的大多数功能,因为没能够继续完善所以只展现一部分简单的代码(大一上刚开始的时候学习的,就当作是开始吧)
#include<graphics.h>#include<conio.h>#include<stdio.h>#include <stdlib.h>#include <time.h>#include<string.h>int flag = 0, m, n, flag1 = 1;COLORREF p, q;typedef struct node { int x; int y;}Array;void wall(){ int i; setfillcolor(RGB(25, 25, 112)); for (i = 0; i <= 620; i += 20) { rectangle(i, 0, 620, 20);//上方的墙 fillrectangle(i, 0, 620, 20); rectangle(620, i, 640, 460);//右边的墙 fillrectangle(620, i, 640, 460); rectangle(i, 460, 640, 480);//下面的墙 fillrectangle(i, 460, 640, 480); rectangle(0, i, 20, 480);//左边的墙 fillrectangle(0, i, 20, 480); }}void fruit(){ if (flag == 0) { m = rand() % 580 + 20; n = rand() % 420 + 20; p = getpixel(m, n); if (p != q) { circle(m, n, 5); flag = 1; } }}int main(){ initgraph(640, 480); Array a[10]; int i, k = 0; char ch1 = 54, ch2 = 54; srand((unsigned)time(NULL)); BeginBatchDraw();//开始绘制背景 IMAGE img1, img; loadimage(&img1, _T("E:\\solve problem\\lsnack\\Debug\\fate1.jpg"), 599, 439);//设置背景 putimage(21, 21, &img1); a[0].x = 60;//初始化结构体数组起点 a[0].y = 20; rectangle(a[0].x, a[0].y, a[0].x + 20, a[0].y + 20); wall(); setfillcolor(RGB(225, 165, 0)); fillrectangle(a[0].x, a[0].y, a[0].x + 20, a[0].y + 20); for (i = 1; i <= 2; i++) { a[i].x = a[i - 1].x - 20; a[i].y = a[i - 1].y; rectangle(a[i].x, a[i].y, a[i].x + 20, a[i].y + 20);//画出连续的矩形 setfillcolor(GREEN); fillrectangle(a[i].x, a[i].y, a[i].x + 20, a[i].y + 20); q = getpixel(a[i].x + 10, a[i].y + 10); } FlushBatchDraw(); while (1) { BeginBatchDraw(); if (_kbhit()) { k = i; ch1 = _getch(); if ((ch1 == 56 && ch2 != 50) || (ch1 == 50 && ch2 != 56) || (ch1 == 52 && ch2 != 54) || (ch1 == 54 && ch2 != 52)) { while (!_kbhit()) { for (k = i; k > 0; k--) { a[k].y = a[k - 1].y; a[k].x = a[k - 1].x; } putimage(21, 21, &img1); switch (ch1) { case 56:a[0].y -= 20; break;//上 case 50:a[0].y += 20; break;//下 case 52:a[0].x -= 20; break;//左 case 54:a[0].x += 20; break;//右 } solidcircle(m, n, 5); setfillcolor(RGB(225, 165, 0)); fillcircle(m, n, 5); for (k = 0; k < i; k++) { rectangle(a[k].x, a[k].y, a[k].x + 20, a[k].y + 20);//最前方的矩形 setfillcolor(GREEN); fillrectangle(a[k].x, a[k].y, a[k].x + 20, a[k].y + 20); setfillcolor(RGB(225, 165, 0)); fillrectangle(a[0].x, a[0].y, a[0].x + 20, a[0].y + 20); } Sleep(200);//这个部分应该采取分关卡的形式去比较速度,但是并没有写完 if (a[0].x < m + 5 && a[0].x + 20 > m - 5 && a[0].y < n + 5 && a[0].y + 20 > n - 5) { flag = 0; i++; clearcircle(m, n, 5); rectangle(a[i].x, a[i].y, a[i].x + 20, a[i].y + 20); setfillcolor(GREEN); fillrectangle(a[i].x, a[i].y, a[i].x + 20, a[i].y + 20); } for (k = 3; k < i; k++) if (a[0].x == a[k].x&&a[0].y == a[k].y) { initgraph(300, 150); loadimage(&img, L"E:\\solve problem\\lsnack\\Debug\\game over.jpg", 300, 150); putimage(0, 0, &img); FlushBatchDraw(); system("pause"); closegraph; exit(0); } if (a[0].x < 20 || a[0].x > 600 || a[0].y < 20 || a[0].y > 440) { initgraph(300, 150); IMAGE img; loadimage(&img, L"E:\\solve problem\\lsnack\\Debug\\game over.jpg", 300, 150); putimage(0, 0, &img); FlushBatchDraw(); system("pause"); closegraph; exit(0); } if (i >= 20)//判断达到吃到多少个就通关(事实上这一步骤还可以完善,例如用一个记录分数的牌子) { initgraph(300, 150); IMAGE img2; loadimage(&img2, L"E:\\solve problem\\lsnack\\Debug\\PASS.jpg", 300, 150); putimage(0, 0, &img2); FlushBatchDraw(); system("pause"); closegraph; exit(0); } ch2 = ch1; fruit(); FlushBatchDraw(); } } } if (a[0].x < m + 5 && a[0].x + 20 > m - 5 && a[0].y < n + 5 && a[0].y + 20 > n - 5) clearcircle(m, n, 5); FlushBatchDraw(); } system("pause"); closegraph; return 0;}
从这里开始的c语言编程之路
这个程序以及代码还有很多很多地方待完善不过只能等到自己什么时候有时间再来操作了
现在是大一下也决定好要先转型学一下web前端开发,之前草草的学了数据结构但是并不是很理想,现在看来只会觉得当时的自己还不够认真,没有集中精力专心去做那件事,不过即便是看上去的很努力也把自己累个半死
等空闲时间再陆陆续续贴一些之前自己刷题的代码吧(比如蓝桥杯的,杭电oj的)
还是要加油啊,虽然说转专业依旧艰难,但是总得继续下去的
0 0
- 贪吃蛇小游戏—小白的进阶之路的开始
- 贪吃蛇的进阶——智能贪吃蛇
- 贪吃蛇进阶之路
- js实现的贪吃蛇的小游戏
- 一个贪吃蛇的小游戏(c++API)
- 一个unix的贪吃蛇小游戏
- 基于控制台的贪吃蛇小游戏
- Java写的小游戏贪吃蛇代码
- 17行代码的贪吃蛇小游戏
- 17行代码的贪吃蛇小游戏
- [Py]一个贪吃蛇小游戏的雏形
- js写的贪吃蛇小游戏
- 用链表做控制台下的贪吃蛇小游戏
- javascript做的贪吃蛇小游戏
- JS实现简单的贪吃蛇小游戏
- 基于JS、canvas的小游戏--贪吃蛇
- MFC 小游戏之贪吃蛇
- 控制台小游戏之贪吃蛇
- 使用Fiddler抓取在夜神模拟器安装的软件的包
- 在Mac OS X 10.11 EI Capitan 中提取iso镜像
- 《数据结构之树篇》--二叉树的数组实现
- ASP.NET使用百度编辑器(UEditor)方法
- 手推BP
- 贪吃蛇小游戏—小白的进阶之路的开始
- java学习--try catch finally
- React Native之对Json类型的数据添加和修改处理
- 第三十七将项目二 乘法口诀表
- **WebView加载网页不显示图片解决办法**
- 雪城大学信息安全讲义 七、格式化字符串漏洞
- 【C++】static 的实现原理及其表现
- 计算机网络分类以及其拓扑结构分类概述
- 模拟实现vector