lunes, 24 de febrero de 2014

Mi primer acorazado con Python - BattleShip Incoming

Hoy es lunes y se que prometí meterme un poco en el Lenguaje R pero la verdad es que empezar a montar mi propio juego de "Hundir la flota" o "BattleShip" me gustaba mas que meterme desde 0 con otro lenguaje.
La verdad es que ha sido una hora bastante productiva, y tal vez no tendría que haberme quedado hasta acabarlo por motivos de tiempo. Ya sabéis que llegar tarde queda feo, pero me ha encantado poderlo acabar.  Al final os pondré todo el código para que podáis criticarlo como queráis. 


Como podréis ver en el vídeo que siempre os dejo por aquí abajo, la mayoría de errores han sido muy tontos. Me explico, esos típicos errores que no entiendes porqué no funcionan hasta que varias el nombre de una lista porque la habías dejado con el nombre por defecto.  


Aquí tenéis el código. No esta tan a mi gusto como me gustaría y por eso quiero dedicarle unas horas de código a programarlo bien, o todo lo bien que sepa xD
from random import randint
board = []
for x in range(5):
    board.append(["O"] * 5)
def print_board(board):
    for row in board:
        print " ".join(row)
print "Let's play Battleship!"
print_board(board)
def random_row(board):
    return randint(0, len(board) - 1)
def random_col(board):
    return randint(0, len(board[0]) - 1)
ship_row = random_row(board)
ship_col = random_col(board)
print ship_row
print ship_col
for turn in range(4):
     guess_row = int(raw_input("Guess Row:"))
     guess_col = int(raw_input("Guess Col:"))
     if guess_row == ship_row and guess_col == ship_col:
         print "Congratulations! You sunk my battleship!"
         break
     else:
         if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
              print "Oops, that's not even in the ocean."
         elif(board[guess_row][guess_col] == "X"):
             print "You guessed that one already."
         else:
             print "You missed my battleship!"
             board[guess_row][guess_col] = "X"
    # Print (turn + 1) here!
     print turn + 1
     if turn > 4:
         print "Game Over"
     print_board(board)
La verdad es que si todo va bien hoy me encantaría arreglar un poco este juego ... mmm ... o convertirlo en otro ... quien sabe. Lo importante es lo bien que me lo he pasado hoy dando le caña a esto. 


Esto ya empieza a parecerse a la hora de código que yo tenia en mente. 

No hay comentarios:

Publicar un comentario