Προς το περιεχόμενο

Ναρκαλιευτής


thanos713

Προτεινόμενες αναρτήσεις

Δημοσ.

Κάθε αριθμός στον ναρκαλιευτή δηλώνει τον αριθμό των ναρκών που υπάρχουν στα γειτονικά τετράγωνα (σε μήκος 1 τετράγωνο), δλδ:

0000000

0000000

0011100

001*100

0011100

0000000

0000000

εδώ υπάρχει μία νάρκη και γύρω της τα (δεξιά/αριστερά/διαγώνια πάνω δεξιά/κλπ κλπ) τετραγωνάκια έχουν τον αριθμό 1 για να "δείξουν" αυτή την νάρκη.

Όσα έχουν 0 από την άλλη, δεν έχουν γύρω τους νάρκη (μπορούν να έχουν όμως αριθμούς).

 

Είχαμε υλοποιήσει σε C ναρκαλιευτή. Η λογική μας ήταν πιο απλή, αν τα γειτονικά είναι κενά, με αναδρομή πυροδοτούσαμε και αυτα... με τη σειρά τους έκανα το ίδιο.

Αν σε βοηθάει http://trac6.assembl...ser/Minesweeper

 

Το είχαμε φτιάξει με την εξής λογική. Όταν είναι κενά τα κουτάκια και δεν έχουν "πατηθεί" έχουν την δίεση # ως περιεχόμενο. Μόλις "πατηθεί" κάποιο τετραγωνάκι γίνονται τα εξής:

 

 

1) Αν είναι αριθμός τότε εμφάνισε τον.

2) Αν είναι νάρκη τότε έχασες :P.

3) Αν είναι "κενό" δλδ έχει #, τότε ξεκινάει μια αναδρομή για κάθε γειτονικό τετράγωνο όπου γίνεται έλεγχος για αυτές τις 3 περιπτώσεις. Μόλις τελειώσει η αναδρομή κάνε την # -> 0 και εμφάνισε το.

 

P.S. Δοκίμασα το παραπάνω "cheat" και δεν λειτούργησε σε win7.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...