← Computers & Automation

Tit Tat Toe by Automatic Computer

B
Bilinmeyen Yazar
1958 · Computers and Automation

Tom Gildersleeve
Remington Rand Univac
New York, N.Y.

Univac bilgisayarının bir insan rakiple tit-tat-toe oyunu oynamasını sağlayan bir program kodlanmıştır. Tit-tat-toe, oynanış kurallarının genel olarak biliniyor olması ve mantığının görece basitliği nedeniyle bu amaç için seçilmiştir; bu basitlik bilgisayarın kusursuz bir oyun oynamasına olanak tanımaktadır.

Univac bilgisayarı ile talihsiz rakibi arasındaki iletişim, bilgisayarın belleğine doğrudan bağlı olan Denetleyici Kontrol Klavyesi ve Yazıcısı aracılığıyla sağlanmaktadır.

Rakip, tit-tat-toe tahtasındaki kareleri göstermek üzere oluşturulmuş bir koda göre hamlesini klavyeden girer. Bilgisayar ise rakibin hamlesine verdiği yanıt sonucunda oluşan tahta düzenini yazdırarak karşılık verir. Bu şekilde rakip, incelemek için her zaman güncel bir tahtaya sahip olur.

Ayrıca, oyunla ilgili hiçbir yazı veya kayıt sorumluluğu olmaması gibi bir avantaja da sahiptir; Univac bilgisayarı tahtayı takip eder, kazanılmış ya da berabere bitmiş bir konuma ne zaman ulaşıldığını belirler ve rakip kodu istemeden ihlal ettiğinde ya da zaten dolu olan bir karede oynamaya çalıştığında onu nazikçe uyarır. Ancak, bu avantajlara rağmen rakip en iyi ihtimalle berabere kalabilir ve tek bir ölümcül hata yaparsa bilgisayar acımasızca galibiyetini sonuçlandırır. Kaynaklarını önceden bildiğinden, her zaman ilk hamleyi rakibine sunar.

Oynanış mantığı belirli bir ilgi taşımaktadır. Yaklaşık 300.000 olası tit-tat-toe oyunu vardır. Mantığı çok basit olan bu oyun için bile, bir kamu hizmeti şirketinin milyon hesabını ele almak için gerekli tüm talimatları aynı anda tutabilen bilgisayar belleği, bu olasılıkların her birini oynayabilmek için gereken talimatları tutacak kadar büyük değildir.

Sorun, gerekli talimatları bant üzerinde saklayıp, rakibin verdiği hamleyi ele almak üzere tasarlanmış olan belirli talimatları belleğe okuyarak çözülebilirdi. Ancak bunun yerine, oyunu oynamak için gerekli tüm talimatların aynı anda bellekte saklanmasına karar verilmiştir—bir tür programcı meydan okuması. Sonuç olarak, bir strateji geliştirmek gerekli olmuştur.

Rakip ilk hamlesinde orta karede oynarsa, bilgisayar sol üst köşede oynar. Aksi halde hamle merkez kareye yapılır. Rakibin ikinci hamlesinde, kazanmayı zorlamak ya da rakibin kazanmayı zorlamasını engellemek için özel olarak ele alınması gereken belirli düzenler vardır. Bu düzenler sınanır ve eğer biri mevcutsa uygun şekilde işlenir. Aksi halde Univac bilgisayarı, oyunun geri kalanında kullandığı genel kurallara başvurur.

Bilgisayar tek tek karelere dikkat etmez; bunun yerine stratejisini, burada tahta elemanları olarak adlandıracağımız yapıların durumuna göre oynar. Bu elemanlar üç satır, üç sütun ve iki köşegendir ve kazanma sağlayabilecek kare kombinasyonları olarak hemen tanınırlar.

Önce her eleman, iki adet O (bilgisayar sembolü) ve bir boş kare içerip içermediği açısından incelenir; böyle bir hamle kazanma sağlar. Bu yoksa, bilgisayar her elemanı iki adet X (rakibin sembolü) ve bir boş kare açısından inceler ve böyle bir eleman bulduğunda, rakibin kazanmasını önlemek için boş karede oynar. Hiçbir eleman bu iki ölçütten birine uymuyorsa, bir O ve iki boş kare içeren bir eleman arar; boş karelerden birinde oynayarak rakibin hamlesini zorlar ve böylece onun tehdit oluşturma fırsatını elinden alır.

Yukarıdaki üç türden hiçbirine ait eleman yoksa, beraberlik ilan edilir; bilgisayar rakibini tebrik eder ve başka bir oyuna hazırlanır. Bilgisayar ile rakibinin dörder hamlelik çiftleri de berabere biten bir oyunla sonuçlanır.

Bir hamleye karar vermek için taranması gereken permütasyonların sayısı büyük olmasına (en fazla 72) rağmen, bu taramayı yapmak için geçen sürenin—rakibin tuşlama işleminin bitişi ile bilgisayarın yazdırması arasında geçen süreyle çakışan zamanın—insan duyuları tarafından algılanamaz olması ilginçtir. Buna rağmen bilgisayar her zaman en uygun hamleyi yapar.