我在使用MIPS中的确认对话框时遇到问题:
.data Welcome1:.asciiz "\n Hello! you are about to play the mastermind guessing and logic game,Bulls & Cows!\n The Computer will generate a secret numbermade of 4 unique integer number.You have to guess the number!\n Using the number of Bulls and Cows you get to find out what the secret number is!\n" Welcome2: .asciiz "\nEvery digit you enter that is both correct and in the right location is a BULL. When you get 4 BULLS, YOU WIN!\n\nEvery digit you enter that is correct, but not in the right location is a COW!\n" confirm: .asciiz "\n Select \nYES - if you are ready to guess \n NO - to see the rules again \n Cancel - to exit the Game\n" .text main:jal welcome welcome: la $a0,Welcome1 li $a1,1 li $v0, 55 syscall la,$a0,Welcome2 li $v0,55 syscall la $a0,confirm li $v0,50 syscall Exit: li $v0,10 syscall
答案 0 :(得分:0)
显然,你需要做更多工作才能让游戏正常运行,但我已经能够获得一个骨架框架[请原谅无偿的风格清理]:
.data
Welcome1:
.ascii "\n Hello! you are about to play the mastermind"
.ascii " guessing and logic game,Bulls & Cows!\n"
.ascii "The Computer will generate a secret number made of 4 unique"
.ascii " integer numbers. You have to guess the number!\n"
.ascii "Using the number of Bulls and Cows you get to find out what"
.asciiz " the secret number is!\n"
Welcome2:
.ascii "\nEvery digit you enter that is both correct and in the right"
.ascii " location is a BULL. When you get 4 BULLS, YOU WIN!\n\n"
.ascii "Every digit you enter that is correct, but not in the right"
.asciiz " location is a COW!\n"
confirm:
.ascii "\n Select \n"
.ascii "YES - if you are ready to guess\n"
.ascii "NO - to see the rules again\n"
.asciiz "Cancel - to exit the Game\n"
msg_asknum:
.asciiz "\nEnter your game choice\n"
.text
main:
# show intro and rules
main_welcome:
la $a0,Welcome1
li $a1,1
li $v0,55
syscall
la $a0,Welcome2
li $v0,55
syscall
# ask user to select an action (i.e. enter data, reread rules, exit program)
main_confirm:
la $a0,confirm
li $v0,50
syscall
# the return is in a0: 0=yes, 1=no, 2=cancel
beq $a0,0,main_asknum
beq $a0,2,main_exit
b main_welcome
# ask user for the next game input
# NOTE: this is a prompt for an integer number
main_asknum:
li $v0,51
la $a0,msg_asknum
syscall
beq $a1,-1,main_asknum # syntax error
beq $a1,-2,main_confirm # cancel
beq $a1,-3,main_asknum # ok, but no data
jal do_something # do something with the number in a0 ...
j main_asknum
main_exit:
li $v0,10
syscall
# do_something -- process user's input
#
# arguments:
# a0 -- number the user entered
do_something:
jr $ra # return