汇编实现贪吃蛇

总体思路

目标是做一个最基础的贪吃蛇,做一条会移动的小蛇也就够了。

  • 显示小蛇
  • 让他固定朝着一个头的方向移动
  • 非阻塞输入
  • 控制小蛇移动

显示小蛇

主要是显卡文本模式。在8086结构中,显存位于内存地址的0xB8000——0xBFFFF处,为了在屏幕上显示出文字,我们需要把必要的信息加载到内存以0xB8000起始的位置。

显卡初始化时,会形成一个25x80的文本模式(25行、80列),这部分内容的信息来自内存0xB8000——0xB8‭FA0‬,由于屏幕上的每一个字符需要2个连续字节表示,一共25x80x2 = 4000B的空间。

两个连续字节包含的信息如下:

低字节:字符的ASCII码,由于ASCII码只有7bit,这一字节的最高位置为0;其中有一部分表示信息的代码是无法显示的。
高字节:字符的属性,表示为K R G B I R G B。低4位定义的是前景色,高4位定义的是背景色,K为闪烁位,I为亮度位。
	mov ax,0b800h
    mov es,ax
    
    mov bl,' '
    mov bh,71h
    mov si,0
	mov es:[si],bx

上面可以实现一个像素的显示了,多个也就可以构成小蛇了。下一步是小蛇的移动问题。

小蛇移动

更改存放小蛇身体和头部位置的数组。
小蛇的尾部位置设为黑色,因为会朝着头的方向前进,然后从尾部到头部,靠近头的坐标给后面,头的坐标朝着头的方向前进。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值