Random 生成随机移动:点和框游戏:MIPS
我正在尝试写一个两人的点和框游戏。我面临着为计算机生成随机数并将其打印在电路板上的困难。 任何援助都会有帮助。 用户代码运行正常,但计算机运行不正常Random 生成随机移动:点和框游戏:MIPS,random,printing,mips,Random,Printing,Mips,我正在尝试写一个两人的点和框游戏。我面临着为计算机生成随机数并将其打印在电路板上的困难。 任何援助都会有帮助。 用户代码运行正常,但计算机运行不正常 computerMove: li $a0, 0 # Set $a to int 0 li $a1, 99 # Set upperbound to 99 li $v0, 42 # Call Random Int Range syscall add $a0,
computerMove:
li $a0, 0 # Set $a to int 0
li $a1, 99 # Set upperbound to 99
li $v0, 42 # Call Random Int Range
syscall
add $a0, $a0, 48 # add 48, since 0 starts at 48
li $v0, 1 # Printing $a0 to verify -- Generates wrong number
syscall
li $s0, 50 # Flag
li $s1, 97 # Setting $s1 to 'a'
beq $a0, 97, placePiece # if $a0 is 'a' then placePience
li $s1, 98 # Setting $s1 to 'b'
beq $a0, 98, placePiece # if $a0 is 'b' then placePiece
move $s1, $a0 # moving $a0 to $s1 for placePiece
bgt $a0, 57 computerMove # if $a0 greater 57 then continue
j placePiece # else placePiece
placePiece:
move $t0, $s1
# Placing Values
lb $t1, addr($t0)
lb $t2, mark($t0)
sb $t2, board($t1)
j printBoard
printBoard:
la $a0, board
li $v0, 4
syscall
beq $s0, 50, continue
j computerMove
.data
board: .ascii "\n\n . . . . 0 . 1 ."
.ascii "\n 2 3 4"
.ascii "\n . . . . 5 . 6 ."
.ascii "\n 7 8 9"
.asciiz "\n . . . . a . b .\n"
addr: .byte 6, 8, 33, 35, 37, 62, 64, 89, 91, 93, 118, 120
mark: .byte '-', '-', '|', '|', '|', '-', '-', '|', '|', '|', '-', '-'
box: .byte 34, 36, 90, 92
“生成错误的数字”您正在将随机数的上限设置为99。“您可能想使用9。@Michael生成随机数后,我将与0-9(48-57)| | a-b(97-98)的ASCII值进行比较,如果匹配,我会将它们打印在电路板上。问题是,它没有正确地打印在电路板上。@markgz我不能使用9,因为我正在比较ASCII值。