用C语言用java编写贪吃蛇蛇小游戏

单片机游戏设计之贪吃蛇用C语言也是有可能的
> 单片机游戏设计之贪吃蛇用C语言也是有可能的
单片机游戏设计之贪吃蛇用C语言也是有可能的
在单片机中,以往我看到前辈们学长们做贪吃蛇的时候不是用汇编就是用FPGA语言编写。那我就在想,C语言可是最简单的语言。怎么不用C语言写呢。首先我们必须要知道。在设计单片机游戏时。我们要知道设计游戏的概念,对于大部分单片机+LCD的游戏设计,基本采用前后台方式,就是一个台中断,一个台循环 ,LCD部分基本是以固定点阵形式设计,什么叫固定点阵??首先先明确,我们设计的游戏不是什 么魔兽争霸或CS,而是黑白形式的固定点阵游戏,例如常见著名游戏贪吃蛇或俄罗斯方块。他们的每个点 都是预先就固定下来的,而且是比较大的点,这类专门的游戏机玻璃是经过厂家开模出来 的,有固定的COM,SEG线,然后接到专门的单片机上,例如常用的6502指令集合的单片机,常用的有stc和at系列的他们的资料你可以到去查询。对于业余设计的游戏,我们一般用如128*64的LCD来显示,那么我们设计的时候首先应该把 这个128*64的LCD分块,也就是分出固定点阵出来。LCD的基本点阵是128*64,就是& ¥##¥总之就是好多个点啦,但我们事实上不一定要运算这么多个点,除非你做的游戏很 有看头。例如你只用左边64*64的地方来做贪吃蛇,那么你打算你的贪吃蛇的活动空间是多 少呢?如果是8*8个点的话,算一下就是每个点64/8,64/8,也就是8*8个基本点阵,不过想好玩一点,当然就是要有16*16个点的活动空间啦,那么每个固定点阵就要占4*4的基本 点阵了。要注意,这些4*4的东西在64*64LCD上共16*16个,每个都要用来独立运算。第二就是时钟:这个其实是游戏的速度,对于一般的弱智类游戏机,他也代表了难度,物体在每个时钟到 达的时候就传动一次,例如俄罗斯方块没个时刻向下跑一层。赛车游戏每个时刻想前走一 步。一般这类时钟的时间在0.X秒到1秒之间,物体有规律地匀速运动,让人看到感觉是连动。本文引用地址:第三运动:在这里,我先介绍两种比较普遍的弱智游戏机的物体运动规则:柔体传动,刚体传动。 刚体传动 代表作是俄罗斯方块,所谓刚体,就是硬硬的一个东东,运动的时候也不怎么旋转(注 意,俄罗斯方块是会旋转,但其实他是没有经过算法的旋转,纯提取数组的方式,也就是 把一个放块做成4个模式的点阵结构,其实就是4个方向,呵呵)对于刚体的传动,在每个 时钟到达的时候向一个方向(很可能是用户输入的)运动一个固定点阵。如果以坐标来表 达,就是物体的所有基本点阵同时向一个方向(X或Y)移动一个单位。 柔体传动代表作是贪吃蛇,贪吃蛇跑动的时候并不是整条蛇向一个方向动的(呵呵,蛇蛇身体僵硬 了),而是在每个时钟的到来,物体由能量头带动(如蛇头),每个点的方向都向下一个 点传播,然后自己向新的方向走动一步,走动后,下一个点由于得到了上一个点的方向并同样地运动一步,所以,他会马上填补上一个点的地方,如此类推。 说的好象没说,看不懂没关系,因为实际的算法可以简化(傻瓜才会一个个点来走的), 实际上在设计贪吃蛇的时候,只需要把蛇尾巴的那个点阵去掉,然后在蛇头的新方向放一 个点阵就是了。期间需要记录下每个蛇身的固定点阵的位置,并且在每个运动时刻过后刷 新一次每个点的位置。第四显示接口: 我们用的一般是点阵式LCD,就是一大片点点,128*64,132*64,240*128等等等等啦,这 些又叫条屏,就是一写就写一条&&8个点(有的也提供写一个点的功能,但贵,至少我没 有),那么如果你只想写一个点怎么办?那就得先把这个点所在的条读出来,然后通过 与,或,的运算后,再放回到LCD上,这时候就要涉及到一个读LCD的问题了,有的LCD提供 读的功能,你写过什么在上面他记的很清楚,但有的便宜货 就不行了,那么我们怎么办?没关系,你在内存中提取出一片空间,虚拟一个LCD出来,每 次写在真实LCD上面的时候,也同时写到内存的哪个虚拟LCD上,那么你要读出LCD的值的时 候实际就是读出虚拟LD上的数据,然后与或后,再重新写到LCD上,记得也要写到虚拟LCD 上哦。你可以把这片缓冲叫做显存,第五。游戏流程:蛇向一个固定方向进行柔体传动,没个运动时钟到达要做:1。判断食物标志,没有食物了 就放一个,放的时候判断,不能和蛇身重叠 2。得到用户按键值,蛇走一步,并判断是否 撞死了,没撞死,再判断是否吃到东西了,没有吃到,就等下一个运动时钟,吃了?就增 长一点。置一个没有食物的标志。然后等待下一个时刻的来临。 呵呵,其实程序就是这么简单,基本设计只有LCD部分和按键部分是和单片机有关的,其他 都是程序思维和算法。对于菜鸟来说,难度在于思维,而不是单片机。本程序源代码可从/bbs/dpj-18901-1.html处下载。仿真效果如下:
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一想用c语言编一个贪吃蛇的游戏 求大神帮忙【codeblocks吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:14,005贴子:
想用c语言编一个贪吃蛇的游戏 求大神帮忙收藏
想用c编一个贪吃蛇 百度上搜到的都是需要用到graphics的 有没有大神能用最普通的codeblocks编一个贪吃蛇
AutoTDS-V1型全自动热解吸仪是一款20位常温二次全自动热解吸仪,气路采....
求大神帮忙啊 或者怎么让codeblocks能引用graphics.h这个头文件
求大神帮忙啊
求大神帮忙啊
求大神帮忙啊
我也想知道/(ㄒoㄒ)/~~楼主成功了吗?
安装一个easyx就可以用了
楼主,有人回答的话记得艾特一下我,大恩大德!!
网上找的到的
大皇帝页游新区入口,策略游戏选大皇帝,点击领取礼包,新服送首冲高返利!
#include&iostream&#include&windows.h&#include&time.h&#include&conio.h&// 刷新当前屏幕inline void Refresh(char q[][22], int grade, int gamespeed){
system(&cls&);
for(i=0;i&22;i++)
cout && &\t&;
for(j=0;j&22;j++)
cout&&q[i][j]&&' ';
输出贪吃蛇棋盘
if(i==0) cout && &\t等级为:& &&
if(i==4) cout && &\t自动前进时间&;
if(i==6) cout && &\t间隔为:& && gamespeed && &ms&;
}}int main(){
char tcsQipan[22][22];
贪吃蛇棋盘是一个二维数组(如22*22,包括墙壁)
for(i=1;i&=20;i++)
for(j=1;j&=20;j++)
tcsQipan[i][j]=' ';
初始化贪吃蛇棋盘中间空白部分
for(i=0;i&=21;i++)
tcsQipan[0][i] = tcsQipan[21][i] = '-';
//初始化贪吃蛇棋盘上下墙壁
for(i=1;i&=20;i++)
tcsQipan[i][0] = tcsQipan[i][21] = '|';
//初始化贪吃蛇棋盘左右墙壁
int tcsZuobiao[2][100];
//蛇的坐标数组
for(i=0; i&4; i++) {
tcsZuobiao[0][i] = 1;
tcsZuobiao[1][i] = i + 1;
int head = 3,tail = 0;
for(i=1;i&=3;i++)
tcsQipan[1][i]='*';
tcsQipan[1][4]='#';
int x1, y1;
// 随机出米
srand(time(0));
x1=rand()%20+1;
y1=rand()%20+1;
}while(tcsQipan[x1][y1]!=' ');
tcsQipan[x1][y1]='*';
cout&&&\n\n\t\t贪吃蛇游戏即将开始 !&&&//准备开始;;
int grade = 1, length = 4;
int gamespeed = 500;
//前进时间间隔
for(i=3;i&=0;i--)
start=clock();
while(clock()-start&=1000)
system(&cls&);
cout && &\n\n\t\t进入倒计时:& && i &&
Refresh(tcsQipan,grade,gamespeed);
char direction = 77;
// 初始情况下,向右运动
while(1) {
timeover = 1;
start = clock();
while((timeover=(clock()-start&=gamespeed))&&!kbhit())
//如果有键按下或时间超过自动前进时间间隔则终止循环
if(timeover)
getch();direction = getch();
switch(direction)
case 72: x= tcsZuobiao[0][head]-1; y= tcsZuobiao[1][head];
case 80: x= tcsZuobiao[0][head]+1; y= tcsZuobiao[1][head];
case 75: x= tcsZuobiao[0][head]; y= tcsZuobiao[1][head]-1;
case 77: x= tcsZuobiao[0][head]; y= tcsZuobiao[1][head]+1;
if(!(direction==72||direction==80||direction==75 ||direction==77))
按键非方向键
cout && &\tGame over!& && system(&pause&);return 0;
if(x==0 || x==21 ||y==0 || y==21) // 碰到墙壁
cout && &\tGame over!& &&system(&pause&);return 0;
if(tcsQipan[x][y]!=' '&&!(x==x1&&y==y1))//
蛇头碰到蛇身
cout && &\tGame over!& &&system(&pause&);return 0;
if(x==x1 && y==y1)
吃米,长度加1
length ++;
if(length&=8)
length -= 8;
if(gamespeed&=200)
gamespeed = 550 - grade * 50; // 改变自动前进时间间隔
tcsQipan[x][y]= '#';
tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]] = '*';
head = (head+1)%100;
tcsZuobiao[0][head] =
tcsZuobiao[1][head] =
x1=rand()%20+1;
y1=rand()%20+1;
}while(tcsQipan[x1][y1]!=' ');
tcsQipan[x1][y1]='*';
Refresh(tcsQipan,grade,gamespeed);
tcsQipan [tcsZuobiao[0][tail]][tcsZuobiao[1][tail]]=' ';
tail=(tail+1)%100;
tcsQipan [tcsZuobiao[0][head]][tcsZuobiao[1][head]]='*';
head=(head+1)%100;
tcsZuobiao[0][head]=x;
tcsZuobiao[1][head]=y;
tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]]='#';
Refresh(tcsQipan,grade,gamespeed);
return 0;}
登录百度帐号推荐应用&>&贪吃蛇小游戏,纯C语言编写
贪吃蛇小游戏,纯C语言编写
上传大小:5KB
经典的贪吃蛇源代码,代码容易看懂,操作方便。C语言编写,是做课设和练习编写游戏的首选。希望大家评分。
综合评分:4(2位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有1条
调用了graphics.h,就不算纯C了
审核通过送C币
5个经典的C语言课程设计
创建者:ewrest
上传者其他资源上传者专辑
兔子过河C语言代码小游戏
开发技术热门标签
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
贪吃蛇小游戏,纯C语言编写
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
贪吃蛇小游戏,纯C语言编写上传时间:
【C语言贪吃蛇】1、游戏制作思路
专辑名称:
专辑创建者:
视频数:17
纯C语言控制台贪吃蛇教程,学会C语言就可以写,
56官方微信
扫一扫发现精彩(千夫影子)
第三方登录:}

我要回帖

更多关于 用vb编写贪吃蛇 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信