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

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

Δημοσ.
  Στις 12/8/2014 στις 7:02 ΜΜ, geomagas είπε

Τα branches πάντως αντιστοιχούν σωστά. Θεωρώ ότι δεν θα έχουμε πρόβλημα.

Είναι κάτι συγκεκριμένο που πρέπει να εξέγξω;

Σάμπως ξέρω; :lol: Δεν κρατάς καλού-κακού ένα backup και των 2 branches του blessed πριν τα κάνεις merge? (θα αρχίσει το κράξιμο πάλι ο ημίθεος :P)

 

Btw, έβαλα και τα .gitignore στο remote repo... καλά έκανα άραγε;

 

  Αναφορά σε κείμενο

Για το Lazarus, είχα τη φαεινή ιδέα να το κάνω upgrade πριν λίγες μέρες (είχα μία αρχαία έκδοση 0.9.κάτι) και κατέληξε να μη δουλεύει (δεν έβρισκε τα .cfg της FreePascal). Μόλις χθες κατάφερα και του ξανάκανα ένα clean install στην τελευταία έκδοση.

 

Αλλά με τέτοιο πήξιμο φέτος (ούτε μουσταλευριά να ήμουν!) δεν ξέρω αν θα προλάβω τίποτα. Στη χειρότερη, θα του ρίξω καμιά ματιά μετά τις 16 δίπλα στο κύμα! :D

 

  Εμφάνιση κρυμμένου περιεχομένου

 

Τον είχα δοκιμάσει τον laz-player. Δεν δούλευε (δεν άνοιγε αρχεία, κλπ), αλλά μια 1η γεύση την πήρα. Αν το κατάλαβα σωστά, το board το ζωγράφιζες χειροκίνητα, σωστά; (όπως έκανε νομίζω κι ο DirectX στο win32 version που είχε ανεβάσει στο νήμα, με το WM_PAINT event).

 

Δεν έχω ιδέα αν είναι πιο εύκολο ή πιο δύσκολο στο lazarus, για την ιστορία όμως εγώ στον GTK+2 player δεν τα ζωγραφίζω χειροκίνητα τα tiles (αντίθετα, στο κανονικό game, τα ζωγραφίζω κι εγώ χειροκίνητα στην κονσόλα).

 

Στον player, ξεκινάω με ένα άδειο 4x4 table-widget (φτιαγμένο στο το Glade) και κατόπιν πάω και το γεμίζω δυναμικά με event-box + label widgets στον κώδικα. Όταν χρειάζεται να γίνει resize το board, κάνω free τα tiles, κάνω resize το table-widget (έχει έτοιμη συνάρτηση το GTK+2 για το resize των table-widgets) και μετά πάω και το ξαναγεμίζω δυναμικά με tiles (event-box + label widgets).

 

Το έκανα έτσι, γιατί για να τα ζωγραφίζω σε canva (drawing widget) έπρεπε να μπλέξω με την Cairo βιβλιοθήκη, που δεν την ξέρω.

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

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

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

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

Δημοσ.
  Στις 12/8/2014 στις 7:20 ΜΜ, migf1 είπε

Σάμπως ξέρω; :lol: Δεν κρατάς καλού-κακού ένα backup και των 2 branches του blessed πριν τα κάνεις merge? (θα αρχίσει το κράξιμο πάλι ο ημίθεος :P)

Μπα δεν κράζω κανέναν. Ο καθένας δουλεύει όπως θέλει :)

 

Απλά μου φαίνεται παράξενο να φοβάται κάποιος και να θέλει "να κρατήσει backup" όταν ένα git repo είναι το ίδιο ένα backup των πάντων από την αρχή μέχρι και τώρα. Για παράδειγμα αυτή τη στιγμή το master βρίσκεται στο commit c1b73d2. Όσα merge (σωστά ή λάθος) και να γίνουν, οποιοσδήποτε κάνει checkout το c1b732d2, έχει κατ ουσίαν το backup που λες.

Δημοσ.
  Στις 12/8/2014 στις 7:20 ΜΜ, migf1 είπε

