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

migf1 έγραψε:...προγραμμάτων απελευθερωμένων από εξαρτήσεις, ο κώδικας των οποίων μπορεί να γίνει compile ανεξαρτήτως πλατφόρμας...
migf1 έγραψε:κάτι σαν...
- Μορφοποιημένος Κώδικας: Επιλογή όλων
char *messages[MAX_MESSAGES];
enum LangId lang = LANG_EN;
...
if ( LANG_EL == lang )
load_messages( messages, el_fname ); /* load strings from el_file into messages*/
else if ( LANG_DE == lang)
load_messages( messages, de_fname ); /* load strings from de_file into messages*/
...
for (i=0; i < MAX_MESSAGES; i++)
printf( "%s ", messages[i] );
puts("\b\n");
...
if (n == 3)
puts(messages[157]);
else if (n == 2)
puts(messages[158]);
else
puts(messages[159]);
migf1 έγραψε:Α και για να γράψουμε και κάτι οn-topic, σύμφωνα με τον τίτλο του νήματος. Ένα ενδιαφέρον βήμα θα ήταν η υποστήριξη hi-scores στο HuntΑκόμα πιο ενδιαφέρον θα ήταν η δυνατότητa save/load game

Ilias95 έγραψε:
...
Το πακετάρισμα / διανομή του προγράμματος είναι κάτι με το οποίο θα βρεθώ αντιμέτωπος πολύ, πολύ αργότερα.
Οπότε ίσως είναι καλύτερα να ασχοληθώ περισσότερο με το ίδιο το πρόγραμμα που νομίζω είναι πιο ουσιαστικό.
Στο κάτω, κάτω δεν είναι και κάποια σοβαρή εφαρμογή που χρησιμοποιείται από πολλούς χρήστες και επιβάλετε να είναι πολύ εύκολη η εγκατάσταση και σε όλα τα λειτουργικά συστήματα.
έγραψε:
Αν κατάλαβα καλά δηλαδή οι εκτυπώσεις μηνυμάτων θα γίνονται κάπως έτσι;
- Μορφοποιημένος Κώδικας: Επιλογή όλων
if (n == 3)
puts(messages[157]);
else if (n == 2)
puts(messages[158]);
else
puts(messages[159]);
Δεν χαλάει πολύ η readability;
"What is your name?"
"Hello %s, welcome to my little program"
"Your name reversed is: %s"
What is your name?
Hello %s, welcome to my little program
Your name reversed is: %s
enum MsgId {
MSG_WHAT 0,
MSG_HELLO 1,
MSG_REV 2,
/* not an id, just their total count */
MAX_MESSAGES
};
int main( void )
{
char *msgout[ MAX_MESSAGES ] = { NULL };
Bool load_messages( char *msgout[ MAX_MESSAGES], const char *fname )
{
char fline[ 512+1] = {'\0'};
FILE *fp = NULL;
enum MsgId i = 0, j;
if ( !msgout || NULL == (fp = fopen( fname, "r")) )
return false; /* ενδεχομένως και κάποιο error-message εδώ */
for (i=0; i < MAX_MESSAGES && fgets( fline, 512+1, fp); i++ )
{
msgout[ i ] = malloc( (strlen(fline) + 1) * sizeof(char) );
if ( !msgout[ i ] )
{
for (j=i-1; j > -1; j--) {
free( msgout[ j ] );
msgout[ j ] = NULL;
}
fclose( fp );
return false;
}
strcpy( msgout[ i ], fline );
}
fclose( fp );
return true;
}
printf( "%s", msgout[ MSG_WHAT ] );
printf( msgout[ MSG_HELLO ], name );
putchar('\n');
Bool unload_messages( char *msgout[ MAX_MESSAGES ] )
{
enum MsgId i;
if ( !msgout )
return false; /* internal error, non-existent msgout */
for (i=0; i < MAX_MESSAGES; i++)
{
if ( msgout[ i ] ) {
free( mesgout[ i ] );
msgout[ i ] = NULL;
}
}
return true;
}
...
/* load greek */
unload_messages( msgout );
load_messages( msgout, "hunt_el.txt");
...
/* load italian */
unload_messages( msgout );
load_messages( msgout, "hunt_it.txt");
...
έγραψε:
Μια ερώτηση: Γίνεται να κάνεις serializing δομές δεδομένων της C;

simosx έγραψε:Ilias95 έγραψε:
Δοκίμασα να κάνω ένα Project στο Anjuta όπως είπες, αλλά χάθηκα τελείως. Οκ, δημιουργήθηκαν κάποια αρχεία αυτόματα. Μετά;
Κάποιος οδηγός; (Θυμάμαι ότι ανέφερες πως έχεις γράψει κάποιον οδηγό στο LinuxInside. Υπάρχει διαθέσιμος online;)
Γενικά τον βάζουν στο http://www.linuxinside.gr μετά από κάποιο χρονικό διάστημα. Το κείμενο που έγραψα είναι σε μορφή κατάλληλο για στοιχειοθεσία οπότε μάλλον δε θα βοηθήσει ως έχει.
Θα πρότεινα να ξεκινούσες μια νέα δημοσίευση με τίτλο π.χ. «Υποστήριξη autotools στο πρόγραμμά μου;»
όπου θα βοηθήσουμε όλοι να απαντήσουμε σε ερωτήματα. Και θα μπορούν και άλλα μέλη να μάθουν ταυτόχρονα.
Γενική περιγραφή, http://en.wikipedia.org/wiki/GNU_build_system





migf1 έγραψε:Είχα όμως την εντύπωση πως το συζητούσαμε στα πλαίσια της προγραμματιστικής εξοικείωσης/εκμάθησης.

Ilias95 έγραψε:migf1 έγραψε:Είχα όμως την εντύπωση πως το συζητούσαμε στα πλαίσια της προγραμματιστικής εξοικείωσης/εκμάθησης.
Αν το δούμε έτσι, ναι σίγουρα κάτι παραπάνω θα κερδίσει όποιος ασχοληθεί. Απλά νομίζω ότι δεν είναι και τόσο ουσιαστικό σε αυτή τη φάση.
Βασικά μου φαίνεται λιγάκι χαμαλοδουλειά και δεν ξέρω αν αξίζει τον κόπο στην προκειμένη περίπτωση (και για την συγκεκριμένη εφαρμογή).
έγραψε:Προτιμώ να υλοποιήσω τα high scores, και save/load.
