用汇编语言实现21点游戏基本功能

  • 格式:pdf
  • 大小:93.38 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【实验名称】

用汇编语言实现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: