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

παιχνιδι αναζήτησης ζωου με ερωτησεις


mg_lala

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

Δημοσ.

Γεια σας παιδια!!

Εχω ενα προγραμμα στις δομές δεδομένων και χρειάζομαι την βοήθεια σας! Αν μπορούσατε να με βοηθησετε θα σας ήμουνα ευγνωμων.

ειναι επίγον. Εθχαριστώ.

το πρόγραμμα ειναι:

 

Υπάρχει ένα παιχνίδι με ζώα στο οποίο κάποια άτομα κάθονται γύρω από ένα τραπέζι και

κάθε παίκτης γράφει σε μια κάρτα ένα όνομα ζώου, την οποία και τοποθετεί στο μέτωπο του

επόμενου στη σειρά παίκτη (χωρίς ο παίκτης αυτός να δει την κάρτα). Στη συνέχεια ο κάθε

παίκτης με τη σειρά του κάνει μια ερώτηση για να μαντέψει ποιο ζώο βρίσκεται στην κάρτα

του. Η απάντηση στην ερώτηση αυτή μπορεί να είναι μόνο ναι ή όχι (π.χ., «μπορεί το ζώο

να πετάξει;»). Η διαδικασία αυτή συνεχίζεται μέχρι ο κάθε παίκτης να μαντέψει το ζώο που

έχει επιλέξει για αυτόν ο συμπαίκτης του.

Η λύση σας πρέπει να αποτελεί μια δυναμική έκδοση του παιχνιδιού όπου σε κάθε βήμα ο

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

υπόψη και τη νέα αυτή ερώτηση. Ένα παράδειγμα εκτέλεσης του παιχνιδιού είναι το εξής (ο

κέρσορας «>» εμφανίζεται εκεί που αναμένεται απάντηση του χρήστη):

Αρχείο που θα χρησιμοποιηθεί για το παιχνίδι:

> animal.txt

Έχει φτερά [y/n]

> y

Ζει σε αυλή [y/n]

> y

Είναι κότα [y/n]

> y

Κέρδισα!

Να παίξουμε πάλι [y/n]

> y

Έχει φτερά [y/n]

> n

Είναι θηλαστικό [y/n]

> y

Έχει ρίγες [y/n]

> n

Χοροπηδάει [y/n]

> n

Είναι ελέφαντας [y/n]

> n

Εγκαταλείπω την προσπάθεια. Ποιο ζώο είχατε σκεφτεί

> λιοντάρι

Ποια ερώτηση έχει ως θετική απάντηση το ζώο λιοντάρι και ως αρνητική το

ζώο ελέφαντας

> Έχει χαίτη

Να παίξουμε πάλι [y/n]

> n

Ευχαριστούμε που παίξατε. Εισάγετε το όνομα του αρχείου, όπου θα

αποθηκευτεί το αποτέλεσμα

> animal2.txt

Ως είσοδος για το παιχνίδι θα δίνεται ένα αρχείο που μπορεί να αναπαραστήσει την

προθεματική διάσχιση ενός δυαδικού δένδρου που αναπαριστά το παιχνίδι. Σημειώνεται

ότι όλοι οι εσωτερικοί κόμβοι του δένδρου έχουν δύο παιδιά (το αριστερό παιδί για την

απάντηση όχι ή n και το δεξί για την απάντηση ναι ή y).

 

Κάθε αρχείο έχει τη μορφή του παραδείγματος που βλέπετε παρακάτω. Κάθε πιθανή

ερώτηση (που μπορεί να κάνει ο χρήστης) ξεκινά σε μια γραμμή με το σύμβολο «#E». Κάθε

γραμμή που δεν έχει αυτό το σύμβολο αναπαριστά την απάντηση για το σωστό ζώο:

#Ε: Έχει φτερά

#Ε: Ζει σε αυλή

κότα

#Ε: Είναι σοφό

κουκουβάγια

#Ε: Τρέχει γρήγορα

ύαινα

λεοπάρδαλη

#Ε: Είναι θηλαστικό

#Ε: Έχει ρίγες

τίγρης

#Ε:Χοροπηδάει

καγκουρό

ελέφαντας

γορίλας

Παρακάτω φαίνεται και η δομή του δένδρου που αντιστοιχεί στο παραπάνω αρχείο. Στο

πρόγραμμά σας θα πρέπει να κατασκευάσετε ένα δυαδικό δένδρο αυτής της μορφής. Οι

θετικές απαντήσεις (y) συμβολίζονται στο δένδρο με αριστερούς κόμβους και οι αρνητικές απαντήσεις (n) με δεξιούς κόμβους.

 

Για το παράδειγμα του παιχνιδιού που βρίσκεται πιο πάνω όταν ο υπολογιστής δώσει λάθος

απάντηση για ένα ζώο και ο χρήστης εισάγει το σωστό ζώο και μια νέα ερώτηση, θα πρέπει

να προστεθεί στο δένδρο το νέο αυτό στοιχείο.

Από την άσκηση ζητούνται τα εξής:

1. Να διαβάζεται ένα αρχείο που αναπαριστά το δυαδικό δένδρο των ερωτήσεων.

Συγκεκριμένα, το αρχείο αυτό θα δίνεται από το χρήστη (όπως στο παράδειγμα που

υπάρχει παραπάνω) και στη συνέχεια το δένδρο θα διαβάζεται ως δυαδικό δένδρο.

2. Να διατηρείται η κατάσταση του παιχνιδιού, έτσι ώστε καθώς ο χρήστης απαντά με

ένα y ή n στο τέλος του παιχνιδιού η νέα πληροφορία να μπορεί να προστεθεί στο

δένδρο. Επίσης ο χρήστης θα έχει τη δυνατότητα να παίξει το παιχνίδι παραπάνω

από μία φορά.

3. Στο τέλος του παιχνιδιού να γίνεται εγγραφή σε νέο αρχείο, ώστε να μπορεί να

χρησιμοποιηθεί και αυτό για το παιχνίδι. Συγκεκριμένα, ο χρήστης δίνει το

καινούριο όνομα αρχείου όπου θα αποθηκευτεί το δένδρο (όπως στο παράδειγμα που

υπάρχει παραπάνω).

Δημοσ.

Βασικά πως να διαβάζω το αρχείο και να κάνω το δέντρο σε c++? Και στο τέλος που λέει να απθηκεύει σε άλλο αρχειο το δέντρο πωσ το κάνω σε c++?

 

Ως είσοδος για το παιχνίδι θα δίνεται ένα αρχείο που μπορεί να αναπαραστήσει την

προθεματική διάσχιση ενός δυαδικού δένδρου που αναπαριστά το παιχνίδι.

 

Να διαβάζεται ένα αρχείο που αναπαριστά το δυαδικό δένδρο των ερωτήσεων.

Συγκεκριμένα, το αρχείο αυτό θα δίνεται από το χρήστη (όπως στο παράδειγμα που

υπάρχει παραπάνω) και στη συνέχεια το δένδρο θα διαβάζεται ως δυαδικό δένδρο.

 

Πως θα το κάνω αυτό?

Δημοσ.

Για να διαβάσεις γενικώς για την δομή των δέντρων κοίτα εδώ. Έχει κώδικα σε c++.

 

Μπορεί να φταίει και η ώρα αλλά πραγματικά δεν μπορώ να καταλάβω πως αυτό το αρχείο κειμένου θα αναπαραστήσει ένα δυαδικό δέντρο και μάλιστα με την σειρά των ερωτήσεων όπως είναι στην εκφώνηση :fear:

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...