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

migf1 έγραψε:@Star_Light, πάντως δεν τα πήγες όσο άσχημα ενδεχομένως νομίζεις
Επιπρόσθετα σε αυτά που έγραψα παραπάνω, βάλε κι αυτά:
δ) βάλε σε loop την είσοδο για το lim μέχρι να σου δώσει κάτι που θα είναι μεγαλύτερο του 1 (όπως το έχεις, δεν ελέγχεις τι σου δίνει για lim)
ε) το μήνυμα σφάλματος όταν η μαντεψιά είναι εκτός ορίων, τύπωσέ το μέσα στο κεντρικό loop της main, όταν το r είναι ίσο με -1

Star_Light έγραψε:και καπου εδω πιστευω καταλαβαινει κανεις ποσο κακο ειναι το προγραμμα να πεταει πραγματα που κανονικα δεν θα επρεπε... ως προς την ασφάλεια... πχ εγω δινω σαν χρηστης το οριο και αυτο μου πεταει αυτο που υπολογισε.... αρα ουσιαστικα δινει στον χρηστη την λυση του μαντέματος!
printf("%d", hidden);
Star_Light έγραψε:
δ) αυτο δεν καταλαβαινω πως να το κανω....
έγραψε:ε) εδω πειραζει που αντι για αυτο που μου λες εβαλα ενα ακομη ορισμα στον πινακα *hints πχ *hints[4] το οποιο ορισα σαν "ektos oriwn ksanaprospathiste" και μεσα στην συναρτηση εβαλα να μου επιστρέφει την τιμη 3?![]()
έγραψε:στ) Δεν εχω βάλει ομως να μετραει τον αριθμο των προσπαθειων που χρειάστηκε ο χρήστης + οτι μου πεταει το αποτέλεσμα :/

migf1 έγραψε:Star_Light έγραψε:και καπου εδω πιστευω καταλαβαινει κανεις ποσο κακο ειναι το προγραμμα να πεταει πραγματα που κανονικα δεν θα επρεπε... ως προς την ασφάλεια... πχ εγω δινω σαν χρηστης το οριο και αυτο μου πεταει αυτο που υπολογισε.... αρα ουσιαστικα δινει στον χρηστη την λυση του μαντέματος!
Αφού βρε συ, εσύ του λες να το τυπώσει με αυτή τη γραμμή:
- Κώδικας: Επιλογή όλων
printf("%d", hidden);
Όσο για την scanf, δεν ξέρω σε ποιο πρόβλημα αναφέρεσαι για το συγκεκριμένο προγραμματάκι, αλλά είπαμε να την καταργήσεις την scanf γενικώς!
Κάνε το συνήθεια τώρα που είναι νωρίς να διαβάζεις ολόκληρη τη γραμμή της κύριας εισόδου σε ένα string inbuf μέγιστου μήκους 256 και κατόπιν "τράβα" από εκεί τις μεταβλητές που θες να διαβάσεις, είτε με sscanf είτε με atoi/atol/atof.
Για τη μέγιστη μαγκιά που λες, αυτή την τεχνική ήθελα να σας δείξω και πέταξα έτσι στα ξαφνικά τον πίνακα με τα strings στην άσκηση, γιατί ως λογική χρησιμοποιείται κατά κόρον. Όχι για τόσο απλά πράγματα όπως αυτό το guessing game, αλλά είναι πολύ συνηθισμένη προσέγγιση.
Στο συγκεκριμένο, έχει και το καλό πως αν π.χ θες να αλλάξεις το τι θα λένε τα μηνύματα, τα έχεις όλα συγκεντρωμένα μέσα στον πίνακα και τα αλλάζεις εκεί. Αλλιώς, αν τα έγραφες απευθείας μέσα σε printf θα έπρεπε να ψάχνεις να τα βρεις μέσα στον κώδικά σου για να τα αλλάξεις. Κι αν κάποιο μήνυμα το τύπωνες σε πολλά μέρη το ίδιο, θα έπρεπε να τα άλλαζες όλα ένα-ένα
ΥΓ. Πάω να γράψω post για τα macros, ε ;


migf1 έγραψε:Ποιον μορφοποιητή εννοείς; Ολόκληρη τη γραμμή πρέπει να σβήσεις, γιατί αυτή σου τυπώνει το hidden νούμερο.


migf1 έγραψε:Μη φοβάσαι, κι εγώ την πάτησα ακριβώς έτσι
Λοιπόν, αντί για macros, κάνω κάτι άλλο... φτιάχνω τον κώδικα του game έτσι ώστε ΟΤΙΔΗΠΟΤΕ ΜΗΝΥΜΑ τυπώνει να είναι μέσα στον πίνακα hints (που τον αλλάζω σε: messages). Οπότε θα είναι πλήρως απεξαρτημένο από hand-coded μηνύματα μέσα σε printf. Σαν κερασάκι στην τούρτα, θα φτιάξω 2 πίνακες, έναν με ελληνικά μηνύματα κι έναν με αγγλικά, και στην αρχή θα ρωτάω τον παίκτη σε ποια γλώσσα από τις δυο θέλει να παίξει.
Έχει μέσα πράγματα που δεν έχουμε πει ακόμα, όπως π.χ typdef και enum αλλά ας το έχουμε σαν δείγμα για όταν αρχίσω να λέω για αυτά τα πράματα

