Python: Agonia

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Python: Agonia

Δημοσίευσηαπό Ilias95 » 25 Σεπ 2011, 18:50

H Agonia είναι μια υλοποίηση του δημοφιλούς παιχνιδιού "Αγωνία" στα χαρτιά και τρέχει σε γραμμή εντολών.
H εφαρμογή είναι platform independent και τρέχει σε Linux, Windows και Mac. Είναι γραμμένη σε Python3 και γράφτηκε με μοναδικό στόχο τη διασκέδαση.

Απαιτήσεις

  • Python3
Αν δεν έχετε τον python3 interpreter εγκατεστημένο στο σύστημα σας δίνετε:
Κώδικας: Επιλογή όλων
sudo apt-get install python3


Λήψη και Εκτέλεση

Για λήψη και εκτέλεση του προγράμματος δίνεται την παρακάτω εντολή σε μια γραμμή:
Κώδικας: Επιλογή όλων
cd ; rm -rf Ilias95-Agonia* ; wget --no-check-certificate https://github.com/Ilias95/Agonia/tarball/master -O agonia.tar.gz ; tar xzf agonia.tar.gz ; rm agonia.tar.gz ; cd Ilias95-Agonia* ; python3.2 agonia.py

Το πρόγραμμα θα αποθηκευτεί στον προσωπικό σας φάκελο (home) και εκτελείται είτε γραφικά επιλέγοντας εκτέλεση από τερματικό, είτε από τερματικό δίνοντας "python3 agonia.py".

Οποιεσδήποτε παρατηρήσεις/υποδείξεις/διορθώσεις είναι κάτι παραπάνω από ευπρόσδεκτες!

Free Software

Copyright (C) 2011 Ηλίας Σταμάτης <il.stam@yahoo.gr>
Ο κώδικας: https://github.com/Ilias95/Agonia
Άδεια χρήσης: GPL3

Current Version: 1.4
Τελευταία επεξεργασία από Ilias95 και 14 Οκτ 2011, 21:55, έχει επεξεργασθεί 5 φορά/ες συνολικά
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό Ilias95 » 25 Σεπ 2011, 22:43

Υπάρχουν κάποια λάθη στον τρόπο παιχνιδιού του υπολογιστή, καθώς και στους κανόνες (μπερδεύτηκα στο πάσο) που θα διορθωθούν σύντομα...
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό Ilias95 » 30 Σεπ 2011, 15:11

Έκδοση 1.1

Διορθώθηκαν:
- Το σύστημα με το πάσο. Πλέον ο παίκτης μπορεί να τραβήξει πρώτα μία κάρτα.
- Ο τρόπος παιχνιδιού του υπολογιστή στην επιλογή φύλλου.
- Ο τρόπος παιχνιδιού του υπολογιστή στην επιλογή χρώματος μετατροπής όταν παίζει Άσσο.

Προστέθηκε:
- Ταξινόμηση των λίστας των φύλλων που βλέπει ο παίκτης ανάλογα με το χρώμα.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό clepto » 30 Σεπ 2011, 15:26

φαίνεται ωραίο...θα το δοκιμάσω!
αν βρω κάποιο λάθος θα το αναφέρω εδώ...
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό clepto » 30 Σεπ 2011, 15:30

καλό θα ήταν, όταν τραβάς μια κάρτα κάτω από εκεί που σου λέει τι τράβηξες να σου λέει τι κάρτα είναι κάτω...γιατί ψάχνεις προς τα πάνω να βρεις και ψιλοχάνεσαι
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό Ilias95 » 30 Σεπ 2011, 15:52

clepto έγραψε:καλό θα ήταν, όταν τραβάς μια κάρτα κάτω από εκεί που σου λέει τι τράβηξες να σου λέει τι κάρτα είναι κάτω...γιατί ψάχνεις προς τα πάνω να βρεις και ψιλοχάνεσαι

Σωστά. Διορθώθηκε! :thumbup:
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό migf1 » 01 Οκτ 2011, 11:12

Καλημέρα,

γιατί γράφεις πως τρέχει μόνο σε Linux, μια χαρά τρέχει και σε Windows 7 που το δοκίμασα μόλις τώρα. Βέβαια, δεν ξέρω αν υπάρχει κάποια εξάρτηση με το λειτουργικό στην πορεία του παιχνιδιού, αλλά δεν μου φαίνεται και πολύ πιθανό να ισχύει κάτι τέτοιο. Στο IDLE τρέχει κανονικά, από γραμμή εντολών κολλάει στο διάβασμα Ελληνικών χαρακτήρων (στην αρχή που ρωτάει αν θες να παίξεις πρώτος), υποθέτω λόγω διαφορετικής κωδικοσελίδας... μια γρήγορη λύση είναι να ζητάς νούμερα αντί για γράμματα (π.χ. 1. για ναι, 2. για όχι) για να πάει παρακάτω και να δούμε αν έχει πρόβλημα και με τους λατινικούς χαρακτήρες.

