wizofwor / hayvan-tahmini

Guess The Animal Implementation for C64 in C (cc65)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hayvan Tahmini

Hayvan Tahmini nedir?

Hayvan Tahmini oyunu bilgisayar tarihindeki ilk yapay zeka denemelerinden biridir.

Bilgisayar ve insanın olarak karşılıklı yazıştığı ilk program olarak Joseph Weizenbaum'un 60'larda yazdığı Eliza'dır. Hayvan tahmin programı ise Eliza'dan biraz daha akıllıdır çünkü hatalarından öğrenerek bilgisini arttırabilir.

Hayvan tahmin programının en ünlü versiyonu John Walker'ın 1975'de UNIVAC için yazdığı ANIMAL olsa da ben en eski versiyon olarak Arthur Luehrmann'ın 1970'lerde yazdığı JACKASS'e ulaşabildim.

Nasıl Çalışıyor

Program hayvan bilgisini binary tree yapısı üzerinde tutuyor.

Klasic binary tree yapısına ek olarak is_leaf ve parent bilgisini de ilave ettim.

extern struct Node 			
{
	bool is_leaf;
	uchar data[40];
	uchar left;
	uchar right;
	uchar parent;
}

Doğru cevapta left, yanlış cevapta right node'a gidiliyor. Ağın sonuna geldiğimi de is_leaf bilgisine bakarak anlıyorum.

                         Suda mi yaşar?
                          /         \ 
                         /           \
              Memeli midir?           Uçar mı?
             /    \                    /             \
            /      \                  /               \
   Balık ağına   Dokungaçları      Gececi midir?   Evcilleştirilebilir mi?
   takılır mı?    var mıdır:          /    \            /    \
    /      \        /     \          /      \          /      \
  Yunus  Balina  Ahtapot  Köpek   Yarasa  Papağan   Köpek    Aslan
                          Balığı 

Nasıl Denerim

Derlenmiş programı disk.d64 imajını kullanarak açabilirsiniz. Programı sadece C64 üzerinde denedim ancak 128'de de çalışması gerekir.

makefile OSX El Capitan üzerinde cc65 v2.17 ile denenmiştir.

Güncellemeler

9.11.2014
string.h kütüphanesi kaldırıldı.
strcpy ve strcat fonksiyonları yerine char_cpy ve concat fonksiyonları yazıldı.

stdlib.h kütüphanesi kaldırıldı.
malloc ve itoa fonksiyonlarının kullandığı yerler yeniden düzenlendi.

Bu aşamada programın boyutu 10KB'a indi.

Compile parametrelerine -Oirs eklendi. Bu şekilde program boyutu 9KB'a oldu.

Referanslar

The Animal Episode

GUESS THE ANIMAL - A DECISION-TREE IN YOUR ATARI

AI Animals / perlMonks

About

Guess The Animal Implementation for C64 in C (cc65)


Languages

Language:C 76.7%Language:C++ 17.1%Language:Makefile 6.2%