# Doesn't allow to type in the col

#1
``````from random import randint

board = []

for x in range(0, 5):
board.append(["O"] * 5)

def print_board(board):
for row in board:
print " ".join(row)

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)
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 sank my battleship!"
else:
if guess_row not in range(5) or \
guess_col not in range(5):
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_board(board)
``````

when i guess ‘3’:

``````O O O O O
O O O O O
O O O O O
O O O O O
O O O O O
Guess Row: 3
Guess Col: You missed my battleship!
O O O O O
O O O O O
O O O O O
O O O X O
O O O O O
``````

#2

For this exercise only, try commenting out the two input lines and manually set the variables. It should let you get around that issue. Hopefully it is confined to this one exercise.

#3

# guess_col = int(raw_input("Guess Col: "))

input1 = int(raw_input("Guess Row: "))
input2 = int(raw_input("Guess Col: "))

guess_row = input1
guess_col = input2

I swear i didn’t change the code other than this, but now it works! It now lets me to input the column, not just setting both variables to the input for the row. Thanks.

#4

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