19) Bonus Point: I want to upgrade but it doesn't work, why? :'(


#1

Here's my code

print " BIENVENUE DANS \"BATTLESHIP\" LE JEU!"
jouer = raw_input("Tu veux jouer? (oui/non)")
if jouer == 'oui':
print "En route pour une bataille epique!"
elif jouer == 'non':
print raw_input("Tu veux jouer? (oui/non)")
print "Tu n'as pas le choix >:("
else:
print "Quewa? Bon je lance quand meme."
print "Battleship\", un jeu de UlysseProduction, realise avec l'aide de codecademy, son forum et Data&Data. Nous (moi) cherchons a ameliorer notre jeu de maniere systematique. Par exemple, nous voulons ajouter des niveaux de difficultes (dur, normal, facile) ou meme des bateaux de differentes tailles ou du multijoueur, voir une I.A."
print " "
tuto =["Pour changer la difficulte du jeu, va dans le code et change les 3 (surtout pas les zeros!) dans \"for x in range(0, 3):\" et \"plateau.append...\""]
print tuto
print " "
note_maj =["Il y a du nouveau! Plus de bateaux, plus de tour, et l'alpha du changement de difficulte (tuto au debut)! Bon jeu!"]
print note_maj

print " "

pitch =["Nous sommes en 1943, la seconde guerre mondiale fait rage, et l'armee\
Americaine fait face a l'ogre Nazi, aussi bien dans les airs, que sur terre ou\
dans les mers. Le colonel DandD pense pouvoir arreter le massacre maritime\
a l'issue d'une bataille terrible. Vous etes Johnson, ou Waterrson, ou Jefferson\
,bref, on s'en fout. Conseillez le colonel DandD dans ses tirs de roquettes\
pour la posterite, la reconnaisance, mais surtout l'argent!"]
print pitch

from random import randint

plateau = []

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

def afficher_plateau(plateau):
for ligne in plateau:
print " ".join(ligne)

afficher_plateau(plateau)

def alea_ligne(plateau):
return randint(0, len(plateau) - 1)

def alea_col(plateau):
return randint(0, len(plateau[0]) - 1)

def ma_ligne(plateau):
return raw_input("Entre une ligne")

def ma_colonne(plateau):
return raw_input("Entre une colonne")

bateau_x = alea_ligne(plateau)
bateau_y = alea_col(plateau)
bateau_x2 = alea_ligne(plateau)
bateau_y2 = alea_col(plateau)
bateau_moix = ma_ligne(plateau)
bateau_moiy = ma_colonne(plateau)
bateau_moix2 = ma_ligne(plateau)
bateau_moiy2 = ma_colonne(plateau)
print bateau_x
print bateau_y
print bateau_x2
print bateau_y2
print bateau_moix + "votre bateau est là!"
print bateau_moiy + "votre bateau est là!"
print bateau_moix2 + "votre bateau est là!"
print bateau_moiy2 + "votre bateau est là!"

turn = 0
for tour in range(6):
turn = turn + 1
tir_x = int(raw_input("Quelle ligne, larbin d'amour Waterjefohnson?!?"))
tir_y = int(raw_input("Quelle colonne, larbin d'amour Waterjefohnson?!?"))
tir_x_IA = randint(0, len(plateau) - 1)
tir_y_IA = randint(0 ,len(plateau[0]) - 1

if tir_x == bateau_x and tir_y == bateau_y:
    print "Passons au suivant!"

elif tir_x == bateau_x2 and tir_y == bateau_y2:
    print "Encore une fois, les americains sont les gardiens de la diplomatie!"
    break
else:
    if (tir_x < 0 or tir_x > 4) or (tir_y < 0 or tir_y > 4):
        print "Ces otaries ne vous ont rien fais!"
    elif (plateau[tir_x ][tir_y ] == "X"):
        print "Ca vous embete pas de tirer 20 fois au meme endroit?!?"
    else:
        print "Vous etes vraiment diplome?"
        plateau[tir_x][tir_y] = "X"
        afficher_plateau(plateau)
if tir_x_IA == bateau_moix and tir_y_IA == bateau_moiy:
    print "Bah, y avait mon gendre a l'interieur!"
elif tir_x_IA == bateau_moix2 and tir_y_IA == bateau_moiy2:
    print "Ils nous ont battu Waterjefohnson, ils nous ont battu..."
    break
else:
    if (plateau[tir_x_IA][tir_y_IA] == "X"):
        print "Eh, commendant Von Bichentruc, tu perds la boule?"
    else:
        print "Alors? On sait pas viser?!"
        plateau[tir_x_IA][tir_y_IA] = "X"
        afficher_plateau(plateau)

if turn == 6:
        print "Game Over"
print "Turn", turn
print  "Turn", turn + 1
afficher_plateau(plateau)

I added an A.I., another boat and some text.
When i execute, it says me that there's an error on line 85, nearly the "bateau_y".

The text is in french, but i can change if it's too difficult.
Thank you!


#2

The difficult part here is that we can't run your code to reproduce your problem because you posted something different from your code. Try running what's in your post to see for yourself.

The error message probably says a lot, read it. If you don't understand what it says google it. If you understand it but don't know how it corresponds to your code, add prints in your code at that line which print out what is going on so that you can compare to the error message and what you were expecting to happen there.