Σάμπως ξέρω; :lol: Δεν κρατάς καλού-κακού ένα backup και των 2 branches του blessed πριν τα κάνεις merge? (θα αρχίσει το κράξιμο πάλι ο ημίθεος :P)

Λέω να το κάνουμε the git way. Το πολύ-πολύ να χρειαστεί μετά να ...μάθουμε και το git reset (ή revert, δεν είμαι σίγουρος ποιο από τα δύο είναι).

Τι λες;

 

  Στις 12/8/2014 στις 7:20 ΜΜ, migf1 είπε

Btw, έβαλα και τα .gitignore στο remote repo... καλά έκανα άραγε;

 

Θα δείξει... :P

 

 

  Εμφάνιση κρυμμένου περιεχομένου

 

 

  Στις 12/8/2014 στις 7:20 ΜΜ, migf1 είπε

Τον είχα δοκιμάσει τον laz-player. Δεν δούλευε (δεν άνοιγε αρχεία, κλπ), αλλά μια 1η γεύση την πήρα. Αν το κατάλαβα σωστά, το board το ζωγράφιζες χειροκίνητα, σωστά; (όπως έκανε νομίζω κι ο DirectX στο win32 version που είχε ανεβάσει στο νήμα, με το WM_PAINT event).

Όχι, έχει ένα DrawGrid component. Απλά του δίνω πόσα rows/columns θα έχει όταν φορτώνω το .sav και μετά το χειρίζομαι με τις δικές του μεθόδους. Του δίνεις και μία callback να καλέσει όταν χρειάζεται να κάνει draw κάποιο cell, και εκεί κάνεις χειροκίνητα draw στον canvas. Αλλά το Canvas object είναι χυδαία "εύκολο" στο Lazarus.

 

Πάντως ναι, δεν δουλεύει ακόμα, ούτε τα βασικά δεν κάνει. Είχα μείνει στο σχεδιασμό του interface.

Δημοσ.

Κάνε το όπως νομίζεις καλύτερα, εσύ είσαι ο maintainer (και ο ημίθεος ο σύμβουλος) :)

 

Πάω να την πέσω παίδες, καληνυχτίζω... αύριο πάλι :)

Δημοσ.

Merged. Κι ο (imi)Θεός βοηθός! :D

 

  Στις 12/8/2014 στις 8:10 ΜΜ, migf1 είπε

Κάνε το όπως νομίζεις καλύτερα, εσύ είσαι ο maintainer (και ο ημίθεος ο σύμβουλος) :)

Πάω να την πέσω παίδες, καληνυχτίζω... αύριο πάλι :)

 

Καλή ξεκούραση! :)

Δημοσ.

Επειδή βλέπω ότι σου φαίνονται λίγες οι υπό-εντολές του git και δεν έχεις χορτάσει, να θυμηθώ να γράψω για το squashing όταν τα κάνει merge (βασικά και τώρα μπορώ αν χρησιμοποιήσω το δικό σου repo αλλά βαριέμαι τώρα :))

Δημοσ.

 

  Εμφάνιση κρυμμένου περιεχομένου

 

  • Like 3
Δημοσ.
  Στις 12/8/2014 στις 3:03 ΜΜ, johnny.tifosi είπε

...

Οποιαδήποτε παρατήρηση για bugs είναι κάτι παραπάνω από ευπρόσδεκτη!

...

Προσθέτω συνημμένο με τον κώδικα και εκτελέσιμο. Καλή διασκέδαση!

Είπα σήμερα να δω λίγο τον κώδικα, αλλά δυστυχώς δεν μου είναι ελκυστικός. Δεν ξέρω αν έχεις το χρόνο και το ενδιαφέρον για κάτι τέτοιο, αλλά νομίζω θα μπορούσες να ασχοληθείς 1-2 ώρες για να τον κάνεις πιο ευανάγνωστο και πιο δομημένο.

 

H χρήση κενών είναι πολύ βασική στο beautification του κώδικα, και στις compiled γλώσσες δεν προκαλεί runtime overhead. Για παράδειγμα οι συναρτήσεις σου random_in_range() και insert() που τώρα είναι έτσι...

 

  Εμφάνιση κρυμμένου περιεχομένου

 

