题目:二十一点游戏模拟程序设计
任务:用汇编语言编写模拟实现二十一点游戏的程序。
思路:用屏幕显示当前牌点情况和操作信息,然后用键盘输入游戏者的操作。
流程:
1、    给参加游戏的人基本积分为100分。
2、    首先电脑自身产生一张底牌(不显示)。
3、    给参加游戏的人发一张牌(显示)。
4、    询问游戏者是否要牌,若不要牌,则跳转第9步骤。
5、    重复第3个步骤。
6、    计算牌点的和。(J、Q、K记10点,2~10分别记2~10点。)
7、    若牌点和最小值大于21点,跳转第14步骤。
8、    重复步骤4~7。
9、    判断电脑自身的牌点最大值是否大于游戏者,若大于,则跳转第14步骤。
10、    电脑自身再发一张牌(显示)。
11、    重复第6步骤
12、    若牌点和最小值大于21点,跳转第15步骤。
13、    重复步骤9~12。
14、    提示电脑嬴的信息,扣除游戏者积分10分,然后跳转第16步骤。
15、    提示游戏者嬴的信息,奖励游戏者积分10分。
16、    显示电脑底牌和当前游戏者剩余积分。
17、    询问是否继续玩下一盘,若要,重复步骤2~17。
18、    结束。
基本要求:
a)    每次发牌时随机单张生成A~K。
b)    A记1点。
扩展要求:
a)    首先随机生成52张牌的序列(A~K各4张),然后按照该序列顺序发牌。
b)    A记1点或11点。
c)    在给游戏者发牌前,游戏者可增加奖励或扣除的积分数。
提示:(仅给出参考,可不受此约束,以实现要求为最终目的。)
    16位随机数原理如图。D0~D15的初值通过读8253的0#通道的计数值确定。
根据当前D15 D14D12 D3作计算(D3  D12)(D14  D15),结果作为移入值参与对D0~D15 进行的逻辑左移运算,得到新的随机数。
    屏幕显示、光标移动控制和键盘操作可通过DOS和BIOS系统调用实现。