问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

学C语言已经半年多了。却对俄罗斯方块,贪吃蛇之类的小游戏的编写一点头...

发布网友 发布时间:2023-11-04 07:05

我来回答

4个回答

热心网友 时间:2024-07-21 14:31

单纯学C你是写不出图形程序的,你可以看到,C标准库支持的是dos程序,就是那个黑不溜秋的东西。

如果想知道你离小游戏还多远,咱们可以这么算一下,下面给出几个假设条件:

提供给你图形绘制函数,你只需要传相应的参数,就能画出图形,点,线,圆,颜色填充之类。

给出线程函数,让你可以创建系统线程,或者使用定时器等控制贪吃蛇身体的移动。具体的方式可以变,你需要一个按照固定时间间隔来移动蛇身的函数。

那你觉着,你该怎样写一个贪吃蛇?

思路是:

使用链表等结构,存储蛇的身体,好处就是,可以任意长度。你要想好链表中存储什么属性可以更好地描述蛇的状态,它超哪个方向走,它的身体各个节点处于哪个位置。

划分屏幕坐标系,将贪吃蛇映射为坐标系中的点。

写出碰撞检测函数,贪吃蛇碰到了一个食物,就在链表头部添加一个节点并将头结点更新为这个结点。

使用碰撞检测函数检测贪吃蛇是否撞到了自己。

检测蛇是否撞到了屏幕边界。

使用线程或定时器沿着一个方向移动你的贪吃蛇,移动规律是朝着当前链表头部冲的方向匀速移动,你可以设定0.5s对表头的x/y坐标进行加,减。时间间隔影响了蛇的速度,如果允许长度超过一个程度升级加速,你就要设置下这里的参数。

根据表头的移动,设计算法计算蛇的身体各个点的移动轨迹。这个是关键,这个算法想错了,你的蛇就会乱跑。一个比较直接的做法是,将蛇身体的每个节点依次前移,不是坐标的移动,是填充,让后面节点填充它前面节点移动前的位置。

大致是这样,我只是给出个思路,如果我有写错的地方,欢迎指正,又或者是你可以按照你的思路来进行,学习,思路是很重要的,代码是死的,人是活的。


分析问题,你要将实际的问题抽象出编程用的模型。抽象的过程就是,先假设你已经有了你想要的函数,你可以先给出函数的声明,比如碰撞检测函数,线程函数等等。这些函数你不会写,先空着,想象它们已经完成了。

然后你要做的就是,用这些已经被假设存在的构造快,来实现你的逻辑。这个逻辑是什么,就要看你怎么抽象一个具体的问题。就像贪吃蛇,通用的思路是把它抽象为坐标和链表结构。如果你用了另外一种思路,整个过程可能截然不同。

整个过程写完了,你需要知道,那些被你假设了的函数,到底怎么实现。

给个思路:

界面显示用MFC来做,线程,定时器什么的,有相应的windowsAPI,这些图形和线程功能,都需要操作系统做支持,所以你要用到一些windows的API。这些资料都是有的,你可以去找。


以上。再次声明,如有疏漏,请见谅。

热心网友 时间:2024-07-21 14:22

1小游戏因该不需要多少基础啊,你都学了半年了不是怎么坑吧
2莪学的是易语言,也和你差不多吧,不过莪只是个炸
3不懂问题意思
4 这你还是问百度吧

小游戏你先了解下游戏主要的方式是什么(怎么算赢,怎么算输)然后编辑代码什么的,素材可以去网上下载,实在不会就看看答案吧,莪也是个小白而已。。。。

热心网友 时间:2024-07-21 14:30

  我不认为学C语言的目的是写游戏,写游戏有专门的框架,尤其是GUI用C处理是很麻烦的。能写游戏也绝对不代表你精通了C语言,可以说有无数种方法来写好一个游戏,孰优孰劣?难说。

  我的想法是,学习C语言本身和学习软件设计还是不一样的。软件设计与具体的语言无关,而精通语言本身也不代表就会设计。现实中的软件设计很少有直接用C的,至少也是C++,所以我觉得学C更多的是打基础,不必强调应用。

  下面我就学习C语言本身谈一点看法。

