ฉัน googled "20q code" และพบสิ่งนี้: http://mosaic.cnfolio.com/B142LCW2008A197
รุ่นนี้มีไว้สำหรับสัตว์ แต่ 20 คำถามจริงอาจมี algoritm ที่คล้ายกัน
นี่คือภาพรวมโดยย่อของรหัสที่ฉันเชื่อมโยง:
มีคำตอบต่าง ๆ มากมายที่เข้ารหัสไว้ในโปรแกรม แอตทริบิวต์ 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 );