body, table{font-family: 微软雅黑; font-size: 13.5pt}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

注:项目源代码和运行截图都放托管在github上了,每一步都有详细的注释,地址:https://github.com/meihao1203/Greedy_Snake
> 注:GREEDY_SNAKE 是基于8086 汇编语言开发的,汇编语言风格是采用《汇编语言》第二版 王爽著;
### Greedy_Snake 要在Intel实模式下运行,所有运行项目前要安装DOSBOX 虚拟出一个8086实模式环境 ###
1. 安装DOSBOX:运行DOSBox0.74-win32-installer.exe即可安装;
2. 将Greedy_Snake clone到本地任意盘,eg:d:\Greedy_Snake
        - mount d:\Greedy_Snake 到一个指定虚拟盘符:
        - `mount k d:\Greedy_Snake`   (why is k? because i like this charactor)
3. 运行G_Snake
        - 在DOSBOX的DOS提示符下键入:
        - `Z:\>K:`(回车)
        - `K:\>cd G_Snake`(回车)
        - 使用masm 5.0工具编译、链接、运行.asm源程序
        - MASM.EXE、LINK.EXE、debug.exe、edit.com都是开发工具,用来编译、链接、调试和编辑代码
4. G_Snake.asm 是最终代码;
        - `masm G_Snake.asm`  (编译游戏)
        - `link G_Snake.obj` (链接游戏)
        - `G_Snake`   (运行游戏)
5. G_Snake.asm分了4个步骤:
         - map.asm 是绘制游戏界面的
         - sMove.asm 是让小蛇响应对应的键盘中断自动移动
         - sMA.asm  是让小蛇响应方向后自动移动
         - G_Snake.asm 是最终程序
----------
### G_Snake.asm 实现了随机出现食物,统计分数,显示小蛇运动方向,响应键盘中断后指定方向自动移动和游戏结束恢复9h键盘中断正常退出  ###
----------
#### 游戏开始界面 ####
![游戏开始界面](https://github.com/meihao1203/Greedy_Snake/blob/master/G_Snake/1.png)
#### 运行吃到6个食物 ####
![游戏运行界面](https://github.com/meihao1203/Greedy_Snake/blob/master/G_Snake/2.png)
#### 游戏结束界面 ####
![游戏结束界面](https://github.com/meihao1203/Greedy_Snake/blob/master/G_Snake/3.png)
----------
注:游戏运行中有可能会卡住不出现食物,这时候是程序通过获取cmos芯片中的秒数来计算得出的食物位置不合理,正在重新获取新的秒数计算新的食物位置;只要不要再按键盘执行中断程序,很快就会恢复;

X86汇编语言实现的贪吃蛇游戏的更多相关文章

  1. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

  2. 用C++实现的贪吃蛇游戏

    我是一个C++初学者,控制台实现了一个贪吃蛇游戏. 代码如下: //"贪吃蛇游戏"V1.0 //李国良于2016年12月29日编写完成 #include <iostream& ...

  3. WebGL实现HTML5的3D贪吃蛇游戏

    js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...

  4. 100行JS实现HTML5的3D贪吃蛇游戏

    js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...

  5. H5实现的可自定义贪吃蛇游戏

    原创游戏,使用lufylegend.js开发 用canvas实现的贪吃蛇游戏,与一般的贪吃蛇游戏不同,图片经过美工设计,代码设计支持扩展和自定义. 游戏元素丰富,包括障碍物(仙人掌),金币(奖励),苹 ...

  6. JS贪吃蛇游戏

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  7. 用OpenGL简单编写的一个最简单贪吃蛇游戏

    刚学OpenGL的时候,写的一个最简单的贪吃蛇游戏代码 如下: //贪吃蛇游戏 #include<stdio.h> #include<stdlib.h> #include< ...

  8. Java贪吃蛇游戏

    package snake.game; import java.awt.CardLayout; import java.awt.Color; import java.awt.Graphics;   i ...

  9. 「JavaScript」手起刀落-一起来写经典的贪吃蛇游戏

    回味 小时候玩的经典贪吃蛇游戏我们印象仍然深刻,谋划了几天,小时候喜欢玩的游戏,长大了终于有能力把他做出来(从来都没有通关过,不知道自己写的程序,是不是能通关了...),好了,闲话不多谈,先来看一下效 ...

随机推荐

  1. Python全栈开发-Day7-面向对象编程2

    本节内容: 1.面向对象高级语法部分 1)静态方法.类方法.属性方法 3)类的特殊方法 4)反射 2.异常处理 3.动态导入模块 静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一 ...

  2. phpstudy2018配置站点后500错误问题

    phpstudy2016没发现这个问题,这是因为新项目要使用laravel,php版本要求7.1,所有换成了2108,但是laravel的项目没问题,原来tp框架的都不能正常访问,最好查看nginx错 ...

  3. 确认OHS版本的方法

    还是 opatch lsinventory 好用 C:\Oracle\Middleware\ohs\OPatch>opatch lsinventory Oracle Interim Patch ...

  4. android ------- TCP与UDP

    TCP TCP(Transmission Control Protocol,传输控制协议) 即传输控制协议,是一种传输层通信协议 特点:面向连接.面向字节流.全双工通信.可靠 面向连接:指的是要使用T ...

  5. lanmp中环境变量的更改方法

    1.vim /etc/profile 改成: export PATH=$PATH:/www/wdlinux/phps/71/bin/ 然后运行: source /etc/profile

  6. apache2反向代理

    1.安装 Apache2 sudo apt-get install apache2 2.重启服务器 sudo /etc/init.d/apache2 restart 3.虚拟主机配置 启用这几个模块 ...

  7. 【PowerDesigner】【6】Table视图同时显示Code和Name

    效果图: —————————————————————— 步骤: 文字版: 1,顶部工具栏Tools→Display Preference 2,Columns→List columns右侧按钮 3,勾选 ...

  8. hadoopMR自定义输入格式

    输入格式 1.输入分片与记录  2.文件输入  3.文本输入  4.二进制输入  5.多文件输入  6.数据库格式输入 详细的介绍:https://blog.csdn.net/py_123456/ar ...

  9. oracle错误整理

    1. ORA-31640: unable to open dump file 解决:原来11g R2的IMPDP 增加了一个参数设置:CLUSTER,在设置了parallel参数>1的情况下, ...

  10. Hadoop设置任务执行队列及优先级

    Hive设置方法: SET mapreduce.job.queuename=root.up; SET mapreduce.job.priority=HIGH; set tez.queue.name=c ...