Σε ότι αφορά το user-interface, καλό θα ήταν σε περίπτωση λάθους (όπως αυτό με τον βαλέ που δοκιμάζω να απαντήσω με διάφορες κάρτες και δεν με αφήνει) να ξανα-τυπώνει την κατάσταση του τραπεζιού.

Π.χ...



Γενικώς θα προτιμούσα ένα πιο εύχρηστο και συμπαγές ui, περίπου όπως εκείνο που είχα στην Ξερή αν το έχεις δοκιμάσει. Που δείχνει σε 3 γραμμές ολόκληρη την τρέχουσα κατάσταση του παιχνιδιού, στον κάθε γύρο.

Π.χ. κάτι σαν κι αυτό...

Κώδικας: Επιλογή όλων

On Table: 6H (+ 4 more cards) (31 unused cards)
Computer: 3 cards left ( collected: 10 cards )
PLAYER : 5H 8C 2H 6D ( collected: 5 cards )
>
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό Ilias95 » 01 Οκτ 2011, 12:03

Καλά λες, είναι platform independent το είχα ξεχάσει από άλλη εφαρμογή, θα το διορθώσω.
Σωστός και στο 2ο σχετικά με το ui, θα διορθωθεί και αυτό στην επόμενη έκδοση σε κάτι πιο εύχρηστο σαν αυτό που δείχνεις.
Το είχα δει το παιχνίδι της Ξερής που είχες δημοσιεύσει και να πω την αλήθεια από εκεί πήρα την ιδέα για κάποιο παιχνίδι με χαρτιά. Θα το ξαναδοκιμάσω για να δω και να διορθώσω και κάποιες άλλες λειτουργίες του προγράμματος.
Αυτό που δεν μπορώ να καταλάβω στο screenshot που έβαλες είναι γιατί δεν εμφανίζετε η γραμμή με τις διακεκομμένες γραμμές και στους επόμενους γύρους και εμφανίζεται μονάχα πάνω-πάνω.

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

Edit: Επίσης εκεί που ρωτάει αν θες να παίξεις πρώτος και γενικώς όπου περιμένει απάντηση μπορείς να δώσεις επίσης (y/n) αντί για (ν/ο).
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό migf1 » 01 Οκτ 2011, 12:53

Ilias95 έγραψε:
...
Στην επόμενη έκδοση επίσης θα προστεθεί και το σύστημα που θα κρατάει βαθμολογίες, στο οποίο θα ορίζεις εσύ στους πόσους πόντους θα τελειώσει το παιχνίδι και στο τέλος κάθε παρτίδας θα φαίνεται η τρέχουσα βαθμολογία.

nice :)

έγραψε:Edit: Επίσης εκεί που ρωτάει αν θες να παίξεις πρώτος και γενικώς όπου περιμένει απάντηση μπορείς να δώσεις επίσης (y/n) αντί για (ν/ο).

Οπότε υπάρχει γενικότερο πρόβλημα με το input στη γραμμή εντολή των Windows, γιατί ούτε το παραπάνω λειτουργεί. Ξέρεις ποια κωδικοσελίδα χρησιμοποιεί το πρόγραμμά σου; Αν την ξέρεις και βρούμε ποια είναι η αντίστοιχη για Windows, τότε μπορείς να διαθέσεις το πρόγραμμα μαζί με ένα batch file ειδικά για τη γραμμή εντολών των Windows, το οποίο απλά θα αλλάζει την κωδικωσελίδα και θα τρέχει την python3 περνώντας της σαν όρισμα το agonia.py :) ... κάτι σαν bash script δηλαδή, αλλά για Windows.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Python: Agonia

Δημοσίευσηαπό Ilias95 » 01 Οκτ 2011, 13:14

migf1 έγραψε:Οπότε υπάρχει γενικότερο πρόβλημα με το input στη γραμμή εντολή των Windows, γιατί ούτε το παραπάνω λειτουργεί. Ξέρεις ποια κωδικοσελίδα χρησιμοποιεί το πρόγραμμά σου; Αν την ξέρεις και βρούμε ποια είναι η αντίστοιχη για Windows, τότε μπορείς να διαθέσεις το πρόγραμμα μαζί με ένα batch file ειδικά για τη γραμμή εντολών των Windows, το οποίο απλά θα αλλάζει την κωδικωσελίδα και θα τρέχει την python3 περνώντας της σαν όρισμα το agonia.py :) ... κάτι σαν bash script δηλαδή, αλλά για Windows.


Ακούγοντας για πρώτη φορά τον όρο κωδικοσελίδα, με μια γρήγορη αναζήτηση κατέληξα στο ότι κωδικοσελίδα = κωδικοποίηση. Σωστά;
Αν ναι, τότε ή default κωδικοποίηση για κάθε πρόγραμμα γραμμένο σε python3 είναι utf-8. Αλλά τι πρόβλημα να έχουν τα Windows με utf-8;

Edit: Μήπως τρέχεις το πρόγραμμα με python2 αντί για python3; Στην python2 το default encoding είναι ascii και αυτό μπορεί να προκαλεί το πρόβλημα...
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Επόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι