Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,βρήκα έναν κώδικα έτοιμο απο το http://pygamegr.wordpress.com/2012/03/15/%CE%BD%CF%85%CF%87%CF%84%CE%B5%CF%81%CE%B9%CE%BD%CE%AE-%CF%80%CE%B5%CF%81%CE%B9%CF%80%CE%AD%CF%84%CE%B5%CE%B9%CE%B1/

 

Είναι για παιχνίδι και καλά Adventure.
Αντέγραψα όπως έχει τον κώδικα αλλά δεν μου παίζει!

(Υπόψιν,εδώ και κάτι μέρες μαθαίνω,απλά θέλω να δω πως είναι ενα απλο παιχνιδι σε Python.)

 

Ο κώδιξ:

#coding=utf-8
#
# The Python Adventure
# Based on an idea published in Pixel Magazine
# issue 18, January 1986
#

def getInput(moves,room):
    directions = ["Βόρεια","Νότια","Ανατολικά","Δυτικά"]
    destinations = moves[room]
    possiblemoves = []
    index = 0
    print "Έξοδοι:",
    for i in destinations:
        if i!=-1:
            print directions[index],
            possiblemoves.append(directions[index])
        index +=1
    print "\n"
    userinput=""
    while userinput not in possiblemoves:
        userinput=raw_input("Που θες να πας; ")
    return directions.index(userinput)

def main():
    # Room descriptions

    rooms = [ "Βρισκεσαι στον κήπο. Παντού σκοτάδι.",
              "Βρίσκεσαι στο μπάνιο. Ακούς θόρυβο.",
              "Βρίσκεσαι στο χωλ. Παραλίγο να σκοντάψεις. Σκάλα ανατολικά",
              "Βρισκεσαι στην αποθήκη. Η ατμόσφαιρα είναι αποπνικτική. Σκάλα Δυτικά, Μονοπάτι Νότια.",
              "Έφτασες στο καθιστικό. Βρήκες τον πατέρα σου.",
              "Βρίσκεσαι στο σαλόνι. Ακούγεται μουσική.",
              "Βρίσκεσαι στην τραπεζαρία. Τα πάντα είναι ανάστατα.",
              "Βρίσκεσαι στο διάδρομο. Είναι σκοτεινά. Σκάλα Νότια",
              "Είσαι στη κουζίνα. Ακούς φωνές.",
              "Είσαι στον πάνω διάδρομο. Παντού ησυχία. Σκάλα Βόρεια.",
              "Είσαι στο δωμάτιο του αδερφού σου. Ο αδερφός σου σε μαρτυρά!",
              "Είσαι στο δωμάτιο των γονέων σου. Η μητέρα σου σε έπιασε.",
              "Είσαι στο δωμάτιο σου. Είσαι ασφαλής." ]

    #
    # The following list contains lists 
    # The list's index denotes the current room.
    # Each single list contains four numbers:
    # First number -> Destination room if North (0)
    # Second number -> Destination room if South(1)
    # Third number -> Destination room if East (2)
    # Fourth number -> Destination room if West (3)
    #
    # Destination is set to -1 if it does not exist
    #

    moves = [   [-1,2,-1,-1],
                [-1,-1,2,-1],
                [0,5,3,1],
                [-1,8,-1,2],
                [-1,6,5,-1],
                [2,8,-1,4],
                [4,7,-1,-1],
                [6,9,8,-1],
                [5,-1,-1,7],
                [7,11,12,10],
                [-1,-1,9,-1],
                [9,-1,-1,-1],
                [-1,-1,-1,9] ]

    # When player reaches any of the following room(s),
    # he wins the game

    winrooms = [ 12 ]

    # When player reaches any of the following rooms,
    # he loses

    lossrooms = [ 4, 10, 11 ]

    # Startup room
    # Doesn't have to be 0, but must not be a winning or losing room

    room = 0

    print "The Adventure!"
    print "=============="

    endgame = False
    while not endgame:
        print rooms[room]
        if room in winrooms:
            print "Κέρδισες! Η περιπέτεια τελείωσε."
            endgame = True
        elif room in lossrooms:
            print "Έχασες! Η περιπέτεια τελείωσε."
            endgame = True
        else:
            direction = getInput(moves, room)
            destinations = moves[room]
            room = destinations[direction]

# Start program
if __name__ == "__main__":
    main()

Απλά θέλω να το κάνω να παίξει για να δω πως είναι!

Καμιά ιδέα?

Δημοσ.

Γιατί δεν γράφεις κάποιο σχόλιο στο blog του δημιουργού;

Είτε σου απαντήσει αυτός (που είναι και ο πιο σχετικός),

είτε κάποιος από εδώ, όποιος έχει πρόβλημα σαν το δικό

σου θα το βρίσκει κατευθείαν εκεί.

Δημοσ.

ο κώδικας τρέχει. Ποιο ακριβώς είναι το πρόβλημα σου;

Εμενα δεν τρέχει... "Invalid Syntax"  :fear:

Με το Idle(Python GUI)

Δημοσ.

αποθήκευσε τον κώδικα σε ένα αρχείο. Άνοιξε το αρχείο με το idle. Τρέξτο με F5. Γράψε εδώ το μήνυμα λάθους.

 

Κατά πάσα πιθανότητα έχεις python 3, ενώ ο κώδικας είναι γραμμένος για Python 2.

Δημοσ.
SyntaxError: invalid syntax
 