不知道你的教育背景如何?具体学习策略和强度需要根据背景而定。

一般来说,你现在已经完成了入门,下面要进一步深入学习的话可以看C primer等外国书籍。

相比游戏等应用,C语言更适合用来学习基本的算法。可以找数据结构与算法的书来学习。

热心网友 时间:2024-07-21 14:26

1)根据游戏难度判断
2)2个月
3)不要被游戏的表面所迷惑(贪吃蛇和俄罗斯方块并不是基于图形,而是坐标来编写)
4)我就是自己看书,自己编程,不会的上网查,然后慢慢的就越积累越多了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天将雄师观后感600字 为什么喝酒会降血糖 牛栏山 52度浓香型白酒-购买最佳价格 全兴大曲 52度浓香型白酒-购买最佳价格 笔记本电脑怎么接音箱电脑如何连接外置音箱 笔记本电脑有音箱插孔吗笔记本电脑如何连接喇叭 冰箱压缩机过热启动5秒就停了 周长相等的正方形和圆,其面积比是多少 周长相等的正方形和圆面积比是多少 周长相等的正方形与圆形,边长与半径的比是( ),面积之比是( )。 要有... 计算机WORD中表格水平居中,表格中所有数据水平垂直居中 怎...85 当打开一个工作簿时,显示在当前屏幕上的工作表为激活工作表。若...1 统计表用什么呈现数据1 上海哪里不错的葡萄牙语培训学校,葡萄牙语学习 我要学葡萄牙语,上海哪里有教葡萄牙语啊? 我是上海的,这边学习葡萄牙语去哪里比较好?2 美国大学面试官面试完多长时间发感谢信最好1 刚刚在美国面试完,不知道怎么写感谢信,跪求感谢信模版 我被国外大学录取了,感谢信怎么写?英文的9 被美国的大学录取了需要回感谢信么 - -2 欧卡罗油烟机质量怎么样? 看过方太油烟机,还是想买欧卡罗油烟机可好? 中国平安人寿保险所说的万能险种到底怎样?适合多大年龄段和什么样的... 威海有买地脉矿泉水的吗? 能给对方微信发消息,却看不到对方的朋友圈是怎么回事?113 如果有三个合伙人,想注册商标,以个人名义注册,是否就算签订商... 主题教育具体要达到五个目标正确顺序如何? 微信发给对方的消息发不出去,但是我好友列表里还有他,也还能看...7 能给对方微信发消息,却看不到对方的朋友圈是怎么回事239 平安保险 住院报销多久能下来6 泰东路渡口是东昌路渡口吗? cad2016工具栏怎么调出来158 去面试文员当场要电脑操作excel表格,一般要怎么做?701 喝完rio鸡尾酒后身上起了一个个小圆点,痒,为什么会这样3 以前不怎么喝酒,刚喝了一瓶rio鸡尾酒,现在脸通红,皮肤都红... 报表是什么?82 EXCEL 表格如何筛选需要的数据312 shnaghai ibm band7收入多少 IBM的band体系是怎么样的?每个band的薪资范围又是多... ibm band8 年薪最高多少1 Google Chrome反复崩溃5 GUCCI钱包怎么查真假?81 进入贴吧浏览器会崩溃怎么解决? 怎么把ps里做好的首页放进淘宝87 养驴饲料:驴喜欢吃什么饲料 淘宝详情图用PS怎么做?360 淘宝ps 美工怎么做2 办理澳洲留学签证需要准备哪些申请材料?5 驴吃什么饲料养驴喂什么饲料好 省钱好饲料1 PS制作的图片怎么上传到淘宝首页轮播图5