ενα παιχνίδι τέτρις με γραφικό περιβάλλον από μένα...

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

ενα παιχνίδι τέτρις με γραφικό περιβάλλον από μένα...

Δημοσίευση από soteres2002 » 05 Αύγ 2010 15:29

Μιας που γύρισα πίσω στο γραφείο στα Γιάννενα είπα να κάνω ένα ξεκαθάρισμα στο PC, και εντελώς κατά τύχη βρήκα ένα παιχνιδάκι Τέτρις που έγραψα εγώ και ένας φίλος για μια εργασία στο μάθημα των Γραφικών Υπολογιστών εδώ στο Πανεπιστήμιο. Attached ο κώδικας. Παίζει μόνο σε Λίνουξ, αλλά υπάρχει και η περίπτωση να παίξει και σε Windows αν υπάρχει port της Xlib. (Εγώ πάντως που το είχα ψάξει γιατί με ενδιέφερε, δεν βρήκα τίποτα για Cygwin/Mingw). Για τους υπόλοιπους Λινουξάδες... βάλτε το πακέτο xlib-dev από τον package manager σας, γιατί το παιχνίδι χρησιμοποιεί το X για να κάνει rendering τα γραφικά.

Για να το τρέξουμε κάνουμε τα εξής:
1) κατεβάζουμε το συμπιεσμένο αρχείο με τα sources
2) ανοίγουμε κονσόλα (αν δεν έχουμε ανοίξει ήδη)
3) $ cd /path/to/compressed/parent/folder
3) $ tar xvzf xtris.tar.gz (αποσυμπίεση)
4) $ cd xtris (αλλάζουμε directory)
5) $ make (compile sources, δεδομένου ότι τα Xlib dev files είναι ηδη εγκατεστημένα στο σύστημά μας)

αν θέλουμε να το βάλουμε και στο σύστημά μας, δίνουμε την εξης εντολή:

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

$ sudo cp game /usr/bin
(αν θέλετε να βάλετε και δικαιώματα στο binary, αυτό είναι άλλη ιστορία)

...και τέλος η απόλαυση του επιστημονικού οίστρου...
6) $ ./game

Τα υπόλοιπα είναι θέμα GUI. Καλή διασκέδαση...

Κι ένα screenshot also included, για όσους δεν έχουν Λίνουξ και θέλουν να δουν το απλώς το παιχνίδι...

Σημείωση: το παιχνίδι είναι ελαφρώς παραλαγμένο από το γνωστό Τέτρις, από την άποψη ότι έχουν φτιαχθεί μερικά τριόμινα που δεν υπάρχουν στο κλασικο τέτρις... Παρ' όλα αυτά, όμως, η φιλοσοφία και η λειτουργία είναι κατα τα άλλα η ίδια....

Μερικά hints: έχουμε φτιάξει και ένα grid για να μπορεί ο παίκτης να βλέπει πως κινείται το τριόμινο πάνω στο πλέγμα. Αν δεν το θέλει κανείς αυτό, πατάμε απλώς BACKSPACE και το πλέγμα εμφανιζεται/εξαφανίζεται... Επίσης, το παιχνίδι έχει και λειτουργίες φιλικές σε παίκτες με ...συχνοουρίες... Συγκεκριμένα, αν θέλετε να πάτε τουαλέτα εν μέσω του παιχνιδιού, υπάρχει ειδική επιλογή για να κάνει Pause το παιχνίδι... Επιπλέον επιλογές θα βρείτε πάνω στο board του παιχνιδιού στην πάνω αριστερή γωνία.

Future work: αν βρω καποια στιγμή χρόνο, όπως τον παλιο καλό καιρό με τις hackιές, σκέφτομαι να σχεδιάσω και να υλοποιήσω ένα μίνι πρωτόκολλο έτσι ώστε πολλαπλά instances του παιχνιδιού να μπορούν να κάνουν join σε ανταγωνιστικά παιχνίδια 2 ή περισσότερων χρηστών μέσω TCP/IP, είτε σε LAN είτε πάνω από το Ίντερνετ...
Τελευταία επεξεργασία από το μέλος soteres2002 την 21 Αύγ 2016 20:37, έχει επεξεργασθεί 1 φορά συνολικά.

papi1
Δημοσιεύσεις: 8
Εγγραφή: 01 Φεβ 2009 12:58

ενα παιχνίδι τέτρις με γραφικό περιβάλλον από μένα...

Δημοσίευση από papi1 » 05 Αύγ 2010 18:33

Wow, πολυ καλη δομη.

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

ενα παιχνίδι τέτρις με γραφικό περιβάλλον από μένα...

Δημοσίευση από soteres2002 » 05 Αύγ 2010 19:18

papi1 έγραψε:Wow, πολυ καλη δομη.
Ποιανού πράγματος :question:

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

ενα παιχνίδι τέτρις με γραφικό περιβάλλον από μένα...

Δημοσίευση από soteres2002 » 05 Αύγ 2010 21:29

Λοιπόν, μόλις τελείωσα την εγκατάσταση του Cygwin και κατάφερα να κάνω compile σε Windows χωρίς καμία απολύτως τροποίηση στον κώδικα του game. Κάνω attach το .exe για win32. Λογικά θα παίξει και σε κάθε 64μπιτο ΡC χωρίς πρόβλημα μαζί με τα DLLs που βάζω στο archive...

Για να παίξει σε Windows, και δεδομένου ότι έχουμε εγκαταστήσει πάνω X-server (βλέπε Xming πιο πάνω, αν δεν το έχετε), πρέπει αρχικά να ξέρετε το hostname του PC. Εμένα πχ το δικό μου είναι το scylla.

Για να ξεκινήσω το game δίνω:

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

$ ./game scylla:0
όπου 0 είναι το screen number του X server.

Σημείωση: για να παίξει το .εχε πρέπει να έχετε κάνει εγκατάσταση το Cygwin. Μπορείτε να βάλετε μία minimal έκδοσή του που θα έχει υποστήριξη μόνο για το X11, αυτό περιλαμβάνει ΚΑΙ τον X-server. Επίσης, όλα τα DLLs κάτω από το φάκελο /bin του installation directory πρέπει αν γραφτούν και στο C:\windows για να είναι visible από το παιχνίδι...

Για όσους δεν έχουν πολύ χώρο στο δίσκο, μπορούν εναλλακτικά να κάνουν copy στο φάκελο WINDOWS, μόνο τα DLLs με όνομα:

GYGWIN_S-1.DLL
CYGWIN1.DLL
CYGX11-6.DLL

(έκανα ένα trace με ένα free Windows DLL dependency tracing tool και αυτά είναι τα μόνα DLL με τα οποία έχει εξάρτηση το .exe που επισυνάπτω σε αυτό το reply).

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης