Imagen
Imagen

Código: Seleccionar todo

' Gambas class file
PRIVATE iColores[7, 7] AS Integer 'Se "ve" en todo este formulario.


PUBLIC SUB form_Open()
  ordeno_tablero()
END

PUBLIC SUB ordeno_tablero()
  DIM x, y, aux_x, aux_y, i AS Integer
  dibujo.Clear
  draw.Begin(dibujo)
  Draw.LineWidth = 44
  
  'dibujo tablero ordenado

  aux_x = -42
  aux_y = -20
  
  FOR x = 1 TO 6
    FOR y = 1 TO 6
      
      IF x < 4 THEN 
        IF y < 4 THEN 
          Draw.ForeColor = Color.Red
          iColores[x, y] = 1
          Draw.Line(x * 48 + aux_x, y * 48 + aux_y, x * 48 + aux_x + 44, y * 48 + aux_y)
        ELSE 
          Draw.ForeColor = Color.blue
          iColores[x, y] = 3
          Draw.Line(x * 48 + aux_x, y * 48 + aux_y + 16, x * 48 + aux_x + 44, y * 48 + aux_y + 16)
        END IF
      ELSE 
        IF y < 4 THEN 
          Draw.ForeColor] = Color.darkGreen
          iColores[x, y] = 2
          Draw.Line(x * 48 + aux_x + 16, y * 48 + aux_y, x * 48 + aux_x + 44 + 16, y * 48 + aux_y)          
        ELSE 
          Draw.ForeColor = Color.darkyellow
          iColores[x, y] = 4
          Draw.Line(x * 48 + aux_x + 16, y * 48 + aux_y + 16, x * 48 + aux_x + 44 + 16, y * 48 + aux_y + 16)          
        END IF
      END IF
      
    NEXT 
  NEXT
 
  draw.End
END


PUBLIC SUB muestro_tablero()
  DIM x, y, aux_x, aux_y, i AS Integer
  dibujo.Clear
  draw.Begin(dibujo)
  Draw.LineWidth = 44
  
  'dibujo tablero ordenado
  aux_x = -42
  aux_y = -20
  
  FOR x = 1 TO 6
    FOR y = 1 TO 6
      
      IF x < 4 THEN 
        IF y < 4 THEN 
        
          IF iColores[x, y] = 1 THEN Draw.ForeColor = Color.Red
          IF iColores[x, y] = 2 THEN Draw.ForeColor = Color.darkGreen
          IF iColores[x, y] = 3 THEN Draw.ForeColor = Color.blue
          IF iColores[x, y] = 4 THEN Draw.ForeColor = Color.darkyellow          
          
          Draw.Line(x * 48 + aux_x, y * 48 + aux_y, x * 48 + aux_x + 44, y * 48 + aux_y)
        
        ELSE 

          IF iColores[x, y] = 1 THEN Draw.ForeColor = Color.Red
          IF iColores[x, y] = 2 THEN Draw.ForeColor = Color.darkGreen
          IF iColores[x, y] = 3 THEN Draw.ForeColor = Color.blue
          IF iColores[x, y] = 4 THEN Draw.ForeColor = Color.darkyellow  
          
          Draw.Line(x * 48 + aux_x, y * 48 + aux_y + 16, x * 48 + aux_x + 44, y * 48 + aux_y + 16)
        END IF
      ELSE 
        IF y < 4 THEN 

          IF iColores[x, y] = 1 THEN Draw.ForeColor = Color.Red
          IF iColores[x, y] = 2 THEN Draw.ForeColor = Color.darkGreen
          IF iColores[x, y] = 3 THEN Draw.ForeColor = Color.blue
          IF iColores[x, y] = 4 THEN Draw.ForeColor = Color.darkyellow  

          Draw.Line(x * 48 + aux_x + 16, y * 48 + aux_y, x * 48 + aux_x + 44 + 16, y * 48 + aux_y)          
        ELSE 

          IF iColores[x, y] = 1 THEN Draw.ForeColor = Color.Red
          IF iColores[x, y] = 2 THEN Draw.ForeColor = Color.darkGreen
          IF iColores[x, y] = 3 THEN Draw.ForeColor = Color.blue
          IF iColores[x, y] = 4 THEN Draw.ForeColor = Color.darkyellow  

          Draw.Line(x * 48 + aux_x + 16, y * 48 + aux_y + 16, x * 48 + aux_x + 44 + 16, y * 48 + aux_y + 16)          
        END IF
      END IF
      
    NEXT 
  NEXT
 
  draw.End
END

