Δημοσιεύτηκε: 05 Μαρ 2012, 16:38
από migf1
migf1 έγραψε:
...
Α btw, μια που το είπα αυτό, έχουμε και οι 2 μια σημαντική έλλειψη στους κώδικές μας... δεν εξετάζουμε ο αριθμός κινήσεων να ΜΗΝ ξεπερνάει το μέγιστο πλήθος του πίνακά μας (NROWS * NCOLS). Αν στο ALPHABET χρησιμοποιήσουμε πάνω από 100 γράμματα, τα προγράμματά μας κάποια στιγμή θα κρασάρουν! . Ένας εύκολος τρόπος να το δοκιμάσουμε είναι να αλλάξουμε τα NROWS και NCOLS σε 3 και 3 (από 10 και 10). Θα έχουμε έτσι 9 συνολικά τετράγωνα στον πίνακα, αλλά 26 επιτρεπόμενες κινήσεις... ΜΠΟΥΜ !!!!! :lol:

Το διόρθωσα μόλις, στην 2η λύση μου, προσθέτοντας το macro...

Μορφοποιημένος Κώδικας: Επιλογή όλων
#define myMIN(x,y)		( (x) < (y) ? (x) : (y) )

και αρχικοποιώντας κατάλληλα την σταθερά NMOVES στην αρχή της main()...

Μορφοποιημένος Κώδικας: Επιλογή όλων
...
/* total # of moves allowed */
const int NMOVES = myMIN( NROWS*NCOLS, (int)(strlen(USED) - 1) );
...


Ilias95 έγραψε:
migf1 έγραψε:ΥΓ. Έχω παρατηρήσει πως αποφεύγεις τη χρήση συναρτήσεων, γιατί; Οι συναρτήσεις είναι ο θεμελιώδεις λίθος των procedural γλωσσών.

Γιατί έχω διαβάσει μέχρι το 8ο κεφάλαιο και οι συναρτήσεις είναι στο 9ο. :P
Παρ' όλα αυτά κατάλαβα πως δουλεύουν στους κώδικες που παρέθεσες.

Α, λέω κι εγώ :lol: Ωραίος!

Ilias95 έγραψε:
Θα δω την τελευταία λύση σου και τα ποστ σου καθώς και το λινκ που παρέθεσε ο konnn και θα επανέλθω.

Πάω κι εγώ σπίτι.