linux编写弹球游戏,汇编写的DOS弹球游戏
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
;左移右移End键结束游戏
;编译环境 TASM3.0 编译成.com文件比较好!
sleep macro timeb;延时宏指令
push cx
mov cx, timeb
call waits
pop cx
endm
cls macro ;清屏宏指令
push ax
push bx
push cx
push dx
mov ah, 06H
mov al, 0
mov ch, 0
mov cl, 0
mov dh, 30h
mov dl, 5fh
mov bh, 0fh
int 10H
pop dx
pop cx
pop bx
pop ax
endm
drawRect macro x, y, w, h, att;绘图宏指令
push ax
push bx
push cx
push dx
mov ah, 06h
mov ch, y
mov cl, x
Call SafeXY;保证坐标安全
mov dl, cl
mov dh, ch
add dl, w
add dh, h
mov al, dh
sub al, ch
mov bh, att
int 10H
pop dx
pop cx
pop bx
pop ax
endm;==========主程序开始===========
Code segment USE16
assume cs:code, ds:code
org 100H
start:
mov dl, 1;dl,dh寄存器作为全局坐标增量
mov dh, 1
for1: cls;所有操作全部在for1 循环里
push cx;双For绘制砖块
mov cx, 4
mov byte ptr[recy], 0
mov si, offset rec_array
rec1:
push cx
mov cx, 12
mov byte ptr[recx], 0
rec2:
cmp byte ptr[si], 0;判断是否已经被销毁
JZ go4;已经不存在了
drawRectrecx, recy, 6, 2, clr1;还存在
mov bh, byte ptr[ypos];判断小球的临时坐标
mov bl, byte ptr[xpos]
cmp bh, recy;
JG go4;是否进入砖块区
push ax
mov ah, 0
mov al, recx
cmp bl, al
JL te
add al, 6
cmp bl, al
JG te;是否撞上砖块
mov byte ptr[si], 0;将此坐标置为0
NOT dh;小球要反弹
te: pop ax
go4:
add byte ptr[recx], 6
add byte ptr[clr1], 0fh
cmp byte ptr[clr1], 7fh
JL go3
mov byte ptr[clr1], 1fh
go3: inc si
loop rec2
pop cx
add byte ptr[recy], 3
loop rec1
pop cx
IN AL, 60H;读取键盘操作左右
CMP AL, 79
jne ifL
jmp Exit0
ifL: cmp al, 75;操作挡板左右移动
jne ifR
cmp byte ptr[ballx], 6
JL go2
sub byte ptr[ballx], 6
ifR: cmp al, 77
jne go2
cmp byte ptr[ballx], 64
JG go2
add byte ptr[ballx], 6
go2: ;移动小球
add byte ptr [xpos], dl
add byte ptr [ypos], dh
drawRect xpos, ypos, 1, 1, 2eh
drawRect ballx, bally, 12,1, 3eh
sleep 60
push bx
mov bl, byte ptr[xpos]
mov bh, byte ptr[ypos]
b1: cmp bl, 72;撞上右边界?
JL b2
NOT dl
b2: cmp bl, 1;撞上左边界?
JG b3
add byte ptr[xpos], 4
NOT dl
b3: cmp bh, 46;掉到下边界,程序结束!
JL b4
jmp Exit0
b4: cmp bh, 1;撞上顶?
JG b5
add byte ptr[ypos], 2
NOT dh
b5: push ax;判断小球是否撞到挡板
mov ah, 0
mov al, bally
sub al, 12
cmp bh, al
JL be
mov al, ballx
cmp bl, al
JL be
add al, 6
cmp bl, al
JG be
NOT dh
be: pop ax
go1: pop bx
jmp for1;返回for1
Exit0: mov ah, 4ch
int 21h
;===========延时子程序===========
waits proc near
w1: Wait
push cx
mov cx, 0ffh
w2: Wait
push cx
mov cx, 0fffh
w3: Wait
Loop w3
pop cx
Loop w2
pop cx
Loop w1
RET
waits endp
SafeXY proc near;保证坐标安全子程序
d0: cmp ch, 1
jg d1
mov ch, 1
d1: cmp cl, 1
jg d2
mov cl, 1
d2: cmp cl, 64
jl d3
mov cl, 64
d3: ret
SafeXY endp
;============数据段=============
rec_arraydb 4*12 dup(1)
recxdb2
recydb0
clr1db1fh
xpos db12
ypos db7
xddb2
yddb1
ballxdb32
ballydb44
code ends
end start
linux编写弹球游戏,汇编写的DOS弹球游戏相关推荐
- Linux编程——入门级Makefile文件编写
前言 1.在Linux开发环境中,编写Makefile文件是一个必须的技能,虽然现在有好多IDE可以自动生成所需要的Makefile文件,但有时能看懂Makefile文件也是更好的了解项目的编译过程. ...
- Java黑皮书课后题第7章:***7.35(游戏:猜字词游戏)编写一个猜字词游戏,随机产生一个单词,当用户猜测正确后,正确的字母显示出来。当用户猜出一个单词,显示猜错的次数,并询问用户是否继续猜测
***7.35(游戏:猜字词游戏)编写一个猜字词游戏,随机产生一个单词,当用户猜测正确后,正确的字母显示出来.当用户猜出一个单词,显示猜错的次数,并询问用户是否继续猜测 题目 题目描述与运行示例 破题 ...
- Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序
*3.17(游戏:剪刀.石头.布)编写可以玩流行的剪刀-石头-布游戏的程序 题目 题目概述 运行示例 ***特别注意*** 破题 代码 题目 题目概述 *3.17(游戏:剪刀.石头.布)编写可以玩流行 ...
- Linux平台Makefile文件的编写基础篇和GCC参数详解
问:gcc中的-I.是什么意思....看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/incl ...
- 【转】Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现
转自:Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现_Jaster_wisdom的专栏-CSDN博客 之前在这里和这里调用了matlab自带的一些函数,是通过matl ...
- 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,掷两枚骰子之后,计算点数之和。
编写程序模拟掷骰子游戏.已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1.2.3.4.5.6个点,掷两枚骰子之后,计算点数之和.如果第一次掷的点数和为7或11,则游戏者获胜:如果第一次掷的点数 ...
- java语言开发手机游戏_手机上的JAVA游戏和JAVA软件,是电脑上的JAVA语言编写的吗?他们之间有什么联系...
手机上的JAVA游戏和JAVA软件,是电脑上的JAVA语言编写的吗?他们之间有什么联系以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起 ...
- linux的LCD的驱动编写
Framebuffer设备 Framebuffer 翻译过来就是帧缓冲,简称 fb,因 此大家在以后的 Linux 学习中见到"Framebuffer"或者"fb&q ...
- PLC也能制作小游戏----Codesys编写推箱子小游戏
1.序言 前文已介绍,Codesys编程软件拥有的各种编译方式,以及强大的可视化功能,完全可以实现类似的小游戏程序编写,让疲惫的工控人员在调机的空闲之余可以休闲下,本文编写另一个小游戏,也是十几年前的 ...
- Java黑皮书课后题第6章:**6.30(游戏:双骰子)掷双骰子游戏是某场景中非常流行的骰子游戏。编写程序,玩这个游戏的变种
6.30(游戏:双骰子)掷双骰子游戏是某场景中非常流行的骰子游戏.编写程序,玩这个游戏的变种 题目 题目描述 破题 代码 题目 题目描述 6.30(游戏:双骰子)掷双骰子游戏是某场境中非常流行的骰子游 ...
最新文章
- 【设计模式】前端控制器模式
- tc351i 发送短信息 代码
- SQL2008使用json.net实现XML与JSON互转
- ASP.NET Core 集成测试中结合 WebApplicationFactory 使用 SQLite 内存数据库
- 团队作业——项目Alpha版本发布
- 科研这条路:一位数学博士给本科生的建议
- IDEA Translation插件安装及设置鼠标悬浮提示的自动翻译
- Mac 使用常见问题汇集
- VMware Workstation安装虚拟机失败
- 《软件工程》课堂作业:返回一个整数数组中最大字数组的和
- 冲刺第五天 1.6 SUN
- 词汇的理解 —— 英译汉
- Linux使用CLASS_ATTR创建节点
- 浙江省智慧城市建设改变百姓生活
- import java.sql.date_java.sql.Date日期比较
- JAVA三大器之拦截器
- QT 菜单栏、工具栏和状态栏
- 邮件群发软件如何群发邮件,企业邮箱可以吗?
- matlab 贝叶斯网络工具箱的安装
- CSDN论坛如何查看我发布的帖子?