汇编语言推箱子课程设计

2026/4/24 22:22:55

mov esi ,offset Map ; Pos = y*14 + x ; Get M1 mov eax,NewY mov ebx,14D mul bx add eax,NewX mov ebx,eax mov nPos1,eax mov al ,[esi][ebx] mov M1,al ; Get M2 mov eax,NewY2 mov ebx,14D mul bx add eax,NewX2 mov ebx,eax mov nPos2,eax mov al ,[esi][ebx] mov M2,al

mov al,M1

.if (al == MAP_ROAD || al == MAP_OBJECT ) push NewX pop ManXPos push NewY pop ManYPos

.elseif al == MAP_BOX1 ; push box mov al ,M2

.if al == MAP_ROAD ; push ok mov ebx,nPos2

13

mov al,MAP_BOX1 mov [esi][ebx],al mov ebx,nPos1 mov al,MAP_ROAD mov [esi][ebx],al push NewX pop ManXPos push NewY pop ManYPos

.elseif al == MAP_OBJECT mov ebx,nPos2 mov al,MAP_BOX2 mov [esi][ebx],al mov ebx,nPos1 mov al,MAP_ROAD mov [esi][ebx],al push NewX pop ManXPos push NewY pop ManYPos .endif

.elseif al == MAP_BOX2 mov al,M2

.if al == MAP_ROAD mov ebx,nPos2 mov al,MAP_BOX1 mov [esi][ebx],al mov ebx,nPos1 mov al,MAP_OBJECT mov [esi][ebx],al push NewX

14

pop ManXPos push NewY pop ManYPos

.elseif al == MAP_OBJECT mov ebx,nPos2 mov al,MAP_BOX2 mov [esi][ebx],al mov ebx,nPos1 mov al,MAP_OBJECT mov [esi][ebx],al push NewX pop ManXPos push NewY pop ManYPos .endif .else .endif

invoke Repaint pop esi ret

2.3游戏数据模块

(3)函数实现的功能分别是人空地移动箱子到空地、从目的地移动箱子到空地、

从空地移动箱子到目的地和中从目的地移动箱子到目的地。X、y指明小人当前所处的位置,字符a表示移动的方向,有“u”、“d”、“l”和“r”4个值,分别表示向上、下、左、右移动。这几个函数的实现原理大致相似。对于前面两个函数,首先判断移动的方向,人小人所在的位置沿着移动的方向移动一步画小人,移动两步画箱子,并设置状态为“b”;

15

对于后面两个参数,首先判断移动的方向,从小人所在的位置沿着移动方向移动一步画小人,移动两上在目的地画箱子,并设置状态为“i”,表明箱子在目的地上。

ManMove endp

XYtoPos proc x:DWORD,y:DWORD ; pos = y *14 + x Zero-Based mov eax, y mov ebx, 14D mul bx add eax ,x ret XYtoPos endp

Repaint proc LOCAL R:RECT

invoke GetClientRect,hWnd,Addr R invoke InvalidateRect,hWnd,Addr R,0 ret

Repaint endp

Check proc

; Check Success and return true or false LOCAL Result :DWORD push esi push TRUE pop Result lea esi,Map

16


汇编语言推箱子课程设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 汇编语言推箱子课程设计 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219