चेसबोर्ड पर, रानी (queen) खतरनाक होती है क्योंकि उसकी एक जगह पर मौजूदगी कई खानों (squares) को इस्तेमाल के लायक नहीं छोड़ती। इसे एक सर्च प्रॉब्लम में बदलने की शुरुआत यह बताने से होती है कि रानी किन खानों पर हमला करती है, ताकि हम हमलों को ऐसी शर्तों (constraints) के तौर पर देख सकें जो संभावित जगहों (candidate placements) को गलत साबित करती हैं। यह बदलाव इसलिए ज़रूरी है क्योंकि सॉल्वर धीरे-धीरे संभावित समाधान बना सकता है और अधूरे समाधानों को नियम तोड़ने पर तुरंत खारिज कर सकता है, बजाय इसके कि पूरे बोर्ड के भरने का इंतज़ार करे।
कोई जगह तभी सही मानी जाती है जब कोई भी दो रानियाँ एक-दूसरे पर हमला न करें; इसका मतलब है कि एक ही समय में तीन शर्तों का पालन होना चाहिए। दो रानियाँ एक ही रो (row), एक ही कॉलम (column) या एक ही डायगोनल (diagonal) पर नहीं हो सकतीं।
इन शर्तों को अच्छी तरह समझने के लिए, देखें कि कैसे एक छोटे बोर्ड पर किसी खास जगह (coordinate) पर रखी एक रानी हमले वाले खानों को कैसे चिह्नित करती है।
रो (row) और कॉलम (column) से जुड़ी शर्तें सीधी हैं क्योंकि एक ही रो इंडेक्स या एक ही कॉलम इंडेक्स वाले हर स्क्वायर पर हमला होता है। डायगोनल (diagonal) की शर्त भी मैकेनिकल है क्योंकि जब रो और कॉलम एक साथ बदलते हैं तो स्क्वायर डायगोनल पर ही रहते हैं; इसलिए, एक क्वीन उन स्क्वायर्स पर हमला करती है जो दो डायगोनल दिशाओं में होते हैं, जब तक कि बोर्ड का किनारा उस लाइन को रोक न दे।
जब शर्तें साफ़ हो जाती हैं, तो अगला कदम ऐसा रिप्रेजेंटेशन चुनना होता है जिससे कैंडिडेट को धीरे-धीरे बनाना आसान हो। एक आसान तरीका वन-डायमेंशनल ऐरे (one-dimensional array) है जहाँ queens[row] = col होता है, जिसका मतलब है कि row वाली क्वीन col कॉलम में रखी गई है। इस रिप्रेजेंटेशन से, रो की शर्त अपने-आप पूरी हो जाती है क्योंकि हर रो इंडेक्स सिर्फ़ एक बार आता है।
विजेट दिखाता है कि कैसे एक खास ऐरे, बोर्ड की एक बनी हुई पोज़िशन से मेल खाता है।