μπορούν να γίνουν beautified σε κάτι τέτοιο:

 

  Εμφάνιση κρυμμένου περιεχομένου

 

που νομίζω τις κάνει πολύ πιο ευανάγνωστες. Υπάρχουν διάφορα online & offline εργαλεία για αυτόματο ή ημι-αυτόματο beautification (https://www.google.com/?hl=en&gws_rd=ssl#hl=en&q=code+beautifier+for+c) αλλά το ιδανικό είναι το κάνεις μόνος σου.

 

Σχετικά με τη δόμηση του κώδικα, είδα για παράδειγμα πως τον κώδικα του "undo array initialization" τον επαναλαμβάνεις αυτούσιο σε διάφορα σημεία του προγράμματος. Μπορείς λοιπόν να τον κάνεις μια ξεχωριστή συνάρτηση. Γενικώς, πράγματα που χρησιμοποιούνται συχνά αυτούσια ή με λίγες αλλαγές, συμφέρει να τα κάνεις συναρτήσεις με κατάλληλες παραμέτρους (όπως π.χ. τον κώδικα που έχεις για τις κινήσεις UP, DOWN, LEFT & RIGHT).

 

ΥΓ. Τελικά όντως δεν υπάρχει επιλογή για διακοπή του παιχνιδιού (quit), έτσι δεν είναι;

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

@migf1
δεν έχω βάλει quit γιατί απλά μπορώ να κλείνω το παράθυρο. δεν βρίσκω κάποια χρησιμότητα. σχετικά με το beautification ούτε αυτό με ενδιέφερε αλλά μιας και είναι απλό θα το κάνω καποια στιγμή. επίσης καλό είναι να γράψω μια συνάρτηση με το initialization των undo arrays γιατι όντως επαναλαμβάνεται πολύ.

@imitheos
την συνάρτηση την έχω αντιγράψει από το stackoverflow, δεν έχω ιδέα πως δουλεύει :P

Επεξ/σία από johnny.tifosi
Δημοσ.
  Στις 14/8/2014 στις 7:34 ΜΜ, migf1 είπε

Μόλις έκανα ένα pull-request. Έχουν προστεθεί σχόλια στα gui_statusbar.c/.h & gui_dialogs.c/.h

Μην κάνεις τέτοια. Δεν είδες τι έλεγε ότι θα το κοιτάξει δίπλα στο κύμα ? Θα αφήσει τα μωρά στη θάλασσα και θα μπαίνει στα tablets να κάνει merge :)

Δημοσ.

Τη βλέπω εγώ τη μοίρα μου... Το τελευταίο merge θα το κάνω ενώ με περιμένει η οικογένεια στ' αμάξι! :P

 

 

  Εμφάνιση κρυμμένου περιεχομένου

 

Δημοσ.

Καλημέρα και χρόνια πολλά!

 

  Στις 14/8/2014 στις 9:07 ΜΜ, geomagas είπε

Τη βλέπω εγώ τη μοίρα μου... Το τελευταίο merge θα το κάνω ενώ με περιμένει η οικογένεια στ' αμάξι! :P

 

 

  Εμφάνιση κρυμμένου περιεχομένου

 

Χε χε... την άλλη βδομάδα θα φύγω κι εγώ, οπότε θα ησυχάσουμε όλοι μαζί :) Προφανώς θα πάρω λάπτοπ μαζί μου, αλλά μάλλον θα έχω κι εγώ καλύτερα πράγματα να κάνω από το να γράφω σχόλια στον κώδικα του player :lol:

 

Πέρα από την πλάκα, όταν επιστρέψεις ρίξε μια ειδοποίηση εδώ, για να σου κάνω pull-request με όλα τα pending commits. Πιθανότατα θα το προχωρήσω λιγάκι ακόμα και σήμερα και μέσα στο ΣΚ. Θα τα κάνω μονάχα push στο fork μου, κι όταν επιστρέψεις θα σου κάνω ένα pull-request για όλα μαζί.

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

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

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

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

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

Σύνδεση

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

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

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