migf1 Δημοσ. 8 Ιουλίου 2014 Δημοσ. 8 Ιουλίου 2014 Διόρθωσα (νομίζω) ένα bug που είχαν όλες οι εκδόσεις πριν την 0.3a1 με τα ταμπλό 6x6 (το πρόβλημα είχε να κάνει με το ότι στην 6x6 παραλλαγή του παιχνιδιού δημιουργούνται 2 τυχαία tiles αντί για 1 μετά από κάθε κίνηση). Ανέβασα την 0.3a1 στο αμέσως προηγούμενο ποστ. ΥΓ. Μην σκοτώνεστε για το ποιος θα πρωτo-κατεβάσει to game
bnvdarklord Δημοσ. 8 Ιουλίου 2014 Δημοσ. 8 Ιουλίου 2014 Ωραίος. Μια παρατήρηση: Στο readme εχεις κανει λαθος στην εντολή για το compile. Και μία πρόταση: βάλε κάποιο border γύρω απο το νέο block που εμφανίζεται σε κάθε κίνηση, γιατι χωρίς animation μερικές φορές μπερδεύει.
migf1 Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Ωραίος. Μια παρατήρηση: Στο readme εχεις κανει λαθος στην εντολή για το compile. Και μία πρόταση: βάλε κάποιο border γύρω απο το νέο block που εμφανίζεται σε κάθε κίνηση, γιατι χωρίς animation μερικές φορές μπερδεύει. Ευχαριστώ! Το διόρθωσα το readme (thanks!), και διόρθωσα κι άλλα bugs που βρήκα στον κώδικα (τα έγραψα πριν λίγο εδώ: http://www.insomnia.gr/topic/532930-ιδέες-για-project-σε-c/page-7#entry53315728). Αυτό με το border, το δοκίμασα στην αρχή, αλλά είχα μεγάλο πρόβλημα χώρου μετά με τους μεγάλους πίνακες (6x6, 8x8). Βασικά πρέπει να φτιαχτεί GUI για το game, χάνει πολύ σε text-mode
bnvdarklord Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Αυτό με το border, το δοκίμασα στην αρχή, αλλά είχα μεγάλο πρόβλημα χώρου μετά με τους μεγάλους πίνακες (6x6, 8x8). Για ποιο λόγο; Το border δεν χρειάζεται να κανει το block μεγαλύτερο
Dr.Fuzzy Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 ωραίο θα ήταν να υπάρχει επιλογή όταν ξεκινάει για CLI/GUI...αλλά δεν ξέρω κατά πόσο είναι εύκολο στον υπάρχοντα κώδικα να προστεθεί το GUI, δηλαδή πόσο resuable-extensible είναι ο κώδικας με το τρόπο που είναι δομημένος. Επίσης ωραίο θα ήταν να είναι platform independent οπότε να παίζει σε Win/OSX/Linux...Ίσως κάτι σε TK/Python (TKinter) για το GUI ή GTK+...
migf1 Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Για ποιο λόγο; Το border δεν χρειάζεται να κανει το block μεγαλύτερο Τι εννοείς δεν χρειάζεται; Π.χ. σε πίνακα 8χ8 το ύψος των tiles είναι 2 γραμμές( και το όλο board έρχεται τσίμα-τσίμα σε πλάτος με το help-area... πάει και κολλάει δίπλα του, χωρίς να αφήνει κανένα κενό). Οπότε με 2 γραμμές ύψος ανά tile, πώς θα βάλουμε border τριγύρω του; Επίσης, δεν νομίζω πως είναι εύκολο να μπει border μονάχα σε ένα tile, πρέπει να μπει σε όλα (αλλιώς πως θα το κάνουμε draw μέσα στο board μόνο του). Αν θέλεις να το ψάξεις μήπως βρεις εύκολη λύση που μου διαφεύγει, η σχετική συνάρτηση που καθορίζει τα drawing dimensions του κάθε tile είναι η _scrbox_tile_set_from_dim( struct _scrbox *box, int dim ), στο αρχείο tui.c Την χρησιμοποιεί η συνάρτηση: _init_layout( Tui *tui, const Board *board ) (στο ίδιο αρχείο, ακριβώς από κάτω της).
geomagas Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 ωραίο θα ήταν να υπάρχει επιλογή όταν ξεκινάει για CLI/GUI...αλλά δεν ξέρω κατά πόσο είναι εύκολο στον υπάρχοντα κώδικα να προστεθεί το GUI, δηλαδή πόσο resuable-extensible είναι ο κώδικας με το τρόπο που είναι δομημένος. Επίσης ωραίο θα ήταν να είναι platform independent οπότε να παίζει σε Win/OSX/Linux...Ίσως κάτι σε TK/Python (TKinter) για το GUI ή GTK+... Το σκεφτόμουν κι εγώ, αλλά δεν έχω βρει την ευκαιρία να "σκαλίσω" τον κώδικα για να έχω άποψη. Το μυαλό μου πήγε στο Lazarus, όπου αυτά τα πράγματα γίνονται σχετικά εύκολα. Απ' ότι θυμάμαι (έχω καιρό να ασχοληθώ) υποστηρίζει πολλές πλατφόρμες, και παλιότερα είχα καταφέρει να κάνω εύκολα linking με .o από C. Just a thought.
Dr.Fuzzy Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Ούτε εγώ τον έχω δει αναλυτικά τον κώδικα, οπότε ας μας πει ο creator κατά πόσο γίνεται εύκολα ή μη στην παρούσα μορφή του.
Directx Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 [..]Αυτό με το border, το δοκίμασα στην αρχή, αλλά είχα μεγάλο πρόβλημα χώρου μετά με τους μεγάλους πίνακες (6x6, 8x8).[..] Το ίδιο πρόβλημα αντιμετώπισα και εγώ γράφοντας σήμερα ένα μικρό κλώνο του 2048 σε C++ Builder XE καθώς το UI δεν υποστηρίζει animation και δεν είχα την διάθεση να υλοποιήσω κάτι δικό μου από το μηδέν. Η λύση στην οποία κατέληξα είναι να αναβοσβήνω για μερικά δευτερόλεπτα τον τίτλο (αριθμό) του νέου tile ώστε να τραβώ την προσοχή του παίκτη τόσο ώστε να γνωρίζει το εάν και που εμφανίστηκε το νέο tile.. http://youtu.be/_Mr3n_hJ8Nk Οπότε ίσως μια τέτοια προσέγγιση σε εξυπηρετήσει. Υ.Γ. @geomagas: Σε αλά-Delphi (VCL) εργαλεία όπως είναι ο C++ Builder το πρόγραμμα μου βγήκε περίπου 588 γραμμές με όλα τα component να δημιουργούνται δυναμικά κατά το run-time (καθώς σκοπεύω να αναρτήσω μελλοντικά τον κώδικα του) - αν το έγραφα ως τυπική εφαρμογή C++ Builder θα ήταν μικρότερο (αφού το UI θα το παρήγαγε δυναμικά/κρυφά το IDE). Εξίσου μικρό μέγεθος θα έχει (ίσως και μικρότερο) αν γραφθεί σε .NET 1
migf1 Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 ωραίο θα ήταν να υπάρχει επιλογή όταν ξεκινάει για CLI/GUI...αλλά δεν ξέρω κατά πόσο είναι εύκολο στον υπάρχοντα κώδικα να προστεθεί το GUI, δηλαδή πόσο resuable-extensible είναι ο κώδικας με το τρόπο που είναι δομημένος. Επίσης ωραίο θα ήταν να είναι platform independent οπότε να παίζει σε Win/OSX/Linux...Ίσως κάτι σε TK/Python (TKinter) για το GUI ή GTK+... Δεν πρέπει να είναι και πολύ δύσκολο, γιατί έχω προσπαθήσει να κάνω ικανοποιητικό decoupling μεταξύ ui και υπόλοιπων συστατικών του game. Λογικά αρκεί να αντικατασταθούν τα tui.c & tui_skin.c με αντίστοιχα gui.c και gui.skin.c, και κατόπιν να προσαρμοστεί ανάλογα το main.c Αν δεις για παράδειγμα τον κώδικα της main() φτιάχνει ένα tui object στην _alloc() και κατόπιν το περνάει στις υπόλοιπες συναρτήσεις σαν παράμετρο... προφανώς έχει και μερικά direct calls στο κυρίως σώμα της, αλλά σε γενικές γραμμές υπάρχει νομίζω ικανοποιητικό decoupling. Εφόσον πρόκειται για C project, νομίζω πως το GTK+ είναι η ενδεδειγμένη πρόταση για GUI. Εννοείται πως κι εγώ θέλω να είναι cross-platform, αλλά προφανώς δεν θα πω όχι αν κάποιος προθυμοποιηθεί να φτιάξει platform dependent GUI Επίσης, νομίζω πως τα replay-files έχουν όλες τις απαραίτητες πληροφορίες που μπορεί να χρειαστεί ένα GUI (δεν είμαι 100% σίγουρος, αλλά νομίζω πως τις έχουν). Οπότε αν κάποιος θελήσεις να πειραματιστεί με GUI για το game, θα μπορούσε νομίζω να ξεκινήσει φτιάχνοντας έναν replay player, με μόνο input ότι περιέχει το replay file. @Dx: Είσαι μεγάλος παίκτης! Αυτό θα κάνω... και είναι κι εύκολο θαρρώ γιατί έχω ήδη αυτονομημένο το drawing του κάθε tile! Thanks!
geomagas Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Υ.Γ. @geomagas: Σε αλά-Delphi (VCL) εργαλεία όπως είναι ο C++ Builder το πρόγραμμα μου βγήκε περίπου 588 γραμμές με όλα τα component να δημιουργούνται δυναμικά κατά το run-time (καθώς σκοπεύω να αναρτήσω μελλοντικά τον κώδικα του) - αν το έγραφα ως τυπική εφαρμογή C++ Builder θα ήταν μικρότερο (αφού το UI θα το παρήγαγε δυναμικά/κρυφά το IDE). Εξίσου μικρό μέγεθος θα έχει (ίσως και μικρότερο) αν γραφθεί σε .NET Ok, και που είναι το πρόβλημα; Στον αριθμό των γραμμών; Πάντως, δεν βλέπω το λόγο να μην μπορούν να αναπτυχθούν πολλά (g)ui ταυτόχρονα, και η επιλογή να γίνεται είτε στο compile time είτε στο runtime. Το ίδιο ισχύει και για το (τα) AI.
Directx Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Ok, και που είναι το πρόβλημα; Στον αριθμό των γραμμών;[..]Πουθενά δεν υπάρχει πρόβλημα - απλά μιας και ανέφερες το Lazarus ("[..]όπου αυτά τα πράγματα γίνονται σχετικά εύκολα[..]") είπα να δώσω μερικά hint από την ανάπτυξη του προγράμματος σε C++ Builder επειδή ομοιάζει με το Lazarus, για αυτό ανέφερα τον αριθμό των γραμμών που μου πήρε η υλοποίηση του κλπ, κουβέντα να γίνεται ..
migf1 Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Πάντως αντί για πολλά GUI, προσωπικά θα προτιμούσα ένα με ποικιλόμορφα skins (όχι ότι με χαλάει όμως αν γίνουν πολλά GUI ) 1
geomagas Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Γιατί όχι πολλά gui με ποικιλλόμορφα skins το καθένα;;; Παιδιά, αν παρασύρομαι να μου το πείτε, έτσι; Μην ντρέπεστε! Πέρα από την πλάκα, συνεχίζω να μην έχω κοιτάξει επαρκώς τον κώδικα, αλλά παρατήρησα ότι υπάρχει πχ το tui.h και το tui.c. Θεωρώ ότι θα πρέπει να υπάρχει ένα ui.h, αρκετά generic για να περιέχει τις δομές και functions που η engine περιμένει από το εκάστοτε ui να υλοποιήσει. Από κεί κι έπειτα, θα υλοποιούνται uis, κατά προτίμηση σε ξεχωριστά subdirectories το καθένα, γράφοντας μόνο το αντίστοιχο *ui.c (και το υπάρχον tui.c θα πρέπει να αποκτήσει το δικό του subdirectory). Με τα κατάλληλα targets στο makefile, θα μπορεί να επιλέγεται κάθε φορά το επιθυμητό (g)ui.
bnvdarklord Δημοσ. 9 Ιουλίου 2014 Δημοσ. 9 Ιουλίου 2014 Τι εννοείς δεν χρειάζεται; Μμ δεν ειχε παιξει τα άλλα modes στα οποία δεν χωράει border. Ισως αν "εβαφες" απλά το tile με το νούμερο στα νέα tiles. Ή αν είχαν καποιο delay στο spawn, μερικα ms μετά την κίνηση του χρήστη.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα