回 帖 发 新 帖 刷新版面

主题:[原创]原创贪吃蛇大家近来看看交流交流

刚完成了一个小游戏贪吃蛇,今天做了点修改拿出来给大家看看,不足之处还望大家指教,这是首次公布,此游戏系本人原创,
经过我调试绝对可正常运行,本游戏未加入改变蛇的速度的因素,有兴趣的朋友只要改下延时程序并定义一个变量就可以了,
下面有连接后的游戏程序请大家参考。

;****************************************************************************
;文件名:glutsnake.asm  
;
;作者:geniusdot
;
;版本号:1.0
;
;说明:这是一个贪吃蛇游戏的汇编源代码,游戏开始后有操作说明
;
;最后修改日期:2005.8.13
;
;e-mail:wizardable@yahoo.com
;
;****************************************************************************
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 'writer:liu jing chao    $'
email db 'e-mail: wizardable@yahoo.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 21h
mov ah,0
int 16h

mov ah,6
mov al,0
mov ch,0
mov cl,0
mov dh,24
mov dl,79
mov bh,10
int 10h
mov dh,0
mov dl,0
mov ah,2
mov bh,0
int 10h
mov ah,9
lea dx,score1
int 21h
mov dl,15
mov ah,2
mov bh,0
int 10h
mov ah,9
lea dx,writer
int 21h
mov ah,9
lea dx,email
int 21h
mov score2,48

push es:[9*4]                           ;将原int9入口地址保存
pop ds:[0]
push es:[9*4+2]
pop ds:[2]

mov word ptr es:[9*4],offset int9                    ;更改中断向量表
mov es:[9*4+2],cs


jmp aa

write macro  row,col,cnt                    ;宏定义用于向当前光标处输出字符
  push bx
  push cx
  push dx
  mov dh,row
  mov dl,col
  mov ah,2
  mov bh,0
  int 10h
  mov ah,9
  mov bl,11
  mov cx,1
  lea di,cnt    ;50
  mov al,[di]
  int 10h
  pop dx
  pop cx
  pop bx
endm

回复列表 (共18个回复)

11 楼

好东西

12 楼

楼主让我开了眼界了,好长的程序!
这么长的程序我以前想都不会去想的。
自己还任重道远啊![em2]

13 楼

有些地方看不明白

14 楼

好久没来了,如果谁对我的程序有疑问(具体一点最好)可以提出来,我将尽力回答。

15 楼

程序中有个不足,当选择相反方向转向的时候应该是失败结束了,这个程序中没有相应的反应处理!!还有,当蛇运行到屏幕上半部和下半部的时候为什么速度会不一样呢?这个地方要是还改进下就更好了!!
不过已经相当厉害了!!佩服佩服!!

16 楼

支持一下,楼主!!!我现在也在用BC 3.0做这个呢~~哈哈……

17 楼

支持一下楼主,我也正在用BC 3.0做这个游戏呢……

18 楼

延时子程序写的不是很好,在我的机器上面太快了,你可以采用硬件来完成延时,那样会好很多!

我来回复

您尚未登录,请登录后再回复。点此登录或注册