PUBLIC SUB Button1_Click()
  DIM aux, i AS Integer
  
  aux = iColores[6, 1] 
  FOR i = 5 TO 1 STEP -1
    iColores[i + 1, 1] = iColores[i, 1]
  NEXT 
  iColores[1, 1] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button2_Click()
  DIM aux, i AS Integer
  
  aux = iColores[6, 2] 
  FOR i = 5 TO 1 STEP -1
    iColores[i + 1, 2] = iColores[i, 2]
  NEXT 
  iColores[1, 2] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button3_Click()
  DIM aux, i AS Integer
  
  aux = iColores[6, 3] 
  FOR i = 5 TO 1 STEP -1
    iColores[i + 1, 3] = iColores[i, 3]
  NEXT 
  iColores[1, 3] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button4_Click()
  DIM aux, i AS Integer
  
  aux = iColores[6, 4] 
  FOR i = 5 TO 1 STEP -1
    iColores[i + 1, 4] = iColores[i, 4]
  NEXT 
  iColores[1, 4] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button5_Click()
  DIM aux, i AS Integer
  
  aux = iColores[6, 5] 
  FOR i = 5 TO 1 STEP -1
    iColores[i + 1, 5] = iColores[i, 5]
  NEXT 
  iColores[1, 5] = aux
  
  muestro_tablero
  game_over
END
PUBLIC SUB Button6_Click()
  DIM aux, i AS Integer
  
  aux = iColores[6, 6] 
  FOR i = 5 TO 1 STEP -1
    iColores[i + 1, 6] = iColores[i, 6]
  NEXT 
  iColores[1, 6] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button7_Click()
  DIM aux, i AS Integer
  
  aux = iColores[6, 6] 
  FOR i = 5 TO 1 STEP -1
    iColores[6, i + 1] = iColores[6, i]
  NEXT 
  iColores[6, 1] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button8_Click()
  DIM aux, i AS Integer
  
  aux = iColores[5, 6] 
  FOR i = 5 TO 1 STEP -1
    iColores[5, i + 1] = iColores[5, i]
  NEXT 
  iColores[5, 1] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button9_Click()
  DIM aux, i AS Integer
  
  aux = iColores[4, 6] 
  FOR i = 5 TO 1 STEP -1
    iColores[4, i + 1] = iColores[4, i]
  NEXT 
  iColores[4, 1] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button10_Click()
  DIM aux, i AS Integer
  
  aux = iColores[3, 6] 
  FOR i = 5 TO 1 STEP -1
    iColores[3, i + 1] = iColores[3, i]
  NEXT 
  iColores[3, 1] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button11_Click()
  DIM aux, i AS Integer
  
  aux = iColores[2, 6] 
  FOR i = 5 TO 1 STEP -1
    iColores[2, i + 1] = iColores[2, i]
  NEXT 
  iColores[2, 1] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button12_Click()
  DIM aux, i AS Integer
  
  aux = iColores[1, 6] 
  FOR i = 5 TO 1 STEP -1
    iColores[1, i + 1] = iColores[1, i]
  NEXT 
  iColores[1, 1] = aux
  
  muestro_tablero
  game_over
END


PUBLIC SUB Button13_Click()
  DIM aux, i AS Integer
  
  aux = iColores[1, 6] 
  FOR i = 1 TO 5 
    iColores[i, 6] = iColores[i + 1, 6]
  NEXT 
  iColores[6, 6] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button14_Click()
  DIM aux, i AS Integer
  
  aux = iColores[1, 5] 
  FOR i = 1 TO 5 
    iColores[i, 5] = iColores[i + 1, 5]
  NEXT 
  iColores[6, 5] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button15_Click()
  DIM aux, i AS Integer
  
  aux = iColores[1, 4] 
  FOR i = 1 TO 5 
    iColores[i, 4] = iColores[i + 1, 4]
  NEXT 
  iColores[6, 4] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button16_Click()
  DIM aux, i AS Integer
  
  aux = iColores[1, 3] 
  FOR i = 1 TO 5 
    iColores[i, 3] = iColores[i + 1, 3]
  NEXT 
  iColores[6, 3] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button17_Click()
  DIM aux, i AS Integer
  
  aux = iColores[1, 2] 
  FOR i = 1 TO 5 
    iColores[i, 2] = iColores[i + 1, 2]
  NEXT 
  iColores[6, 2] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button18_Click()
  DIM aux, i AS Integer
  
  aux = iColores[1, 1] 
  FOR i = 1 TO 5 
    iColores[i, 1] = iColores[i + 1, 1]
  NEXT 
  iColores[6, 1] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button19_Click()
  DIM aux, i AS Integer
  
  aux = iColores[1, 1] 
  FOR i = 1 TO 5
    iColores[1, i] = iColores[1, i + 1]
  NEXT 
  iColores[1, 6] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button20_Click()
  DIM aux, i AS Integer
  
  aux = iColores[2, 1] 
  FOR i = 1 TO 5
    iColores[2, i] = iColores[2, i + 1]
  NEXT 
  iColores[2, 6] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button21_Click()
  DIM aux, i AS Integer
  
  aux = iColores[3, 1] 
  FOR i = 1 TO 5
    iColores[3, i] = iColores[3, i + 1]
  NEXT 
  iColores[3, 6] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button22_Click()
  DIM aux, i AS Integer
  
  aux = iColores[4, 1] 
  FOR i = 1 TO 5
    iColores[4, i] = iColores[4, i + 1]
  NEXT 
  iColores[4, 6] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button23_Click()
  DIM aux, i AS Integer
  
  aux = iColores[5, 1] 
  FOR i = 1 TO 5
    iColores[5, i] = iColores[5, i + 1]
  NEXT 
  iColores[5, 6] = aux
  
  muestro_tablero
  game_over
