主题:二十一点游戏模拟程序设计 ASM
题目:二十一点游戏模拟程序设计
任务:用汇编语言编写模拟实现二十一点游戏的程序。
思路:用屏幕显示当前牌点情况和操作信息,然后用键盘输入游戏者的操作。
流程:
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系统调用实现。
任务:用汇编语言编写模拟实现二十一点游戏的程序。
思路:用屏幕显示当前牌点情况和操作信息,然后用键盘输入游戏者的操作。
流程:
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系统调用实现。