8086 贪吃蛇

本文介绍了如何使用8086汇编语言在MsDos 7.1或DOSBox环境下编写贪吃蛇游戏。玩家可以通过键盘方向键来控制蛇的移动。文章包含游戏的演示和完整的汇编代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8086 贪吃蛇

运行环境:MsDos 7.1 或 DOSBox

键盘方向键控制

演示

snake0
snake1

汇编代码

assume cs:code, ds:data, ss:stack

; gpu prop byte
; 7    6  5  4  3  2  1  0
; BL   R  G  B  I  R  G  B
;  |   \_____/  |  \_____/
; 闪烁   背景  高亮  前景

; game map: 25 x 25
; snake bodys max: 23 x 23

data segment
  score dw 0             ; game score
  scpre db 'score:'      ; [6] score prefix
  dead db 'game over!'   ; [10] game over
  food dw 0              ; snake food: x|y
  sdct db 0              ; snake direction 0001-up 0010-down 0100-left 1000-right
  slen db 0              ; snake length
  body dw 529 dup(0)     ; snake bodys: x|y, ...
data ends

stack segment
  dw 20 dup(0)
stack ends

code segment
start:
  mov ax, data
  mov ds, ax                ; init data seg
  
  mov ax, 0b800h            
  mov es, ax                ; save gpu base addr
  
  mov ax, stack
  mov ss, ax
  mov sp, 20                ; init stack
  
  call clear
  
  mov ah, 24
  mov al, 24
  push ax
  call draw_map
  
  call create_snake
  call draw_snake
  
  call create_food
  call draw_food

  call start_game
  call show_score

end_game:
  call game_over

  mov ax, 4c00h
  int 21h
  
; # start game
; void -> void
start_game:
  mov cx, 50 
sg0:
  call listen_key  
  call clear_last
  call move_snake
  call is_dead
  call draw_snake
  call is_eat
  call show_score
  call sleep
  loop sg0
  ret

; # show game over alert
; void -> void
game_over:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值