Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- L1: beq $s0, 9, E1 # Salta para E1 quando o tabuleiro estiver preenchido
- li $v0, 4
- la $a0, POS
- syscall
- li $v0, 5 # Jogador introduz a posição onde pretende jogar
- syscall
- add $t1, $a1, $v0 # $t1 tem o endereço da posição inicial do Jogo mais o deslocamento que é a posição onde o jogador pretende jogar
- CHECK_VAZIO: #Verifica se a posição pretendida se encontra vazia
- lb $t2, VAZIO
- la $a0, JOGO_AUX
- #add $t3, $a0, $v0
- beq $t3, $t2, CHECK_PLAYER
- j JOGADA_INVALIDA
- CHECK_PLAYER: # Verifica se é a vez do jogador 1 ou 2 jogar
- beq $t0, $zero, P1 # if($t0 == 0) é o jogador 1 a jogar
- add $t0, $zero, $zero # Coloca a flag a 0 para que a próxima jogada seja do jogador 1
- P1: addi $t0, $zero, 1 # Coloca a flag a 1 para que a próxima jogada seja do jogador 2
- sb $t1, SYMBOL_PLAYER1 # $t1 = 'X'
- j NEXT
- P2:
- #add $t1, $a1, $v0 # $t1 tem o endereço da posição inicial do Jogo mais o deslocamento que é a posição onde o jogador pretende jogar
- addi $t5, $0, 2
- sw $t5, JOGO_AUX($v0)
- #sb $t5, JOGO($v0) # $t1 = 'O'
- j NEXT
- NEXT: addi $s0, $s0, 1 # i++
- j L1
- JOGADA_INVALIDA:
- li $v0, 4
- la $a0, INVALIDA
- syscall
- j L1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement