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

Παιχνίδι 2048 σε C


johnny.tifosi

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

Πως πάει το ιώδιο; :)

 

Εγώ επιτέλους χαλαρώνω από σήμερα, αλλά μάλλον θα το ρίξω κι εγώ στο ιώδιο παρά στο coding.

Με αργούς ρυθμούς τον έχω προχωρήσει τον GTK2 player, περίπου λίγο πάνω από το μισό του.

 

Επισυνάπτω στο τέλος του ποστ ένα ss από 8x8 ταμπλό κι ένα 32μπιτο εκτελέσιμο για Windows για όποιον θέλει να πάρει γεύση.

 

Τα παρακάτω ΔΕΝ δουλεύουν ακόμα:

1. Γλώσσα

2. Αλλαγή ταχύτητας του play

3. O slider κάτω από το ταμπλό (άρα δεν φαίνεται και ο ΑΑ της τρέχουσας κίνησης)

4. Η εντολή "Jump to..." στο μενού

 

Το playback δεν το έχω ούτε με timer ούτε με threads, το έχω με το κανονικό event-loop του GTK2, οπότε δεν είναι και πολύ responsive τα Pause και Stop buttons... δουλεύουν όμως.

 

Επίσης, το αναπτύσσω σε ανάλυση 1920x1080 και το παράθυρο έχει ύψος 800px. Του έχω πει αν η ανάλυση είναι μικρότερη από 800px να χρησιμοποιεί ότι ύψος βρει στην οθόνη του user, αλλά δεν το έχω τσεκάρει.

 

Ο κώδικας είναι τελείως σε κατάσταση 1st-draft, οπότε δεν τον έχω συμπεριλάβει. Αν δεν σας πειράζει που είναι χωρίς σχόλια, messy, κλπ, μπορώ να τον ανεβάσω σε ξεχωριστό branch στο Github, μαζί με οδηγίες για το πως να τον κάνετε compile. Πείτε μου αν είναι (γιατί δεν έχω ιδέα πότε θα τον ολοκληρώσω τον player).

 

Για να τρέξει το πρόγραμμα θέλει GTK2 runtime (2.24.8... λογικά θα δουλεύει και με 2.24.10). Αν δεν έχετε εγκατεστημένο GTK2 runtime, υπάρχει installer εδώ κι εδώ (νομίζω είναι τα ίδια). Εγώ έχω το all-in-one-bundle από το site του GTK, που περιέχει runtime + dev (το link έχει το 2.24.10, εγώ έχω εγκατεστημένο το 2.24.8).

 

Screenshot (το βγάζει παραμορφωμένο, κάντε του κλικ για να το δείτε νορμάλ ):

 

post-38307-0-30406400-1406925914_thumb.png

 

Download: gtk2_player.zip

 

Feedback καλοδεχούμενα.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 272
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσιευμένες Εικόνες

Άψογος! :-)

 

Το ιώδιο καλά πάει, το ίδιο όμως και το πήξιμο. Εγώ δεν έχω προχωρήσει, γιατί προσπαθώ να κλείσω εκκρεμότητες (εντάξει, χαζολογώ και λίγο... :P )

 

Γιατί δεν φτιάχνεις ένα branch να το ανεβάσουμε;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Άψογος! :-)

 

Το ιώδιο καλά πάει, το ίδιο όμως και το πήξιμο. Εγώ δεν έχω προχωρήσει, γιατί προσπαθώ να κλείσω εκκρεμότητες (εντάξει, χαζολογώ και λίγο... :P )

"Made in a hurry by geomagas ;)" :lol:

Ωραίο :)

 

Γιατί δεν φτιάχνεις ένα branch να το ανεβάσουμε;

Να φτιάξω. Θέλω να του βάλω και τα speed και τον slider να δουλεύουν και θα το ανεβάσω (και την γλώσσα θα την φτιάξω πιο μετά). Ελπίζω μέσα στο Σ/Κ. Απλά, δεν την παλεύω με την καμία να βάλω και σχόλια στον κώδικα, ελπίζω να μη σας χαλάει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

"Made in a hurry by geomagas ;)" :lol:

Ωραίο :)

 

Always in a hurry... :wacko:

 

Απλά, δεν την παλεύω με την καμία να βάλω και σχόλια στον κώδικα, ελπίζω να μη σας χαλάει.

 

Εμένα καθόλου. Join the club! :-D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν το κατέβασε κανείς να δώσει λίγο feedback; :(

 

Εγώ έφτιαξα σήμερα και το "Jump το.." και τα +/- στην ταχύτητα του playback. Οπότε έμειναν ο slider και η γλώσσα.

 

Να ανεβάσω το νέο εκτελέσιμο για feedback, ή θα πάει άπατο κι αυτό; :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Ραστώνη γαρ... Δεν φταις εσύ, είναι η εποχή τέτοια.

 

Εγώ λέω να το ανεβάσεις κατευθείαν github.

Αφού έφαγα τον γάιδαρο κι έχει μείνει μόνο η ουρά (δηλαδή η γλώσσα) λέω να τη φάω κι αυτή και να το ανεβάσω μια και καλή. Έως τότε επισυνάπτω zip με ότι υπάρχει μέχρι στιγμής: κώδικας (τελείως 1st draft) + sample replay files + Win32 εκτελέσιμο.

 

Θεωρητικά έμεινε μονάχα η γλώσσα σε θέμα λειτουργικότητας, και να φτιαχτεί με timer to auto-play αντί για loop με g_usleep() που είναι τώρα. Θα με βοηθούσε αν μπορούσατε να του κάνετε λίγο beta-testing μέχρι τότε.

 

Screen-Shot (slider + jump to):

 

 

post-38307-0-24979000-1407096279_thumb.png

 

 

Download: https://app.box.com/s/0df095nx0r5z31jsinme (zip, ~400Kb).

 

Σε Windows, βάλτε το GTK+ 2.24.10 runtime που γράφω στο προηγούμενο ποστ, προκειμένου να σας τρέξει το εκτελέσιμο (main.exe).

 

Αν είστε σε Linux, λογικά το έχετε προεγκατεστημένο το GTK+2 (και το GTK+3). Αν όχι, μπορείτε να το βάλετε μόνοι σας (σε κάθε διανομή έχει διαφορετική εντολή... π.χ. σε ubuntu είναι: sudo apt-get install libgtk2.0-dev κι ενδεχομένως και: sudo apt-get install gtk2-engines-pixbuf).

 

Κατόπιν μπορείτε να κάνετε compile τα sources:

cd src
gcc -std=c99 -O3 *.c `pkg-config --cflags --libs gtk+-2.0`
* από το pkg-config και μετά περικλείεται σε back-ticks (ανάποδα μονά quotes δηλαδή)

 

ΥΓ. Τον φάκελο gui/ τον έχω 2 φορές μέσα στο zip (και μέσα και έξω από τον φάκελο src/) επειδή τον θέλει και για να κάνει compile, και για να τρέξει μετά το πρόγραμμα... τον έβαλα λοιπόν και μέσα στον src/ για να σας διευκολύνω.

 

EDIT:

 

Σχετικά με τον κώδικα, η ιδέα είναι πως μόνο το gui.c καλεί public ρουτίνες από τα υπόλοιπα gui_xxx.c source modules (τα οποία με τη σειρά τους, καλούν μονάχα ρουτίνες που ορίζονται μέσα τους + public ρουτίνες του gui.c).

Επεξ/σία από migf1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@geomagas:

 

Σου έκανα ένα pull-request με κάτι ψιλο-λόγια. Βάλτο όταν ευκαιρήσεις, για να σου στείλω μετά κι ένα dev-branch με τον replayer, γιατί δεν με βλέπω να έχω διάθεση να ασχοληθώ... το μυαλό μου το έχω στα μπάνια και τις διακοπές :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σα δε ντρέπεσαι lead developer πράγμα :P

 

:lol: :lol:

 

Βασικά με το που ξε-πηξα τέλος Ιούλιου, ασχολήθηκα με τον player. Ακόμα και σήμερα, του άλλαξα τον τρόπο που διαβάζει τα τέλη των γραμμών (τον έκανα να τα διαβάζει είτε είναι \r\n, είτε \r είτε \n) γιατί νομίζω έτσι όπως το είχα στο zip του προηγούμενου ποστ πρέπει να τα παίζει με '\r' ... μάλλον θα το αλλάξω και στο κανονικό game... και μάλλον θα καταργήσω κι εκεί πέρα και την s_tokenize() και την s_fixeol() και θα κάνω το parsing των γραμμών όπως το κάνω στον player, δηλαδή με char pointer που τον κουνάω προοδευτικά).

 

Απλά μπούκωσα προς το παρόν, ... συν ότι μάλλον στο τέλος της βδομάδα θα την κάνω για διακοπές. Θα φροντίσω όμως να τον στείλω ως dev-branch τον player στον geomagas πριν φύγω, κι ας μη δουλεύει η γλώσσα, κι ας είναι ψιλο-μπάχααλο ο κώδικας.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@geomagas:

 

Σου έκανα ένα pull-request με κάτι ψιλο-λόγια. Βάλτο όταν ευκαιρήσεις, για να σου στείλω μετά κι ένα dev-branch με τον replayer, γιατί δεν με βλέπω να έχω διάθεση να ασχοληθώ... το μυαλό μου το έχω στα μπάνια και τις διακοπές :P

 

Έτοιμος!

 

Σα δε ντρέπεσαι lead developer πράγμα :P

 

:-D :-D :-D

Είδες;;; Γι αυτό μετά μας λένε τεμπελχανάδες Έλληνες οι "απ' όξω". Όχι επειδή μας ζηλεύουν!

 

Μπάνια, ήλιος, ουζάκι με ψαράκι δίπλα στο κύμα... Α πα πα πα πα! Αηδίες! :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Semi-off topic:Επειδή μ'αρέσει πάρα πολύ το συγκεκριμένο παιχνίδι είπα να δοκιμάσω να φτιάξω ένα botaki για να το λύνει.

Ακόμα είναι ψιλό beta αλλά πάει καλά.

 

Έχει δοκιμάσει κανείς να φτιάξει κάτι αντίστοιχο?(ασχέτως γλώσσας)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Semi-off topic:Επειδή μ'αρέσει πάρα πολύ το συγκεκριμένο παιχνίδι είπα να δοκιμάσω να φτιάξω ένα botaki για να το λύνει.

Ακόμα είναι ψιλό beta αλλά πάει καλά.

 

Έχει δοκιμάσει κανείς να φτιάξει κάτι αντίστοιχο?(ασχέτως γλώσσας)

Τσέκαρε αυτό αν θες: https://github.com/ov3y/2048-AI

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Semi-off topic:Επειδή μ'αρέσει πάρα πολύ το συγκεκριμένο παιχνίδι είπα να δοκιμάσω να φτιάξω ένα botaki για να το λύνει.

Ακόμα είναι ψιλό beta αλλά πάει καλά.

 

Έχει δοκιμάσει κανείς να φτιάξει κάτι αντίστοιχο?(ασχέτως γλώσσας)

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

Τσέκαρε αυτό αν θες: https://github.com/ov3y/2048-AI

Το είχα δει αυτό αλλά ήθελα να προσπαθήσω να κάνω κάτι μόνος.

 

Το σκεφτόμουν να ασχοληθώ μόλις βρω το χρόνο. Αν θέλεις να αναλύσεις τον αλγόριθμό σου, είμαι όλος αυτιά.

Ακόμα είναι πολύ πρόχειρο αλλά μπορείς να το δεις in action εδώ

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

 

(Best score so far 12000)

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

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