END

PUBLIC SUB Button24_Click()
  DIM aux, i AS Integer
  
  aux = iColores[6, 1] 
  FOR i = 1 TO 5
    iColores[6, i] = iColores[6, i + 1]
  NEXT 
  iColores[6, 6] = aux
  
  muestro_tablero
  game_over
END


PUBLIC SUB mezclo_tablero()
  DIM iNivel, i AS Integer 
  RANDOMIZE CInt(Timer * 1000)
  
  iNivel = 2
  FOR i = 1 TO iNivel
    IF Rnd(0, 1) > 0.5 THEN Button1_Click()
    IF Rnd(0, 1) > 0.5 THEN Button2_Click()
    IF Rnd(0, 1) > 0.5 THEN Button3_Click()
    IF Rnd(0, 1) > 0.5 THEN Button4_Click()
    IF Rnd(0, 1) > 0.5 THEN Button5_Click()
    IF Rnd(0, 1) > 0.5 THEN Button6_Click()
    IF Rnd(0, 1) > 0.5 THEN Button7_Click()
    IF Rnd(0, 1) > 0.5 THEN Button8_Click()
    IF Rnd(0, 1) > 0.5 THEN Button9_Click()
    IF Rnd(0, 1) > 0.5 THEN Button10_Click()
    IF Rnd(0, 1) > 0.5 THEN Button11_Click()
    IF Rnd(0, 1) > 0.5 THEN Button12_Click()
    IF Rnd(0, 1) > 0.5 THEN Button13_Click()
    IF Rnd(0, 1) > 0.5 THEN Button14_Click()
    IF Rnd(0, 1) > 0.5 THEN Button15_Click()
    IF Rnd(0, 1) > 0.5 THEN Button16_Click()
    IF Rnd(0, 1) > 0.5 THEN Button17_Click()
    IF Rnd(0, 1) > 0.5 THEN Button18_Click()
    IF Rnd(0, 1) > 0.5 THEN Button19_Click()
    IF Rnd(0, 1) > 0.5 THEN Button20_Click()    
    IF Rnd(0, 1) > 0.5 THEN Button21_Click()
    IF Rnd(0, 1) > 0.5 THEN Button22_Click()
    IF Rnd(0, 1) > 0.5 THEN Button23_Click()
    IF Rnd(0, 1) > 0.5 THEN Button24_Click()
  NEXT
END

PUBLIC SUB mMezclar_Click()
  mezclo_tablero
END

PUBLIC SUB game_over()
    DIM x, y, ganador, aux AS Integer
    ganador = 1
    
    aux = iColores[1, 1]
    FOR x = 1 TO 3
      FOR y = 1 TO 3
        IF iColores[x, y] <> aux THEN ganador = 0
      NEXT 
    NEXT 
    
    aux = iColores[4, 1]
    FOR x = 4 TO 6
      FOR y = 1 TO 3
        IF iColores[x, y] <> aux THEN ganador = 0
      NEXT 
    NEXT 
    
    aux = iColores[1, 4]
    FOR x = 1 TO 3
      FOR y = 4 TO 6
        IF iColores[x, y] <> aux THEN ganador = 0
      NEXT 
    NEXT 
    
    aux = iColores[4, 4]
    FOR x = 4 TO 6
      FOR y = 4 TO 6
        IF iColores[x, y] <> aux THEN ganador = 0
      NEXT 
    NEXT 
    
    IF ganador = 1 THEN 
      sos_ganador
    END IF
END

PUBLIC SUB sos_ganador()
  DIM msgaux AS Integer
    msgaux = Message.Info("¡Lo lograste! Juguemos otra partida", "Ok")
    
    mNuevo_Click()
END

PUBLIC SUB mNuevo_Click()
  ordeno_tablero
  'SLEEP 0.500
  mezclo_tablero
END
Welcome to your nightmare, bitch.
Responder

Volver a “Otros lenguajes”