मैंने "20q कोड" जाना और यह पाया: http://mosaic.cnfolio.com/B142LCW2008A197
यह संस्करण केवल जानवरों के लिए है, लेकिन वास्तविक 20 प्रश्नों में संभवतः समान रूप से एक अल्गोरिथम है।
यहां मेरे द्वारा लिंक किए गए कोड का एक त्वरित अवलोकन है:
कार्यक्रम में हार्ड कोडित कई अलग-अलग उत्तर हैं। कई TRUE या FALSE विशेषताएँ तब उन्हें सौंपी जाती हैं:
#define ANIMALS_LIST "daddylonglegs bee penguin eagle giraffe octopus tiger elephant jellyfish bull \nparrot dolphin python crocodile cat leopard monkey zebra sheep rat \nowl spider frog polarbear snail tortoise rabbit salmon rhino fox"
#define MAMMALS "0 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 1 1"
#define FLYING_ANIMALS "1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
#define WATER_ANIMALS "0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0"
#define BEAK "0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0"
...
जैसा कि आप देख सकते हैं एक मधुमक्खी स्तनपायी नहीं है, लेकिन यह मक्खी आदि है।
प्रत्येक समूह के लिए एक सरणी है:
int mammals[ TOTAL_ANIMALS ] = { 0 };
int flying_animals[ TOTAL_ANIMALS ] = { 0 };
int water_animals[ TOTAL_ANIMALS ] = { 0 };
...
जब प्रत्येक प्रश्न पूछा जाता है:
askUserQuestion( guesses, "\nQuestion %d: Is your animal a mammal? \n", mammals );
कार्यक्रम उपयुक्त श्रेणी और पटरियों की परिभाषा को देखता है कि कौन सा जानवर सबसे अधिक संभावना है जो आप TRUE या FALSE मूल्यों और आपके इनपुट के आधार पर सोच रहे हैं या प्रश्न का उत्तर नहीं।
इसमें किया जाता है:
void askUserQuestion( int guessNumber, char* question, int* animalData );