设计思路
整体架构
本次课程设计我们小组完成了8086汇编实现的带有图形界面的五子棋游戏程序。我们实现的核心功能有人机对战、联机对战。我们的程序主要分为两个部分:汇编游戏框架和五子棋游戏设计。

我们发现,使用汇编语言,在8086 PC上实现五子棋,比起在现代的软硬件设施上,要困难很多。我们没有各式图形框架甚至游戏框架的支撑,如OpenGL、Unity等,因此渲染图形必须从显存绘制像素点这个层次开始考虑。其次,汇编语言本身相比高级语言更加底层,因此虽然具有更好的灵活性和更大的性能提升空间,但是会在编程中给人带来额外的心智负担,如需要考虑寄存器分配,需要考虑选择哪一种指令更高效,需要考虑如何把乘法优化为加法和移位运算等等。再者,DOS虽然是一个操作系统,但比起现代操作系统的层层抽象,DOS本身的系统调用功能较为局限。因此许多特殊功能,比如串口通信、定时器配置等等,我们仍然需要直接同8259中断控制器芯片、8254定时器芯片、8250串口芯片等一系列外设直接打交道。而另一方面,我们又不能因此过多牺牲游戏本身的设计,如游戏的交互逻辑,游戏的界面等等。如何实现“鱼和熊掌兼得“?
我们解决方案是将系统划分为两个抽象层次。一个是游戏框架层次,一个是游戏设计层次。两个层次虽然都使用汇编语言实现,但是每个层次解决的核心问题不一样。游戏框架层重点解决如何协调系统各个部分运行,提供图元渲染机制,并同各种外设打交道的底层问题——怎么处理键盘或者串口接收中断?怎么通过配置定时器芯片的频率来发出不同音调的声音?怎么通过操控显存来绘制图元?等。而游戏设计层重点解决游戏的界面设计以及交互逻辑设计——游戏由哪些视/听觉元素构成?这些视/听觉元素的出现、消失、动画等是通过何种逻辑,在外部事件(如键盘输入)的驱动下来进行控制的?如何设计AI算法?等。每个层次都由专门的

8




被折叠的 条评论
为什么被折叠?



