Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. L1: beq $s0, 9, E1 # Salta para E1 quando o tabuleiro estiver preenchido
  2. li $v0, 4
  3. la $a0, POS
  4. syscall
  5.  
  6. li $v0, 5 # Jogador introduz a posição onde pretende jogar
  7. syscall
  8. 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
  9.  
  10. CHECK_VAZIO: #Verifica se a posição pretendida se encontra vazia
  11. lb $t2, VAZIO
  12. la $a0, JOGO_AUX
  13. #add $t3, $a0, $v0
  14. beq $t3, $t2, CHECK_PLAYER
  15. j JOGADA_INVALIDA
  16.  
  17. CHECK_PLAYER: # Verifica se é a vez do jogador 1 ou 2 jogar
  18. beq $t0, $zero, P1 # if($t0 == 0) é o jogador 1 a jogar
  19. add $t0, $zero, $zero # Coloca a flag a 0 para que a próxima jogada seja do jogador 1
  20.  
  21.  
  22.  
  23. P1: addi $t0, $zero, 1 # Coloca a flag a 1 para que a próxima jogada seja do jogador 2
  24. sb $t1, SYMBOL_PLAYER1 # $t1 = 'X'
  25. j NEXT
  26.  
  27. P2:
  28. #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
  29. addi $t5, $0, 2
  30. sw $t5, JOGO_AUX($v0)
  31. #sb $t5, JOGO($v0) # $t1 = 'O'
  32. j NEXT
  33.  
  34. NEXT: addi $s0, $s0, 1 # i++
  35. j L1
  36.  
  37. JOGADA_INVALIDA:
  38. li $v0, 4
  39. la $a0, INVALIDA
  40. syscall
  41. j L1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement