📄 park13.asm
字号:
add ax,temp
mov temp,20
sub ax,temp
mov si,ax
mov al,1
cmp al,[si]
jz run5
jmp near ptr mov_down_b
run5:
push cx
push b_color
mov cx,0
mov b_color,cx
call rectb
mov cx,b_y
sub cx,b_size
mov b_y,cx
pop b_color
pop cx
mov ax,0
mov ax,16
sub col_b,ax
jmp near ptr draw
;****************************************************************down
mov_down_b:
cmp b_y,lim_down
jbe goon13
jmp near ptr draw
goon13:
push ax
push cx
mov ax,0
mov cx,0
mov ax,col_b
mov cl,16
div cl
mov cl,20
mov ah,0
mul cl
mov temp,ax
mov cl,16
mov ax,row_b
div cl
mov ah,0
add ax,temp
MOV temp,OFFSET MS
add ax,temp
mov temp,20
add ax,temp
mov si,ax
mov al,1
cmp al,[si]
jz run6
jmp near ptr mov_left_b
run6:
push cx
push b_color
mov cx,0
mov b_color,cx
call rectb ;在原来的地方重画
mov cx,b_y
add cx,b_size
mov b_y,cx
pop b_color
pop cx
mov ax,0
mov ax,16
add col_b,ax
jmp near ptr draw
;***************************************************************left
mov_left_b:
cmp b_x,lim_left
jae goon14
jmp near ptr draw
goon14:
push ax
push cx
mov ax,0
mov cx,0
mov ax,col_b
mov cl,16
div cl
mov cl,20
mov ah,0
mul cl
mov temp,ax
mov cl,16
mov ax,row_b
div cl
mov ah,0
add ax,temp
MOV temp,OFFSET MS
add ax,temp
dec ax
mov si,ax
mov al,1
cmp al,[si]
jz run7
jmp near ptr mov_right_b
run7:
push cx
push b_color
mov cx,0
mov b_color,cx
call rectb
mov cx,b_x
sub cx,b_size
mov b_x,cx
pop b_color
pop cx
mov ax,0
mov ax,16
sub row_b,ax
jmp near ptr draw
;***************************************************************right
mov_right_b:
cmp b_x,lim_right
jbe goon15
jmp near ptr draw
goon15:
push ax
push cx
mov ax,0
mov cx,0
mov ax,col_b
mov cl,16
div cl
mov cl,20
mov ah,0
mul cl
mov temp,ax
mov cl,16
mov ax,row_b
div cl
mov ah,0
add ax,temp
MOV temp,OFFSET MS
add ax,temp
inc ax
mov si,ax
mov al,1
cmp al,[si]
jz run8
jmp near ptr mov_up_b
run8:
pop cx
pop ax
push cx
push b_color
mov cx,0
mov b_color,cx
call rectb
mov cx,b_x
add cx,b_size
mov b_x,cx
pop b_color
pop cx
mov ax,0
mov ax,16
add row_b,ax
jmp near ptr draw
ret
judgeb endp
;*************************************************************************************
;******************************画地图****************************************************
draw_map proc near
CALL frame
MOV SI,OFFSET MS
MOV DX,20
LOOP1:
PUSH DX
MOV CX,20
LOOP2:
PUSH CX
MOV AL,[SI]
CMP AL,3
JE drawhole
CMP AL,2
JE drawgold
CMP AL,1
JE LOOP2OUT
drawgold:
CALL gold
jmp LOOP2OUT
drawhole:
call hole
LOOP2OUT:
mov ax,16
add X,ax
INC SI
POP CX
LOOP LOOP2
MOV X,180
mov ax,16
add Y,ax
POP DX
DEC DX
JNZ LOOP1
draw_map endp
;***********************************************************************************
;**************************按右键时计算操纵方块在地图中位置*****************************************************
count_right proc near
push ax
push cx
mov ax,0
mov cx,0
mov ax,col
mov cl,16
div cl
mov cl,20
mov ah,0
mul cl
mov temp,ax
mov cl,16
mov ax,row
div cl
mov ah,0
add ax,temp
MOV temp,OFFSET MS
add ax,temp
inc ax
mov si,ax
mov al,3
cmp al,[si]
jnz break1
jmp near ptr exit
break1:
mov al,1
cmp al,[si]
jz continue1
mov ax,gold_number
dec ax
mov gold_number,ax
continue1:
pop cx
pop ax
ret
count_right endp
;**************************************************************************
;*********************按左键时计算操纵方块在地图中位置********************************************************
count_left proc near
push ax
push cx
mov ax,0
mov cx,0
mov ax,col
mov cl,16
div cl
mov cl,20
mov ah,0
mul cl
mov temp,ax
mov cl,16
mov ax,row
div cl
mov ah,0
add ax,temp
MOV temp,OFFSET MS
add ax,temp
dec ax
mov si,ax
mov al,3
cmp al,[si]
jnz break2
jmp near ptr exit
break2:
mov al,1
cmp al,[si]
jz continue2
mov ax,gold_number
dec ax
mov gold_number,ax
continue2:
pop cx
pop ax
ret
count_left endp
;*********************************************************************************
;******************************按上键时计算操纵方块在地图中位置****************************************************
count_up proc near
push ax
push cx
mov ax,0
mov cx,0
mov ax,col
mov cl,16
div cl
mov cl,20
mov ah,0
mul cl
mov temp,ax
mov cl,16
mov ax,row
div cl
mov ah,0
add ax,temp
MOV temp,OFFSET MS
add ax,temp
mov temp,20
sub ax,temp
mov si,ax
mov al,3
cmp al,[si]
jnz break3
jmp near ptr exit
break3:
mov al,1
cmp al,[si]
jz continue3
mov ax,gold_number
dec ax
mov gold_number,ax
continue3:
pop cx
pop ax
ret
count_up endp
;****************************************************************************
;**************************按下键时计算操纵方块在地图中位置************************************************
count_down proc near
push ax
push cx
mov ax,0
mov cx,0
mov ax,col
mov cl,16
div cl
mov cl,20
mov ah,0
mul cl
mov temp,ax
mov cl,16
mov ax,row
div cl
mov ah,0
add ax,temp
MOV temp,OFFSET MS
add ax,temp
mov temp,20
add ax,temp
mov si,ax
mov al,3
cmp al,[si]
jnz break4
jmp near ptr exit
break4:
mov al,1
cmp al,[si]
jz continue4
mov ax,gold_number
dec ax
mov gold_number,ax
continue4:
pop cx
pop ax
ret
count_down endp
;**************************************************************************
;*******************************画宝物*********************************************
gold proc near
push ax
push bx
push cx
push dx
mov cx,x
inc cx
inc cx
inc cx
inc cx
inc cx ;5 lie
mov dx,y
inc dx
inc dx
inc dx ;3 hang
push di
push si
mov di,0
mov si,0
back00:
mov ax,gold_color ;gold_color
mov ah,0ch
mov bh,0
int 10h
inc di
inc cx
cmp di,8 ;13 is the width of block
jnz back00
;-----------------------------
mov cx,x
inc cx
inc cx
inc cx
inc cx ;4 lie
mov dx,y
inc dx
inc dx
inc dx
inc dx ;4 hang
mov di,0
mov si,0
back01:
mov ax,gold_color ;gold_color
mov ah,0ch
mov bh,0
int 10h
inc di
inc cx
cmp di,10
jnz back01
;--------------------------------------------------------
mov cx,x
inc cx
inc cx
inc cx ;3 lie
mov dx,y
inc dx
inc dx
inc dx
inc dx
inc dx ;5 hang
mov di,0
mov si,0
back02:
mov ax,gold_color ;gold_color
mov ah,0ch
mov bh,0
int 10h
inc di
inc cx
cmp di,12
jnz back02
;--------------------------------------------------------
mov cx,x
inc cx
inc cx ;2 lie
mov dx,y
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx ;6 hang
mov di,0
mov si,0
back03:
mov ax,gold_color ;gold_color
mov ah,0ch
mov bh,0
int 10h
inc di
inc cx
cmp di,14
jnz back03
;--------------------------------------------------------
mov cx,x
inc cx ;1 lie
mov dx,y
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx ;7 hang
mov di,0
mov si,0
back04:
mov ax,gold_color ;gold_color
mov ah,0ch
mov bh,0
int 10h
inc di
inc cx
cmp di,16
jnz back04
;--------------------------------------------------------
mov cx,x
inc cx
inc cx ;1 lie
mov dx,y
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx ;7 hang
mov di,0
mov si,0
back05:
mov ax,gold_color ;gold_color
mov ah,0ch
mov bh,0
int 10h
inc di
inc cx
cmp di,14
jnz back05
;--------------------------------------------------------
mov cx,x
inc cx
inc cx
inc cx ;1 lie
mov dx,y
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx ;7 hang
mov di,0
mov si,0
back06:
mov ax,gold_color ;gold_color
mov ah,0ch
mov bh,0
int 10h
inc di
inc cx
cmp di,12
jnz back06
;--------------------------------------------------------
mov cx,x
inc cx
inc cx
inc cx
inc cx ;1 lie
mov dx,y
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx
inc dx ;7 hang
mov di,0
mov si,0
back07:
mov ax,gold_color ;gold_color
mov ah,0ch
mov bh,0
int 10h
inc di
inc cx
cmp di,10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -