2017-05-19 1 views
0

Je commence actuellement le livre "Invent Your Own Computer Games w/ Python", & pour une raison étrange, malgré plusieurs vérifications & trouver plus de quelques gaffes (erreur d'orthographe d'une variable, en utilisant un ';' quand ' : 'est requis, etc), mon type de dragon.py refuse de fonctionner dans IDLE. Pire, je ne reçois pas de message d'erreur; il affiche simplement "RESTART: /Users/yosemite/Documents/dragon.py" et je suis de retour à l'invite. La version officielle du site, trouvée here, fonctionne cependant parfaitement bien.Aucun message d'erreur après l'exécution de dragon.py

Quelqu'un at-il une idée de ce que je fais mal ici? Mise à jour: Voici mon code, déjà oublié de l'inclure:

import random 
import time 

def displayIntro(): 

    print ('You are in a land full of dragons. In front of you.') 
    print ('you see two caves. In one cave, the dragon is friendly.') 
    print ('and will share his reasure with you. The other dragon') 
    print ('is greedy and hungry, and will eat you on sight.') 
    print() 

def chooseCave(): 
    cave = '' 
    while cave != '1' and cave !='2': 
     print ('Which cave will you go into? (1 or 2)') 
     cave = input() 

    return cave 

def checkCave(chosenCave): 
    print ('You approach the cave...') 
    time.sleep(2) 
    print ('It is dark and spooky...') 
    time.sleep(2) 
    print ('A Large dragon jumps out in front of you! He opens his jaws 
    and...') 
    print() 
    time.sleep(2) 

    friendlyCave = random.randint(1, 2) 

    if chosenCave == str(friendlyCave): 
     print('Gives you his treasures!') 
    else: 
     print('Goobles you up in onebite!') 

    playAgain = 'yes' 
    while playAgain =='yes' or playAgain == 'y': 

     displayIntro() 

     caveNumber = chooseCave() 

     checkCave(caveNumber) 

     print('Do you want to play again? (yes or no)') 
     playAgain = input() 
+6

Veuillez poster votre code. – FamousJameous

+4

Aussi, apparemment, il existe un outil de diff pour les exemples de code dans ce livre. Allez sur [cette page] (https://inventwithpython.com/diff/?p=dragon), entrez votre code et voyez ce qui est différent. – FamousJameous

+0

Bienvenue dans StackOverflow. Un [exemple reproductible] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) serait utile. – polka

Répondre

0

Le code affiché, une fois correctement en retrait, les importations de deux modules, définit trois fonctions, et se termine ensuite. L'affichage de l'invite à la fin du programme correspond à ce que l'IDLE est censé faire. L'ajout de l'appel de fonction suivant à la fin permet d'exécuter l'exécution.

checkCave (chooseCave())

Si vous programmez vous aviez exécuter à partir de la console (Mac?) Avec

python -i /Users/yosemite/Documents/dragon.py 

vous aurait vu le même comportement, l'apparence d'une invite >>>.