Αυτό βγάζει. Είχε κοκκινίσει τη λέξη "def" εκει που λέει "def main", προς την αρχη.
Δοκίμασα και με το 2(όντως το 3 είχα κυρίως)...
 
 
Ασχετο,αλλά επειδή διαβάζω το "Byte of a Python" που βρηκα σε pdf, είχε αυτό:
while True:
    s = (input('Enter something : '))
    if s == 'quit':
        break
    print('Length of the string is', len(s))
print('Done')

Ετσι φυσικά δεν μου δούλευε...Θα έπρεπε να το εμφανίζει έτσι:
 

Enter something : use Python!
Length of the string is 12
Enter something : quit
Done

αλλά έβγαζε λάθος!

Για να εμφανιστεί όπως λέει στο παραδειγμα επρεπε να αλλαξω απλα σε 
 
while True:
    s = (input('Enter something : '))
    if s == 'quit':
        print('Done') # Εβαλα δηλαδη αυτη την εντολη αντι για τέλος που την ειχε,εδώ
        break
    print('Length of the string is', len(s))

Θέλω να πω μήπως κι αυτοί που τα γράφουν καμια φορα κανουν λάθη...(?)
Απλά πελάγωσα καποια στιγμη, γιατί λέω "Τι διάολο,ουτε αντιγραφη δεν μπορω να κάνω, 2 διαφορετικοί αποκλείεται να κανουν λάθος"...

 

Υ.Γ: Ευχαριστω για τον χρόνο σας!

Δημοσ.

Τι λάθος έβγαζε το:

while True:
    s = (input('Enter something : '))
    if s == 'quit':
        break
    print('Length of the string is', len(s))
print('Done')

Φαίνεται σωστό λογικά και συντακτικά.


Λοιπόν άκου:

Με python 2 θα χρησιμοποιείς raw_input().

Με python 3 θα χρησιμοποιείς input() ή raw_input().

 

Απλά αποφάσισε το που θα δουέψεις.

Δημοσ.

Το 3 χρησιμοποιώ...

σε αυτό που λες μου εβγαζε παλι λαθος στη συνταξη.

 

Διόρθωση:

Σορρυ, αλλά μου εβγαζε λάθος όσο χρησιμοποιούσα το shell για τις εντολές.
Οταν το έσωσα και το εκτελεσα λειτούργησε!
Εχω 3 απορίες οπότε:

1) Αλλά γιατι να παιζει στο ένα και οχι στο αλλο?

Και γιατι να παιζει ΚΑΙ στο Shell εντολών με τη "διορθωση" που εκανα?

Όσο για τον κώδικα του παιχνιδιού στην αρχή,τελικά το έσωσα και το έτρεξα στο Python 2 και φαινεται να λειτουργεί...
Απλά όταν ξεκινάει,εμφανίζει αυτό:
 

"The Adventure!
==============
Βρισκεσαι στον κήπο. Παντού σκοτάδι.
Έξοδοι: Νότια 
 
Που θες να πας; "
 
2) Αυτά τα ακαταλαβίστικα δεν βρήκα κατι για να τα αλλάξω,κάποια κωδικοποίηση κλπ...γινεται κάπως?
 
και
 
3) Γραφικά πως γίνεται να δω? Σε αυτο το πρόγραμμα (Python Idle GUI) φαίνονται ή χρειάζεται κάτι?
 
Σορρυ αν λέω κατι άσχετο,απλά αρχή είναι ακόμα... :-(
Δημοσ.

 

Το 3 χρησιμοποιώ...

σε αυτό που λες μου εβγαζε παλι λαθος στη συνταξη.

 

Διόρθωση:

Σορρυ, αλλά μου εβγαζε λάθος όσο χρησιμοποιούσα το shell για τις εντολές.

Οταν το έσωσα και το εκτελεσα λειτούργησε!

Εχω 3 απορίες οπότε:

 

1) Αλλά γιατι να παιζει στο ένα και οχι στο αλλο?

Και γιατι να παιζει ΚΑΙ στο Shell εντολών με τη "διορθωση" που εκανα?

 

Όσο για τον κώδικα του παιχνιδιού στην αρχή,τελικά το έσωσα και το έτρεξα στο Python 2 και φαινεται να λειτουργεί...

Απλά όταν ξεκινάει,εμφανίζει αυτό:

 

"The Adventure!
==============
Βρισκεσαι στον κήπο. Παντού σκοτάδι.
Έξοδοι: Νότια 
 
Που θες να πας; "
 
2) Αυτά τα ακαταλαβίστικα δεν βρήκα κατι για να τα αλλάξω,κάποια κωδικοποίηση κλπ...γινεται κάπως?
 
και
 
3) Γραφικά πως γίνεται να δω? Σε αυτο το πρόγραμμα (Python Idle GUI) φαίνονται ή χρειάζεται κάτι?
 
Σορρυ αν λέω κατι άσχετο,απλά αρχή είναι ακόμα... :-(

 

 

 

Καλή η αρχή!

 

 

Για να βρεις βοήθεια όμως θα πρέπει να λες ακριβώς το τι έχεις... δηλαδή, το τελευταίο σου post έπρεπε να είναι το πρώτο (μαζί με τον κώδικα). 

 

 

Όσο για την κωδικοποίηση, δεν ξέρω το εργαλείο που χρησιμοποιείς. Δοκίμασε όμως να γράψεις με το Notepad++ και να θέσεις εσύ την κωδικοποίηση σε utf-8 (που έχεις και πάνω-πάνω στον κώδικα...)

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...