en la linea 31 tengo un error y no se que esta mal
¿Y cual es el mensaje de error?, no somos adivinos.
elif tablero[adivina_fila][adivina_columna] == "X":
tablero es una lista bacíaCreo que tú mismo lo has resuelto sin darte cuenta: Estás intentando acceder a un elemento inexistente, por que la lista está vacía, así pues dará un error de índice fuera de rango.
Solo debes inicializar la lista antes de intentar usarla en la condicional que has mostrado.
Ejemplo funcional:
matrix = [
["A0","B0"],
["A1","B1"]
]
if matrix[1][1] == 'A1':
pass; # Do Nothing.
elif matrix[1][1] == 'B1':
print "Felicitaciones, Hundiste mi barco!"
Si tienes otro tipo de error,
especifíca el mensaje de error.
Saludos!