C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό migf1 » 13 Ιαν 2012, 20:16

Καλησπέρα, συγγνώμη για την καθυστερημένη απάντηση.

Το -1 έχει να κάνει με ποιον τρόπο απεικονίζονται οι αρνητικοί αριθμοί στο 2-αδικό σύστημα (ψάξτε για one's complement και για two's complement).

Σε ότι αφορά το μέγεθος του long στη C (στη Java δεν θυμάμαι) εγγυημένο είναι μόνο το ελάχιστο μέγεθος, όπως είναι και για όλους τους υπόλοιπους τύπους. Άρα το μόνο που μπορούμε να ξέρουμε με σιγουριά για τους long στη C είναι πως έχουν μέγεθος ΤΟΥΛΑΧΙΣΤΟΝ 4 bytes ( =32 bits ).
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό pc_magas » 13 Ιαν 2012, 21:29

Για να δεις τον long στην C απλά γράφεις sizeof(τύπος);
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό migf1 » 13 Ιαν 2012, 21:31

pc_magas έγραψε:Για να δεις τον long στην C απλά γράφεις sizeof(τύπος);

Ναί, αλλά μόνο για τη συγκεκριμένη πλατφόρμα/compiler.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό Star_Light » 13 Ιαν 2012, 21:55

migf1 έγραψε:Καλησπέρα, συγγνώμη για την καθυστερημένη απάντηση.

Το -1 έχει να κάνει με ποιον τρόπο απεικονίζονται οι αρνητικοί αριθμοί στο 2-αδικό σύστημα (ψάξτε για one's complement και για two's complement).

Σε ότι αφορά το μέγεθος του long στη C (στη Java δεν θυμάμαι) εγγυημένο είναι μόνο το ελάχιστο μέγεθος, όπως είναι και για όλους τους υπόλοιπους τύπους. Άρα το μόνο που μπορούμε να ξέρουμε με σιγουριά για τους long στη C είναι πως έχουν μέγεθος ΤΟΥΛΑΧΙΣΤΟΝ 4 bytes ( =32 bits ).


θενξξξξξ!!!! Εχω και ενα βιβλιο αρχιτεκτονικης υπολογιστων που λεει για τις αναπαραστασεις.... θα το κοιταξω και εκει -.-
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό Star_Light » 14 Ιαν 2012, 01:55

Τελικά ηταν το συμπλήρωμα ως προς 1 αυτο που έλεγε ο migf1 !!!

Αυτο ειναι πολυ ευκολο...

καταρχην το καλοκαιρι ειχα πει μερικα πραγματα για το δυαδικο και το 16-δικο συστημα εδω

viewtopic.php?f=66&t=19707&start=10

Όταν προκειται για την αναπαράσταση ακέραιων προσημασμένων αριθμων θα πρέπει να λάβουμε υποψιν μας και το πρόσημο.

Αυτο θα δηλώνεται τοποθετώντας στην αρχή το bit 1 αν ο αριθμος θέλουμε να ειναι αρνητικός ενω το bit 0 στην αντίθετη περίπτωση.

Υπάρχουν 3 τρόποι για την αναπαράσταση των προσημασμένων : Πρόσημο και μέτρο , Συμπλήρωμα ως προς 1 , Συμπλήρωμα ως προς 2

στο Πρόσημο και μέτρο το 1o bit χρησιμοποιείται ως σημαία για την θετικότητα ή την αρνητικότητα του αριθμού ενω τα υπολοιπα n-1 παριστανουν το μέτρο σε δυαδική μορφη. Αν για παράδειγμα έχουμε n=6 το πλήθος των bit ο αριθμός 12 παριστάνεται ως 001100 ενω ο -12 ως 101100.

Ο μέγιστος αριθμός που μπορεί να αναπαρασταθεί τωρα ειναι ο 2^n-1 -1 ενω ο ελάχιστος -(2^n-1-1) βάζω - εκτός παρένθεσης επειδη το - θελω να παει σε ολη την παράσταση.

Συμπλήρωμα ως προς 1 έχουμε αν αντικαταστήσουμε ολα τα bit 1 του αριθμου 0 και το αντίστοιχο αντίστροφο για τα bit 0 του αριθμού.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό Star_Light » 14 Ιαν 2012, 02:37

Συνεχίζω με κάποιο παράδειγμα ωστε να κατανοήσει πλήρως κάποιος τι έγραψα πιο πανω. Καταρχήν η σελίδα που με βοήθησε ηταν ->

http://planetcalc.com/747/

Πάμε να δούμε τι σημαίνει αυτο ->

Ο μέγιστος αριθμός που μπορεί να αναπαρασταθεί τωρα ειναι ο 2^n-1 -1

Ας υποθέσουμε λοιπον οτι θέλουμε να αναπαραστήσουμε τον αριθμό 2 σε ένα υπολογιστικό σύστημα χρησιμοποιώντας 19 ψηφία
συμφωνα με το παραπάνω λοιπον θα έχουμε :

