Το παρακάτω πρόγραμμα γράφτηκε σε γλώσσα C και αποτελεί ένα απλό πρόγραμμα που προσομοιάζει μια στρατηγική για το παιχνίδι “Prisoner’s Dilemma”
Το πρόγραμμα επιλέγει και εμφανίζει την κίνησή του, C ή D, και ανταλλάσσει κινήσεις με έναν αντίπαλο.
Το πρόγραμμα επιλέγει αρχικά ‘C’ και το εμφανίζει στην οθόνη.
Ακολουθεί μια ανταλλαγή κινήσεων με έναν αντίπαλο, με τον παίκτη να επιλέγει κινήσεις (‘C’ ή ‘D’) κατά τη διάρκεια του παιχνιδιού. Το πρόγραμμα μπορεί να παίξει εναντίον ενός χρήστη ή ενός παρόμοιου προγράμματος.
Η στρατηγική του προγράμματος είναι σχεδόν Tit - For - Tat, δηλαδή ξεκινάει με συνεργασία και στη συνέχεια, κάνει ό,τι έκανε ο αντίπαλος στον προηγούμενο γύρο. Αν το πρόγραμμα ανιχνεύσει ότι ο παίκτης είναι επιθετικός, π.χ. παίξει δύο συνεχόμενες φορές D, παίζει και αυτό D, μέχρι ο αντίπαλος να υποχωρήσει. Περιλαμβάνει και την περίπτωση συγχώρεσης, όπου όταν το Tit - Fot - Tat χαλάσει, παίζει μία φορά C αντί για D, για να αποφευχθεί το αλλεπάλληλο ασυγχρόνιστο Tit - For - Tat. Περιλαμβάνει και έλεγχο ώστε το πρόγραμμα να παίζει τουλάχιστον μία φορά C και μία φορά D ανά 1000 γύρους. Σε γενικές γραμμές, είναι πολύ απλή στρατιγική, αλλά και αποτελεσματική!
Συντάξτε τον κώδικα σε ένα αρχείο με κατάληξη .c.
Χρησιμοποιήστε έναν compiler C για να μεταγλωττίσετε το πρόγραμμα, με την εντολή
gcc -Os -Wall -Wextra -Werror -pedantic -o coop coop.c -lm
Εκτελέστε το παραγόμενο εκτελέσιμο αρχείο, και παίξτε!
Αυτό το πρόγραμμα δημιουργείται με σκοπό την απλή προσομοίωση ενός παιχνιδιού και μιας στρατηγικής παικτών. Δεν έχει σκοπό να αντικαταστήσει πραγματικά παιχνίδια ή στρατηγικές λήψης αποφάσεων.
Καλή διασκέδαση και πειραματισμό!