kaliakman Δημοσ. 4 Απριλίου 2016 Δημοσ. 4 Απριλίου 2016 (επεξεργασμένο) Καλησπέρα insomniacs!! Στα πλαίσια ενός μαθήματος αναπτύξαμε, μια ομάδα δύο ατόμων, μια εφαρμογή που "παίζει" το παιχνίδι Quoridor( Site: Click ). Είναι μια προσπάθεια που πήρε αρκετές ώρες να υλοποιηθεί και θα ήθελα ως πιο έμπειροι εδώ μέσα αν μπορέσετε να κοιτάξετε τον κώδικα και να δώσετε οποιοδήποτε feedback ή ακόμα και να δοκιμάσετε να το νικήσετε (More on that later.) Τα αρχεία υπάρχουν Site: εδώ: για όποιον ενδιαφέρεται καθώς και ένα makefile για εύκολο compile. Τρέξτε την εντολή list_commands για να δείτε μια λίστα με τις επιτρεπτές εντολές και απολαύστε το. Αν κάποιος θέλει να παίξει, το μέγεθος 7 είναι το πιο "δύσκολο" αλλά αν θέλει να παίξει σε άλλο μέγεθος με μεγαλύτερη δυσκολία να μου πει και να αλλάξει κάτι αρκεί να είναι λίγο υπομονετικός στις πρώτες κινήσεις γιατί αργεί η απόφαση. Από εκεί πέρα υπάρχει ένα σχετικά αναλυτικό pdf που εξηγεί την λειτουργία του προγράμματος αν υπάρχει οποιαδήποτε απορία.Αν παρ' όλα αυτά δεν καταλάβετε κάτι περίμενω με αγωνία!! Υ.Γ kudos to @gon1332 μιας και με βοήθησε κάποια στιγμή με κάποια memory leaks! Υ.Γ Η υλοποιήση έγινε από πρωτοετείς so be nice Επεξ/σία 5 Απριλίου 2016 από kaliakman 3
kaliakman Δημοσ. 5 Απριλίου 2016 Μέλος Δημοσ. 5 Απριλίου 2016 GitHuuuuuuuuuuuuuuuuuuuuuub Done! Μιας και είναι πρώτη φορά ελπίζω να το έκανα σωστά! Site: Git 2
M2000 Δημοσ. 5 Απριλίου 2016 Δημοσ. 5 Απριλίου 2016 Δεν μπορώ να καταλάβω γιατί χρησιμοποιεί τόσο μεγάλες συναρτήσεις! Δεν μπορεί να τα βάλει σε ένα Struct; Εκτός και αν πρέπει όλο αυτό να το βλέπει κάθε λίγο...έτσι για να την βρίσκει! alphaBeta(board,sizeBoard,position,walls,depth,initialDepth,maxPL,1,alpha,beta,maxPL)
kaliakman Δημοσ. 5 Απριλίου 2016 Μέλος Δημοσ. 5 Απριλίου 2016 Καλημέρα και ευχαριστώ που ασχολήθηκες! Καλημέρα μπορείς να εξηγήσεις λίγο παραπάνω? Δηλαδή εννοείς τα ορίσματα να ήταν όλα μέσα σε struct και να περνάω αυτό? Αν ναι αυτό δεν θα μεγάλωνε επικίνδυνα τον κώδικα που είναι ήδη μεγάλος μέσα στο σώμα της συνάρτησης αφού θα έπρεπε να γράφω πχ aiStruct.maxPL?
Επισκέπτης Δημοσ. 5 Απριλίου 2016 Δημοσ. 5 Απριλίου 2016 Η χρήση global μεταβλητών θεωρείται κακή πρακτική στον προγραμματισμό.
groot Δημοσ. 5 Απριλίου 2016 Δημοσ. 5 Απριλίου 2016 Η χρήση global μεταβλητών θεωρείται κακή πρακτική στον προγραμματισμό. Μα η Μ2000 έχει ένα κάρο globals. Περίμενε λίγο και έρχεται παράδειγμα με globals σε M2000. 4
kaliakman Δημοσ. 5 Απριλίου 2016 Μέλος Δημοσ. 5 Απριλίου 2016 (επεξεργασμένο) Global δεν υπάρχουν;Οι globals όπως είπαν και οι από πάνω θεωρείται κακή τεχνική προγραμματισμού και έχουμε προσπαθήσει να τις κρατήσουμε στο minimum δυνατό. Επεξ/σία 5 Απριλίου 2016 από kaliakman
M2000 Δημοσ. 5 Απριλίου 2016 Δημοσ. 5 Απριλίου 2016 Και η C έχει. Η χρήση της σε ένα πρόγραμμα που δεν πρόκειται να γίνει import αλλού δεν έχει θέμα. Ένα struct δηλωμένο χωρίς κάτι ιδιαίτερο, έχει global scope.
groot Δημοσ. 5 Απριλίου 2016 Δημοσ. 5 Απριλίου 2016 Done! Μιας και είναι πρώτη φορά ελπίζω να το έκανα σωστά! [link='Git]https://github.com/EvanKaraf/Quoridor']Git Υλικό για διάβασμα: - gitignore - binary files in git 1
moukoublen Δημοσ. 5 Απριλίου 2016 Δημοσ. 5 Απριλίου 2016 Οι globals όπως είπαν και οι από πάνω θεωρείται κακή τεχνική προγραμματισμού και έχουμε προσπαθήσει να τις κρατήσει στο minimum δυνατό. Και πολύ καλά κάνατε. Φυσικά και είναι κακή τεχνική και κακώς κάτι τέτοιο προτείνεται.
defacer Δημοσ. 5 Απριλίου 2016 Δημοσ. 5 Απριλίου 2016 kaliakman, τι είδους feedback θα ήθελες; Δεν είχα χρόνο να το κοιτάξω μέχρι στιγμής αλλά λογικά θα βρούμε πάρα πολλά που θα μπορούσαμε να πούμε εφόσον είναι από πρωτοετείς. Το feedback δηλαδή όσον αφορά τον κώδικα, σε ποιόν ας πούμε θα απευθύνεται;
kaliakman Δημοσ. 5 Απριλίου 2016 Μέλος Δημοσ. 5 Απριλίου 2016 Σε εμένα και το άλλο παιδί που το φτιάξαμε.. Αν έχει κανένα φοβερό λάθος τρόπο υλοποίησης που μπορεί να το καθυστερεί,κάποια τεχνική που θα μπορούσε να γίνει ώστε να είναι πιο ευαναγνωστος/καλυτερος ο κώδικας και γενικά οτιδήποτε θα μας βοηθούσε να βελτιωθουμε.. Είναι η πρώτη φορά που κάνουμε κάτι τόσο μεγάλο οπότε είναι μια καλή ευκαιρία να διορθώσουμε λάθος τεχνικές.. Ξέρω ότι ζητάω πολλά οπότε οτιδήποτε είναι χρήσιμο!!
Dr.Fuzzy Δημοσ. 5 Απριλίου 2016 Δημοσ. 5 Απριλίου 2016 Δύο-τρια πραγματάκια που δεν έχουν να κάνουν με την υλοποίηση, αλλά για καλύτερο readability: Βάλτε comment headers και γενικά comments στα functions/methods/classes κλπ στα αρχεία του project σας (κατά προτίμηση βάση του Doxygen https://www.stack.nl/~dimitri/doxygen/manual/docblocks.html#cppblock προκειμένου να μπορεί εύκολα να γίνει automatically documented το project σας). Περάστε από έναν code beautifier τον κώδικα σας. Επιλέξτε ένα naming convention (GNU, K&R, linux, κλπ) και ακολουθήστε το παντού (ονόματα αρχείων, μεταβλητές, ονόματα functions, κλπ), πχ, αποφασίστε ή capital ή mixedCase ή lowercase ή underscore filenames (Utilities.c, mainUtilities.h, minimax.c, κλπ) , αποφασίστε ή underscore ή mixedCase variables (list_head, currRow, κλπ); 5
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα