Donacgreece Δημοσ. 14 Οκτωβρίου 2022 Δημοσ. 14 Οκτωβρίου 2022 Καλησπέρα παιδία, θα χρειαστώ μια καθοδήγηση ώστε να καταφέρω να ολοκληρώσω μια εργασία. Προσπαθώ να φτιάξω το παιχνίδι πέτρα ψαλίδι χαρτί. Όλα καλά μέχρι εδώ και το έχω κάνει να τρέξει random seed. Απλά η εκφώνηση μου ζητάει να δημιουργήσω μια αυθαίρετη γραμματοσειρά των γραμμάτων Π,Ψ,Χ, με μήκος 15-20 συμβόλων.. και κάθε φορά που θα είναι η σειρά του υπολογιστή το πρόγραμμα θα πρέπει να επιλέγει τον επόμενο χαρακτήρα της γραμματοσειράς. Εάν φτάσει στο τέλος να ξεκινάει από την αρχή. Ξέρει κάποιος πως μπορώ να κάνω κάτι τέτοιο, έτσι ώστε να το ενσωματώσω στον κώδικα μου να δω αν λειτουργεί; Έχω σπάσει το κεφάλι μου. Να υπογραμμίσω ότι είναι η πρώτη βδομάδα που μαθαίνω Python. ευχαριστώ πολύ!
masteripper Δημοσ. 14 Οκτωβρίου 2022 Δημοσ. 14 Οκτωβρίου 2022 Μήπως αυτό : https://realpython.com/python-rock-paper-scissors/
Lanike71 Δημοσ. 14 Οκτωβρίου 2022 Δημοσ. 14 Οκτωβρίου 2022 (επεξεργασμένο) Τι ακριβώς σε δυσκολεύει; Λογικά αυτή η γραμματοσειρά είναι η προεπιλεγμένη επιλογή του υπολογιστή, αν κατάλαβα καλά. Με random φτιάξε ένα πίνακα Π, Ψ,Χ, κράτα και σε μία μεταβλητή τη σειρά για τον επόμενο χαρακτήρα και τρέξε το. Και όταν φτάσει στο τέλος, ξεκινάς πάλι από την αρχή. Επεξ/σία 14 Οκτωβρίου 2022 από Lanike71
cvb~ Δημοσ. 14 Οκτωβρίου 2022 Δημοσ. 14 Οκτωβρίου 2022 Καλησπέρα! Διαβάζοντας το νήμα και βλέποντας τον κώδικα σε Python του παιχνιδιού στο link που έδωσε ο φίλος πιο πάνω, είπα να το μετατρέψω σε C. Επομένως το παιχνίδι σε γλώσσα C θα μπορούσε να ‘ναι όπως παρακάτω. Δεν είναι απίθανο να υπάρχουν λάθη στον κώδικα. (Αν οι moderators βρίσκουν αυτό το post άσχετο με το θέμα του thread starter, παρακαλώ να το σβήσουν.) /* rock.c - Rock-Paper-Scissors game Based on python code of the game from https://realpython.com/python-rock-paper-scissors/ Kiriakos, 14/10/2022 */ #include <stdio.h> #include <stdlib.h> #include <time.h> #define ROCK 0 #define PAPER 1 #define SCISSORS 2 int main(void) { unsigned int computer_action; int user_action; const char *possible_actions[] = {"rock", "paper", "scissors"}; // Uses current time as seed to random generator srand(time(NULL)); // Chooses a randon number from 0 to 2. 0 for rock, 1 for paper and 2 for scissors computer_action = rand() % 3; // Shows available choices, takes input and checks it printf("Enter a choice ('1' for rock, '2' for paper, '3' for scissors): "); scanf("%1u", &user_action); if(user_action < 1 || user_action > 3) { printf("Wrong input. Please try again.\n"); exit(1); } user_action--; printf("You chose %s, computer chose %s.\n", possible_actions[user_action], possible_actions[computer_action]); // Compares input and shows suitable output if(user_action == computer_action) { printf("Both players selected %s. It's a tie!\n", possible_actions[user_action]); } else if(user_action == ROCK) { if(computer_action == SCISSORS) { printf("Rock smashes scissors! You win!\n"); } else { printf("Paper covers rock! You lose.\n"); } } else if(user_action == PAPER) { if(computer_action == ROCK) { printf("Paper covers rock! You win!\n"); } else { printf("Scissors cuts paper! You lose.\n"); } } else if(user_action == SCISSORS) { if(computer_action == PAPER) { printf("Scissors cuts paper! You win!\n"); } else { printf("Rock smashes scissors! You lose.\n"); } } return 0; }
demmian Δημοσ. 15 Οκτωβρίου 2022 Δημοσ. 15 Οκτωβρίου 2022 καλησπερα δεν μπορω να δωσω απαντηση.. αλλα σε μια βδομαδα πως εφτασες σε τοσο προχωρημενο επιπεδο?? εγω εκανα σχεδον μηνα να μαθω while.. σωραιος!
Donacgreece Δημοσ. 16 Οκτωβρίου 2022 Μέλος Δημοσ. 16 Οκτωβρίου 2022 Στις 14/10/2022 στις 9:33 ΠΜ, Lanike71 είπε Τι ακριβώς σε δυσκολεύει; Λογικά αυτή η γραμματοσειρά είναι η προεπιλεγμένη επιλογή του υπολογιστή, αν κατάλαβα καλά. Με random φτιάξε ένα πίνακα Π, Ψ,Χ, κράτα και σε μία μεταβλητή τη σειρά για τον επόμενο χαρακτήρα και τρέξε το. Και όταν φτάσει στο τέλος, ξεκινάς πάλι από την αρχή. Sorry άλλα είχα θέμα με τον λογαριασμό μου. Αυτό είναι που με δυσκολεύει. Δε πρέπει να κάνουμε χρήση του Random....
Moderators Kercyn Δημοσ. 16 Οκτωβρίου 2022 Moderators Δημοσ. 16 Οκτωβρίου 2022 23 λεπτά πριν, Donacgreece είπε Sorry άλλα είχα θέμα με τον λογαριασμό μου. Αυτό είναι που με δυσκολεύει. Δε πρέπει να κάνουμε χρήση του Random.... Βάλε τις τιμές μόνος σου τότε. Όταν λες ότι "δεν πρέπει" να κάνεις χρήση του random τι εννοείς;
Donacgreece Δημοσ. 16 Οκτωβρίου 2022 Μέλος Δημοσ. 16 Οκτωβρίου 2022 (επεξεργασμένο) 1 ώρα πριν, Kercyn είπε Βάλε τις τιμές μόνος σου τότε. Όταν λες ότι "δεν πρέπει" να κάνεις χρήση του random τι εννοείς; έχω κάνει αυτό αλλα έχω κολλήσει πως μετα τη πρωτη φορά να πάει και να διαλέξει το δεύτερο χαρακτήρα... rnd = 'ΠΨΧΧΠΨΠΧΨΧΠΨΨΧΠ' computer = rnd[0] if computer==len(rnd): computer = rnd[0] computer = rnd[0+1] Εδώ είναι η εκφώνηση Α) Για τις επιλογές του υπολογιστή, θα πρέπει να δημιουργηθεί μια αυθαίρετη συμβολοσειρά μήκους 15 – 20 συμβόλων, η οποία να περιέχει μόνο τους κεφαλαίους χαρακτήρες των επιλογών. Κάθε φορά που έρχεται η σειρά του υπολογιστή, το πρόγραμμα θα πρέπει να επιλέγει τον επόμενο χαρακτήρα της συμβολοσειράς. Επίσης, αν τα σύμβολα στη συμβολοσειρά εξαντληθούν, τότε η συμβολοσειρά θα προσπελαύνεται από την αρχή. Επεξ/σία 16 Οκτωβρίου 2022 από Donacgreece
Lanike71 Δημοσ. 16 Οκτωβρίου 2022 Δημοσ. 16 Οκτωβρίου 2022 21 λεπτά πριν, Donacgreece είπε έχω κάνει αυτό αλλα έχω κολλήσει πως μετα τη πρωτη φορά να πάει και να διαλέξει το δεύτερο χαρακτήρα... rnd = 'ΠΨΧΧΠΨΠΧΨΧΠΨΨΧΠ' computer = rnd[0] if computer==len(rnd): computer = rnd[0] computer = rnd[0+1] Εδώ είναι η εκφώνηση Α) Για τις επιλογές του υπολογιστή, θα πρέπει να δημιουργηθεί μια αυθαίρετη συμβολοσειρά μήκους 15 – 20 συμβόλων, η οποία να περιέχει μόνο τους κεφαλαίους χαρακτήρες των επιλογών. Κάθε φορά που έρχεται η σειρά του υπολογιστή, το πρόγραμμα θα πρέπει να επιλέγει τον επόμενο χαρακτήρα της συμβολοσειράς. Επίσης, αν τα σύμβολα στη συμβολοσειρά εξαντληθούν, τότε η συμβολοσειρά θα προσπελαύνεται από την αρχή. Η όλη διαδικασία θα τρέχει μέσα σε μία while λογικά, θα κρατάς με μετρητή σε ποιά θέση του πίνακα είναι και αν γίνει ίση με το μήκος πίνακα, θα γίνεται 0 στην επόμενη φορά.
Donacgreece Δημοσ. 16 Οκτωβρίου 2022 Μέλος Δημοσ. 16 Οκτωβρίου 2022 3 λεπτά πριν, Lanike71 είπε Η όλη διαδικασία θα τρέχει μέσα σε μία while λογικά, θα κρατάς με μετρητή σε ποιά θέση του πίνακα είναι και αν γίνει ίση με το μήκος πίνακα, θα γίνεται 0 στην επόμενη φορά. την while τη τρεχω πιο πάνω και με την επιλογή του χρήστη. Θα πρέπει να βάλω κι άλλη?
Lanike71 Δημοσ. 16 Οκτωβρίου 2022 Δημοσ. 16 Οκτωβρίου 2022 2 λεπτά πριν, Donacgreece είπε την while τη τρεχω πιο πάνω και με την επιλογή του χρήστη. Θα πρέπει να βάλω κι άλλη? Δε σε κατάλαβα...Σε ποιό κώδικα λες; Δε βλέπω while.
Donacgreece Δημοσ. 16 Οκτωβρίου 2022 Μέλος Δημοσ. 16 Οκτωβρίου 2022 Μόλις τώρα, Lanike71 είπε Δε σε κατάλαβα...Σε ποιό κώδικα λες; Δε βλέπω while. ποιο πάνω while True: user = input("Διάλεξε (Π)έτρα, (Ψ)αλίδι, (Χ)αρτί: ") .upper() while user not in ["π", "Π", "ψ", "Ψ", "χ", "Χ"]: print("Έδωσες λάθος επιλογή, δώσε κάτι από (π,Π,ψ,Ψ,χ,Χ)") user = input("Διάλεξε (Π)έτρα, (Ψ)αλίδι, (Χ)αρτί: ") # Επιλογή του υπολογιστή rnd = 'ΠΨΧΧΠΨΠΧΨΧΠΨΨΧΠ' computer = rnd[0] if computer == len(rnd): computer = rnd[0] έτσι είμαι για την ώρα αλλα δεν έχω καταφέρει να διαλέξει ο υπολογιστης το επόμενο γράμμα της γραμματοσειράς
Lanike71 Δημοσ. 16 Οκτωβρίου 2022 Δημοσ. 16 Οκτωβρίου 2022 2 λεπτά πριν, Donacgreece είπε ποιο πάνω while True: user = input("Διάλεξε (Π)έτρα, (Ψ)αλίδι, (Χ)αρτί: ") .upper() while user not in ["π", "Π", "ψ", "Ψ", "χ", "Χ"]: print("Έδωσες λάθος επιλογή, δώσε κάτι από (π,Π,ψ,Ψ,χ,Χ)") user = input("Διάλεξε (Π)έτρα, (Ψ)αλίδι, (Χ)αρτί: ") # Επιλογή του υπολογιστή rnd = 'ΠΨΧΧΠΨΠΧΨΧΠΨΨΧΠ' computer = rnd[0] if computer == len(rnd): computer = rnd[0] έτσι είμαι για την ώρα αλλα δεν έχω καταφέρει να διαλέξει ο υπολογιστης το επόμενο γράμμα της γραμματοσειράς Πού είναι η εντολή στον υπολογιστή "Πήγαινε στο επόμενο στοιχείο της λίστας";
Donacgreece Δημοσ. 16 Οκτωβρίου 2022 Μέλος Δημοσ. 16 Οκτωβρίου 2022 Μόλις τώρα, Lanike71 είπε Πού είναι η εντολή στον υπολογιστή "Πήγαινε στο επόμενο στοιχείο της λίστας"; ναι αυτο προσπαθω. πως να τη βάλω και που. φαντάζομαι στο τέλος πριν το break. αλλα πως το κάνω να ανεβανει κατα ένα δε ξερω
Lanike71 Δημοσ. 16 Οκτωβρίου 2022 Δημοσ. 16 Οκτωβρίου 2022 1 λεπτό πριν, Donacgreece είπε ναι αυτο προσπαθω. πως να τη βάλω και που. φαντάζομαι στο τέλος πριν το break. αλλα πως το κάνω να ανεβανει κατα ένα δε ξερω Γιατί δεν έχεις μία μεταβλητή που να κρατάει τη θέση; Μετά όλα θα είναι πιο εύκολα. Επίσης δε βλέπω το λόγο η λίστα να είναι μέσα στη while.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα