汇编实现贪吃蛇

总体思路

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

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

显示小蛇

主要是显卡文本模式。在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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用[1]:根据题主的需求构思,实现贪吃蛇的逻辑可以分为以下几个步骤。首先,需要确定游戏元素,包括、墙、食物、分数和基本的提示信息。然后,根据用户故事,实现的移动和交互,包括撞墙死亡、吃食物增加分数和身体长度、通过键盘控制的移动方向以及通过按下esc键退出游戏。最后,需要进行界面初始化和游戏的开始和更新控制。[1] 引用[2]:在具体的实现过程中,可以创建和食物的结构体,并进行初始化。的结构体可以包括长度、坐标和方向等属性。食物的结构体可以包括坐标属性。然后,可以进行界面的初始化,包括游戏界面的显示和食物的初始化。最后,通过控制程序的更新周期来实现游戏的开始和进行。[2] 引用[3]:在使用Golang实现贪吃蛇的过程中,可以借助C语言的控制台程序来实现一些特定的功能,比如移动控制台的光标、获取键盘输入和隐藏控制台光标等。可以创建一个clib包来引入C语言的控制台程序,并在Go中嵌入C语言的函数来调用这些功能。例如,可以使用C.gotoxy函数来设置控制台光标的位置,使用C.direct函数来获取键盘输入的字符,使用C.hideCursor函数来隐藏控制台光标等。[3] 综上所述,可以使用Golang来实现贪吃蛇游戏,通过创建和食物的结构体,并进行初始化,然后进行界面的初始化和游戏的开始和更新控制。同时,可以借助C语言的控制台程序来实现一些特定的功能。希望这些信息对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值