"20q kodu" nı aradım ve buldum: http://mosaic.cnfolio.com/B142LCW2008A197
Bu sürüm sadece hayvanlar içindir, ancak gerçek 20 Soru muhtemelen benzer bir algoritmaya sahiptir.
İşte ben bağlı kod hızlı bir bakış:
programa sabit kodlanmış birkaç farklı cevaplar vardır. Daha sonra bunlara birkaç TRUE veya FALSE özelliği atanır:
#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"
...
Gördüğünüz gibi bir arı memeli değil, uçuyor vb.
Her grup için bir dizi vardır:
int mammals[ TOTAL_ANIMALS ] = { 0 };
int flying_animals[ TOTAL_ANIMALS ] = { 0 };
int water_animals[ TOTAL_ANIMALS ] = { 0 };
...
Her soru sorulduğunda:
askUserQuestion( guesses, "\nQuestion %d: Is your animal a mammal? \n", mammals );
Program, uygun kategorinin tanımına bakar ve DOĞRU veya YANLIŞ değerlerine ve soruya girdiğiniz Evet veya Hayır cevabına dayanarak hangi hayvanın büyük olasılıkla düşündüğünüzü izler.
Bu şu şekilde yapılır:
void askUserQuestion( int guessNumber, char* question, int* animalData );