请问用单片机仿真推箱子游戏导入的C语言程序的算法是什么?

我做的是基于单片机的推箱子游戏设计,但是苦于C语言不精,对于这个的算法不了解,所以想问一下各位这个的算法是什么,如何算出推箱子还有人的一步到下一步的位置,再用C语言写出来... 我做的是基于单片机的推箱子游戏设计,但是苦于C语言不精,对于这个的算法不了解,所以想问一下各位这个的算法是什么,如何算出推箱子还有人的一步到下一步的位置,再用C语言写出来?
那个算法就是指C语言函数还是说是有计算公式的数学函数?
如果好的话,我还会追加分数的。谢谢各位啦。
我的邮箱是zhuzhuzhanghao@126.com
请那位仁兄发发。谢啦。
展开
 我来答
cspch
2009-03-04 · TA获得超过962个赞
知道小有建树答主
回答量:547
采纳率:0%
帮助的人:501万
展开全部

我这有个用proteus模拟的 包括源程序和电路图 

你留个邮箱吧,给你发过去

已经发了

Nick_Jiang
2009-02-26 · TA获得超过293个赞
知道答主
回答量:144
采纳率:0%
帮助的人:46万
展开全部
主要采用坐标式计算,移动只有4个方向,然后判断移动方向是否有效......

给你一段程序参考吧,完整的代码就算了``` 该函数是关于移动处理的

static void GameMove( char dx, char dy )
{
unsigned char x, y, n ;
if( f_GameDone )
return ;
if( g_GameSteps == 0xFFFF )
return ;
for( y = 1 ; y < 7 ; y ++ )
for( x = 1 ; x < 9 ; x ++ )
if( g_GameBuf[y][x] & 8 )
{
n = g_GameBuf[y+dy][x+dx] ;
if( n & 1 )
return ;
g_GameUndo = 0 ;
if( n & 4 )
{
if( g_GameBuf[y+dy+dy][x+dx+dx] & 5 )
return ;
g_GameBuf[y+dy][x+dx] &= 0xFB ;
g_GameBuf[y+dy+dy][x+dx+dx] |= 4 ;
g_GameUndo = 0x80 ;
}
g_GameBuf[y][x] &= 0xF7 ;
g_GameBuf[y+dy][x+dx] |= 8 ;
g_GameUndo |= ( ((unsigned char)(dx+1)<<2) | (unsigned char)(dy+1) ) ;

g_GameSteps ++ ;
GameDoneCheck() ;
return ;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高金山
2009-02-26 · TA获得超过1万个赞
知道大有可为答主
回答量:4101
采纳率:0%
帮助的人:1698万
展开全部
这个不需要算法的吧。

除非你的陈程序有自动求解的功能。

就是回溯的思想啊,跟人手工找解法一样。
当一种方法走不通了,就重新找一种方法,直到找到,或者找遍。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapp9TIcunqu2xxCv
2009-03-02 · TA获得超过1094个赞
知道小有建树答主
回答量:410
采纳率:100%
帮助的人:487万
展开全部
单片机的c语言跟别的不一样????郁闷。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式