用汇编语言实现21点游戏基本功能
- 格式:pdf
- 大小:93.38 KB
- 文档页数:9
【实验名称】
用汇编语言实现21点游戏基本功能
【实验目的】
熟悉汇编语言的基本用法
【实验内容】
准确判断任意牌型的大小,辨认玩家与庄家的输赢情况;累计玩家各牌局的输赢比和详细记录。
【实验步骤】
提要:
a)每次发牌时随机单张产生A~K
b)A记1点
c)在给游戏者发牌前,游戏者可增加奖励或扣除的积分
d)用屏幕显示当前牌点情况和操作信息,然后用键盘输入游戏者的操作
流程:
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.结束
子程序调用:
流程图:
【实验程序】
DATA SEGMENT
BUFF1DB'****************************************'
DB''
DB'Welcome you to run this game!'
DB''
DB'****************************************','$' N DB?
JIFEN DB?
DIPAI DB?
PAIDIAN DB?
QH1DB?
QH2DB?
SH DB'10','$'
JK DB'PEI LV(10OR5)?','$'
MESSAGE0DB'DOU YOU WANT TO MORE?','$'
MESSAGE1DB'************YOU WIN!************','$'
MESSAGE2DB'************YOU LOST!************','$'
MESSAGE3DB'Go on or not?','$'
MESSAGE4DB'This is dipai:','$'
MESSAGE5DB'This is JIFEN:','$'
MESSAGE6DB'******THE GAME IS OVER!******','$'
MESSAGE7DB0AH,0DH,'This is your PAIDIAN:','$'
DATA ENDS
STACK SEGMENT STACK
DW256DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
BEGIN:CALL XX0
A1:MOV JIFEN,50
A2:CALL RAND
MOV DIPAI,BL
CALL CHULI
MOV QH1,BL
JB1:CALL XX
MOV AH,0
INT16H
CMP AL,59H
JE JI
CALL XX21
MOV N,5
JMP A3
JI:MOV N,10
CALL XX20
A3:CALL RAND
CALL XX19
MOV PAIDIAN,BL
CALL DISP0
CALL CHULI
MOV QH2,BL
CALL XX4
A4:MOV AH,0
INT16H
CMP AL,4EH
JE HC
CMP AL,59H
JNE A4
A5:CALL RAND
CALL XX19
MOV PAIDIAN,BL
CALL DISP0
CALL CHULI
A6:ADC QH2,BL
A7:CMP QH2,21
JA A14
CALL XX4
A8:JMP A4
ZZ:CALL XX0
JMP A2
HC:CALL RETURN
A9:MOV AL,QH2
CMP QH1,AL
JA A14
A10:CALL RAND
MOV PAIDIAN,BL
CALL DISP0
CALL CHULI
A11:ADC QH1,BL
A12:CMP QH1,21
JA A15
A13:JMP A9
A14:CALL XX14
CALL JIAN
CMP JIFEN,10
JB A18
JMP A16
A15: