Πέτρα, ψαλίδι, χαρτί

...wallpapers, screenshots, videos, χιούμορ, κλπ

Συντονιστές: Geochr, konnn

Πέτρα, ψαλίδι, χαρτί

Δημοσίευσηαπό Dimitris » 17 Ιούλ 2009, 01:46

Και πριν φύγουμε για τις καλοκαιρινές διακοπές, έχω μια πρόκληση για τους συμφορουμήτες:

Σίγουρα όλοι μας έχουμε παίξει το παιχνίδι πέτρα-ψαλίδι-χαρτί, όπου η πέτρα κερδίζει έναντι του ψαλιδιού, το ψαλίδι κερδίζει έναντι του χαρτιού και το χαρτί κερδίζει έναντι της πέτρας. Αλλά ποιά είναι η βέλτιστη τακτική για να κερδίζει κανείς τις περισσότερες φορές; Ένα παιχνίδι τελειώνει όταν κάποιος κερδίσει δύο φορές. Η πρόκληση είναι να φτιάξουμε ένα πρόγραμμα python (μιας και τρέχουν τα μαθήματα αυτόν τον καιρό) που να παίζει πολλά παιχνίδια (πρωταθληματάκια) και να διαλέγει την τακτική που είναι η καλύτερη.

Καταρχήν, πρέπει να ορίσουμε τις δυνατές τακτικές (φυσικά ο καθένας μπορεί να τις επεκτείνει απεριόριστα).
Τακτική 1η
Τυχαία επιλογή μεταξύ πέτρας, ψαλιδιού, και χαρτιού.

Τακτική 2η
Παίζουμε πάντα ένα συνδυασμό, ας πούμε για παράδειγμα στην πρώτη κίνηση πέτρα, στη δεύτερη ψαλίδι, και στην τρίτη--αν υπάρξει--χαρτί.

Τακτική 3η
Παίζουμε αυτό που έπαιξε ο αντίπαλος στον προηγούμενο γύρο, εκτός από τον πρώτο που διαλέγουμε τυχαία.

Τακτική 4η
Χρησιμοποιώντας ένα νευρωνικό δίκτυο, προβλέπουμε με βάση αυτά που έχει παίξει ο αντίπαλος μέχρι τώρα, τι θα παίξει στην επόμενη κίνηση.

Ποια τακτική είναι καλύτερη για ένα πρωτάθλημα "στα τρία" και ποια για ένα πρωτάθλημα στα "δέκα"; Μη βιαστείται να απαντήσετε. :D

Είπε κανείς πως το πέτρα-ψαλίδι-χαρτί είναι βαρετό; Πώς μπορεί να επεκταθεί το παιχνίδι ώστε να περιλαμβάνει και φωτιά; Επιπλέον στοιχεία;

Θα χαρώ να δω προσπάθειες κώδικα που να παίζουν μια παρτίδα ή και πρωταθληματα!!

Αφιερωμένο στα παιδιά που παίζουν ακόμη πέτρα-ψαλίδι-χαρτί.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Πέτρα, ψαλίδι, χαρτί

Δημοσίευσηαπό headless » 17 Ιούλ 2009, 07:31

Όπως σίγουρα ξέρει όποιος έχει δεί The Big Bang Theory,υπάρχει και η πολύ πιο ενδιαφέρουσα εκδοχή του Rock Paper Scissors Lizard Spock.


Γνώσεις ⇛ Linux: Καλές ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Καλά
Λειτουργικό: debian wheezy/sid 64-bit (en_US.utf8)
Προδιαγραφές ⇛ CPU: 2x Intel Core2 Duo CPU E8400 3.00GHz │ RAM 3965 MiB │ ASUS INC. P5QL/EPU
Κάρτα γραφικών: nVidia GF104 [GeForce GTX 460] [10de:0e22]
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168]
My Blog
Άβαταρ μέλους
headless
powerTUX
powerTUX
 
Δημοσιεύσεις: 2173
Εγγραφή: 14 Μάιος 2008, 17:30
Τοποθεσία: Αθήνα
Launchpad: headl3ss
IRC: h3adl3ss
Εκτύπωση

Re: Πέτρα, ψαλίδι, χαρτί

Δημοσίευσηαπό hoffman » 22 Ιούλ 2009, 14:20

Εκατσα κι εφτιαξα ενα προγραμματακι για το παιχνιδι, αλλα μου βγαζει ενα σφαλμα που δεν μπορω να το λυσω (ως noob στη python). Κατα τα αλλα πιστευω οτι ειναι σωστο. Χρησιμοποιησα την πρωτη τακτικη γιατι ειναι πιο ευκολη, και αν εχω χρονο και ορεξη θα φτιαξω και καμια αλλη.
Το προγραμμα το αναρτησα εδω
Software: Ubuntu 10.04 32bit
Hardware: Intel Pentium 4 3.40GHz/RAM 1GB/
Εικόνα
hoffman
babeTUX
babeTUX
 
Δημοσιεύσεις: 35
Εγγραφή: 06 Αύγ 2008, 14:01
Εκτύπωση

Re: Πέτρα, ψαλίδι, χαρτί

Δημοσίευσηαπό logari81 » 22 Ιούλ 2009, 14:40

Το σφάλμα που σου βγαζει ειναι αυτο:
Κώδικας: Επιλογή όλων
Traceback (most recent call last):
  File "test.py", line 122, in <module>
    main()
  File "test.py", line 84, in main
    rps = RPS()
  File "test.py", line 64, in __init__
    self.list.insertLast('rock')
  File "test.py", line 44, in insertLast
    while self.current.getNextNode() != self.first:
AttributeError: 'NoneType' object has no attribute 'getNextNode'

Το προβλημα ειναι οτι εδω
Κώδικας: Επιλογή όλων
         while self.current.getNextNode() != self.first:

μετα από μια επαναληψη το self.current παίρνει την τιμή None. Μαλλον ήθελες να κανεις μια κυκλική λίστα ώστε να επανερχεσαι στο πρωτο element αλλα κατι δεν πηγε καλα.
http://opensourceecology.org/


Λειτουργικό: Ubuntu 10.04 lucid 64-bitΠροδιαγραφές: 4x Intel Core i5 CPU M 450 2.40GHz ‖ RAM 3696 MiB ‖ Lenovo KL3 - LENOVO IdeaPad Y560
Κάρτα γραφικών: ATI Device [1002:68c0]Ασύρματο: wlan0: Atheros Inc. AR928X Wireless Network Adapter (PCI-Express) [168c:002a] (rev 01)
logari81
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6074
Εγγραφή: 14 Μάιος 2008, 10:40
Εκτύπωση

Re: Πέτρα, ψαλίδι, χαρτί

Δημοσίευσηαπό sokoban4ever » 22 Ιούλ 2009, 16:09

@hoffman
Το getNextNode() στην κλάση
:think: δεν αυξάνει και τίποτα .( φαίνεται πως απλά υπάρχει διακοσμητικά)
χμμ ένα λεπτό αυτό είναι <type 'NoneType'>
( αν κατάλαβα καλά lista θα ήθελες να είναι.. :think: )
Ποιό απλά κάνε μία άδεια λίστα
πχ
lista =[]
στο όρισμα της init ή όπου αλλού νομίζεις καλύτερα
Δοκίμασε
να κάνεις την συνάρτηση( μέθοδο ) να επιστρέφει ένα στοιχείο +1 μπροστά κάθε φορά
επειδή θα είναι του instance της κλάσης βάλε μία μεταβλητή μετρητή έξω από κάθε μέθοδο αλλά μέσα στην κλάση ...
ώστε να μπορείς να έχεις "κοινό" το node
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Πέτρα, ψαλίδι, χαρτί

Δημοσίευσηαπό hoffman » 30 Ιούλ 2009, 14:43

Οριστε, εφτιαξα ενα καινουργιο, πολυ πιο απλο.
λινκ

Επισης εχω παρατηρησει οτι αν στον επομενο γυρο επιλεξεις το στοιχειο που στον προηγουμενο εχασε, νικας. Αυτη η τεχνικη πιανει και σε αυτο το προγραμμα και με ανθρωπους. οποτε το επομενο σταδιο ειναι να φτιαξω το προγραμμα να παιζει ετσι.
Software: Ubuntu 10.04 32bit
Hardware: Intel Pentium 4 3.40GHz/RAM 1GB/
Εικόνα
hoffman
babeTUX
babeTUX
 
Δημοσιεύσεις: 35
Εγγραφή: 06 Αύγ 2008, 14:01
Εκτύπωση


Επιστροφή στο Put the FUN back

cron