Battleship won't work in my ide/debugger


#1



https://www.codecademy.com/en/courses/python-beginner-en-4XuFm/2/5?curriculum_id=4f89dab3d788890003000096


inside of codecademy this game works fine. once i take it out of the codecademy and try to put it in python IDLE or thonny it just won't work. say invalid syntax.


I just want to have a code that will work in any python environment what do i need to do to ensure that this game works?


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)

# Everything from here on should go in your for loop!
# Be sure to indent four spaces!
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
        print "Turn", (turn + 1)
    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."
            print "Turn", (turn + 1)
        elif(board[guess_row][guess_col] == "X"):
            print "You guessed that one already."
            print "Turn", (turn + 1)
        else:
            print "You missed my battleship!"
            board[guess_row][guess_col] = "X"
    print "Turn", (turn + 1)
    print turn + 1
    if turn == 3:
            print "Game Over"
    print_board(board)


#2

i actually read another post on here and it said that because codecademy uses python 2.7 i think and i am using python 3.4 or 5. so some things have changed such as raw_input is no longer used, it is now just input so i had to change that in the code. also the other thing was that in every print you have to put what is being printed inside () so print "Turn" needs to be print ("Turn"). I hope that this helps some people on here. I know reading it really helped me.


#3

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.