Κώδικας: Επιλογή όλων
2^n-1 -1 = 2^19-1 -1 = 2^18 - 1 = 262143


ο μέγιστος αριθμός λοιπον που μπορει να αναπαρασταθεί με 19 δηφία ειναι ο 262143 σαν άνω όριο στο εύρος

Κώδικας: Επιλογή όλων
Range:[-262144,262143]


Αυτο το εύρος θα σας δώσει αν δώσετε σαν εισοδο το 2 και το 19 στα 2 πρωτα πεδία της εφαρμογής.

Και φυσικα ο αριθμός στο δυαδικό για το 2 ειναι :

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

0000000000000000010


παρατηρούμε πως οσα μηδενικά και να γεμίσουμε απο τα αριστερά το 2 διατηρεί την αξία του . Αυτο συμβαίνει διοτι οι όροι με τους οποίους θα πολλαπλασιαστούν οι δυνάμεις του 2 κατα την μετατροπή θα ειναι 0 και αρα φεύγουν.

Τέλος μπορει κάποιος να διαπιστώσει πως αν δώσει στο 1ο πεδίο της εφαρμογής τον αριθμό 262144 ο οποιος ειναι εκτός του κλειστού συνόλου που βλέπουμε πιο πάνω η εφαρμογή δεν θα δώσει κατι. Ο αριθμός αυτος ειναι πιο πάνω απο τον μέγιστο που μπορεί να αναπαρασταθεί με 19 bits.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό pc_magas » 14 Ιαν 2012, 16:41

Επίσεις έν α ανάλογο παιχνίδι είναι:
2 παίκτες επιλέγουν αριθμούς όπου το συνολικό άθροισμα 3 από αυτούς θα κάνει 15. Ο καθένας επιλέγει από 1 αριθμό κάθε φορά. Όμως ο καθένας μπορεί να πάρει από τον αριθμό όπου ΔΕΝ πήρε ο άλλος. Ο πρώτος στους 15 κερδίζει.
Τώρα βάλτε το σε ένα πίνακα 3Χ3 αριθμούς όπου το άθροισμα κάθε γραμμής, κάθε στήλης και των διαγωνίων του πίνακα δίνει άθροισμα 15...
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό simosx » 20 Ιαν 2012, 22:59

Θα ήταν καλό να μπει η εφαρμογή στο https://github.com/organizations/ubuntu-gr

Υπάρχει ενδιαφέρον να προχωρήσουμε την εφαρμογή παραπέρα;
Αυτό που μπορώ να προσφέρω είναι
1. υποστήριξη automake (./configure, κτλ)
2. υποστήριξη gettext, οπότε να υποστηρίζει γλώσσες αυτόματα.

Κάτι που λείπει για μετά είναι πακετάρισμα σε .deb.

Στόχος για την εργασία αυτή είναι να δούμε πως γίνονται όλα τα βήματα, δηλαδή από το μηδέν πως πάμε προς αποθετήριο.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό migf1 » 20 Ιαν 2012, 23:08

Ευχαριστώ για το ενδιαφέρον φίλε Σίμο!\

Το Νο.2, i18n/l10n internationalization/localization το έχω ήδη κάνει, οπότε δεν χρειάζεται αυτό το κομμάτι (θα ποστάρω το νέο κώδικα σε 1-2 μέρες). Για όλα τα υπόλοιπα πολύ ευχαρίστως! Κι επειδή εγώ δεν πρόκειται να κάτσω να μάθω git, feel-free να το ανεβάσεις στο δικό σου αποθετήριο (ή όποιος άλλος επιθυμεί :) )
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: C, GTK+2: Crossplatform Τρίλιζα (Tic-Tac-Toe Overkill)

Δημοσίευσηαπό simosx » 21 Ιαν 2012, 00:37

migf1 έγραψε:Ευχαριστώ για το ενδιαφέρον φίλε Σίμο!\

Το Νο.2, i18n/l10n internationalization/localization το έχω ήδη κάνει, οπότε δεν χρειάζεται αυτό το κομμάτι (θα ποστάρω το νέο κώδικα σε 1-2 μέρες). Για όλα τα υπόλοιπα πολύ ευχαρίστως! Κι επειδή εγώ δεν πρόκειται να κάτσω να μάθω git, feel-free να το ανεβάσεις στο δικό σου αποθετήριο (ή όποιος άλλος επιθυμεί :) )


Πολύ ωραία. Θα το προσθέσω μόλις το ετοιμάσεις.

Για την υποστήριξη automake, αυτό που θα κάνω είναι να χρησιμοποιήσω το anjuta για να φτιάξω ένα υπόδειγμα εφαρμογής gtk+ + i18n, και μετά θα βάλω τα αρχεία του έργου. Έτσι, θα δουλεύει σε κάθε διανομή και θα πακετάρεται εύκολα.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι

cron