panosbt Δημοσ. 22 Σεπτεμβρίου 2012 Δημοσ. 22 Σεπτεμβρίου 2012 Καλημέρα σε όλους Λοιπόν παιδιά έχω κάνει τρίλιζα για iphone, αλλά υπάρχει ένα πρόβλημα όταν ο παίκτης σχηματίζει τριάδα διαγώνια. Για κάθετα και οριζόντια η υλοποίηση για τη νίκη έχει ως εξής. Έχω δύο πίνακες (μεγέθους 3) που κρατάνε για τη κάθε γραμμή και τη κάθε στήλη αντίστοιχα, τη συχνότητα εμφάνισης των θέσεων των στοιχείων. Αν κάποια από τις τιμές από τους παραπάνω πίνακες είναι ίση με 3 σημαίνει ότι στη αντίστοιχη γραμμή ή στήλη (ανάλογα τον πίνακα) έχουμε τριάδα ίδιων στοιχείων άρα και νικητή. Μπορεί κάποιος να μου πει έναν αλγόριθμο βασισμένο στη παραπάνω λογική και για τα διαγώνια στοιχεία;
παπι Δημοσ. 22 Σεπτεμβρίου 2012 Δημοσ. 22 Σεπτεμβρίου 2012 Δυο διαγωνιους εχεις ολους κι ολους! Βαλε δυο if και καθαρισες
mvaggel Δημοσ. 22 Σεπτεμβρίου 2012 Δημοσ. 22 Σεπτεμβρίου 2012 Βάλε άλλο ένα πίνακα μεγέθους 2 που να κρατάει τη συχνότητα εμφάνισης [...] των διαγωνίων.
nilosgr Δημοσ. 22 Σεπτεμβρίου 2012 Δημοσ. 22 Σεπτεμβρίου 2012 Για zero-based indices, τα διαγωνια του Χ(i, j) ειναι: Πανω-αριστερα (i-1, j-1) Πανω-δεξια (i-1, j+1) Κατω-αριστερα (i+1, j-1) Κατω-δεξια (i+1, j+1) Βεβαια στην τριλιζα σε νοιαζουν μονο τα διαγωνια του μεσαιου κουτιου Ο(1, 1) δηλαδη τα, (0, 0), (0, 2), (2, 0), (2, 2)
defacer Δημοσ. 23 Σεπτεμβρίου 2012 Δημοσ. 23 Σεπτεμβρίου 2012 Μήπως απλά να άλλαζες την αναπαράσταση που χρησιμοποιείς γιατί απλά δε βολεύει; Αν κάποια στιγμή κάνεις ένα σχεδιαστικό λάθος και βλέπεις μετά ότι συναντάς προβλήματα, η λύση είναι να γυρίσεις πίσω, να βρεις την αιτία (το λάθος) και να το διορθώσεις -- όχι να προχωρήσεις σε patches.
panosbt Δημοσ. 24 Σεπτεμβρίου 2012 Μέλος Δημοσ. 24 Σεπτεμβρίου 2012 Μήπως απλά να άλλαζες την αναπαράσταση που χρησιμοποιείς γιατί απλά δε βολεύει; Αν κάποια στιγμή κάνεις ένα σχεδιαστικό λάθος και βλέπεις μετά ότι συναντάς προβλήματα, η λύση είναι να γυρίσεις πίσω, να βρεις την αιτία (το λάθος) και να το διορθώσεις -- όχι να προχωρήσεις σε patches. defacer τι ακριβώς εννοείς; Αυτό που σκέφτηκα βολεύει, και μάλιστα πολύ, στα στις 6 από τις 8 περιπτώσεις που υπάρχουν για να νικήσει κάποιος σε αυτό το παιχνίδι. Τελικά για τα διαγώνια στοιχεία, το πρόβλημα λύθηκε με τον πιο απλό και κατα τη γνώμη μου κάπως χαζό τρόπο. Δε μου αρέσει και για αυτό δεν τον γράφω. Τουλάχιστον λείτουργεί. Σας ευχαριστώ όλους για τη βοήθειά σας.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα