这是很早以前写的一个,汇编小游戏,觉得很有创新性,全部都用字符操作完成,不用切换分辨率去作图.在dos窗口下
就可以玩.不过有个缺点就是在不同频率CPU的机子上会有不同的速度,这个可以靠调节延时程序,来实现.所谓延时
就是设置,很多循环,以前在dos下好像都是这么做的.对cpu很浪费呀.很久没看汇编了,自己写的代码都快看不明白了.
鄙视自己当时的编码.简直就是一团糟.
;
****************************************************************************************************
;文件名:snake.asm
;
;作者:Geniusdot
;
;版本号: 1.0
;
; *****************************************************************************************************
DATA SEGMENT
dw 0 , 0
snk db 1
blk db 32
food db 3
tal1 db 4
tal2 db 2
adrs db 5
len db ?
pst db ?
addrs dw ?
frow db ?
fcol db ?
hwrt db ?
gmov db ' game over press r to restart press q to quit $ '
score1 db ' score :$ '
score2 db ?
score0 db 1
zero db 48
writer db ' Developer: Geniusdot $ '
email db ' e-mail: geniusdot@gmail.com$ '
msg1 db ' The way to play the game:$ '
way db ' press w to up ,press s to down,press a to left,press d to right$ '
msg db ' Press any key(except a,s,d,w) to start$ '
DATA ENDS
STACK SEGMENT stack
db 200 dup( 0 )
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
start:
mov ax,data
mov ds,ax
mov ax, 0
mov es,ax
mov frow, 10
mov fcol, 6
mov dh, 10
mov dl, 26
mov ah, 2
mov bh, 0
int 10h
mov ah, 9
lea dx,msg1
int 21h
mov dh, 11
mov dl, 7
mov ah, 2
mov bh, 0
int 10h
mov ah, 9
lea dx,way
int 21h
mov dh, 12
mov dl, 20
mov ah, 2
mov bh, 0
int 10h
mov ah, 9
lea dx,msg
int
;文件名:snake.asm
;
;作者:Geniusdot
;
;版本号: 1.0
;
; *****************************************************************************************************
DATA SEGMENT
dw 0 , 0
snk db 1
blk db 32
food db 3
tal1 db 4
tal2 db 2
adrs db 5
len db ?
pst db ?
addrs dw ?
frow db ?
fcol db ?
hwrt db ?
gmov db ' game over press r to restart press q to quit $ '
score1 db ' score :$ '
score2 db ?
score0 db 1
zero db 48
writer db ' Developer: Geniusdot $ '
email db ' e-mail: geniusdot@gmail.com$ '
msg1 db ' The way to play the game:$ '
way db ' press w to up ,press s to down,press a to left,press d to right$ '
msg db ' Press any key(except a,s,d,w) to start$ '
DATA ENDS
STACK SEGMENT stack
db 200 dup( 0 )
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
start:
mov ax,data
mov ds,ax
mov ax, 0
mov es,ax
mov frow, 10
mov fcol, 6
mov dh, 10
mov dl, 26
mov ah, 2
mov bh, 0
int 10h
mov ah, 9
lea dx,msg1
int 21h
mov dh, 11
mov dl, 7
mov ah, 2
mov bh, 0
int 10h
mov ah, 9
lea dx,way
int 21h
mov dh, 12
mov dl, 20
mov ah, 2
mov bh, 0
int 10h
mov ah, 9
lea dx,msg
int