11/13 Danger, Will Robinson! - It works, but WHY?


In the last else statement I did this to change the guessed position to X:

board[guess_row][guess_col] = "X"

Can anybody explain how this works? I thought i was storing 5 separate lists, how does the code recognize the distinction between rows and collums?


There are two indexes for a 2-D array: guess_row and guess_col.

 O O O O O
 O O O X O     # X is at board[1][3]
 O O O O O
 O O O O O
 O O O O O


The variable board[guess_row][guess_col] = "X" knows where to print the X because it gets the value from bellow code:

guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))

Then using the ELSE the code print the X based on the information that you inputted previosly.


Hi webrockstar43625

board[guess_row][guess_col] = "X"

is saying

find the element in the list board at the index == to guess_row
and then within the element at guess_row locate the element == index guess_col
then assign "X" to that location.

for example if given the list
a = [["a1", "a2", "a3"], ["b1", "b2", "b3"], ["c1", "c2", "c3"]]

print a
will print the whole list: [["a1", "a2", "a3"], ["b1", "b2", "b3"], ["c1", "c2", "c3"]]

print a[1]
will print index 1: ["b1", "b2", "b3"]

print a[1][2]
will print the 2 from index 1: "b3"


Thanks, that's exactly what I needed!