daily pastebin goal
39%
SHARE
TWEET

Untitled

a guest Dec 16th, 2018 57 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top