Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α22.11 · Δέντρο καταστάσεων τρίλιζας

Διάλεξη 22: Δέντρα, διαφάνεια 15 · Δυσκολία ★★☆ · short-answer · Κεφάλαια: 22

Είναι συνηθισμένο να αναπαριστούμε καταστάσεις χρησιμοποιώντας δομές όπως τα δέντρα, κάποιες φορές με περισσότερα από 2 παιδιά κόμβους. Η διαφάνεια δείχνει ένα δέντρο καταστάσεων για την τρίλιζα (tic-tac-toe): η ρίζα είναι μια θέση του παιχνιδιού, κάθε παιδί είναι η θέση μετά από μία κίνηση, και τα φύλλα έχουν βαθμολογία (+10, -10 ή 0).

Αυτό το δέντρο καταστάσεων είναι σωστό ή έχει σφάλματα; Πως θα τα βρίσκαμε με έναν αλγόριθμο αυτόματα;

Υπόδειξη

Σκεφτείτε ποιες σχέσεις πρέπει να ισχύουν ανάμεσα σε έναν κόμβο και κάθε παιδί του (πόσα σύμβολα προστίθενται, ποιος παίκτης παίζει, αν αλλάζουν τα ήδη γεμάτα τετράγωνα) και ποια βαθμολογία πρέπει να έχει κάθε φύλλο. Ένας αλγόριθμος μπορεί να επισκεφθεί κάθε κόμβο με μια διάσχιση του δέντρου και να ελέγξει αυτούς τους κανόνες τοπικά.

Αριθμός στον οδηγό: Α22.11 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec22-tictactoe-tree · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec22-tictactoe-tree.html · Markdown (GitHub)