Seçtiğiniz dilde, bir insan oyuncuya karşı 3 * 3 tahtada mükemmel bir tic-tac-toe oyunu oynayan bir program yazın. Ancak, her hamlenin önceki yinelemeden üretilen farklı bir program olması gerekir .
İnsan girdisini nasıl ve hangi şekilde değerlendirdiğiniz size bağlıdır, ancak standart girdiden okunmalıdır. Benzer şekilde, hangi oyuncunun başladığını nasıl belirleyeceğinizi seçmekte özgürsünüz (örneğin, önce soruyorsunuz veya insanın bilgisayarın başladığını veya diğer fikirleri işaret etmek için geçersiz bir hareket girmesine izin veriyorsunuz).
Hareketleri doğrulamak gerekli değildir, oldukça oynayan bir insan rakibi olduğunu varsayabilirsiniz.
Temel olarak, yönetim kurulu durumuna karşılık gelen bir programınız var. Durum tanınabilir bir şekilde yazdırılır, ancak en azından aşağıdaki ayrıntı düzeyi beklenir:
X..
00X
x..
İnsan oyuncu hamlelerine girdikten sonra, programınızın bir sonraki tekrarını aynı dilde (standart çıktıya veya bir dosyaya) kaynak dosya olarak oluşturması ve sonlandırması gerekir. Bu kaynak dosyanın dışında hiçbir yerde bilgi depolamanıza izin verilmez. (programınızın oluşturulan programı oluşturup çalıştırması gerekmez, kullanıcı tarafından yapılabilir - ancak yasak değildir). Oluşturulan program oluşturulduğunda ve çalıştırıldığında, benzer şekilde davranacak, durumu gösterecek, kullanıcı girişini bekleyecek vb.
Oyunun sonunda, sonucu (kazanıp kazanmadığınız veya beraberlik olsun) kesin olarak tanımlanabilir herhangi bir şekilde yazdırmanız gerekir.
Mükemmel oyunla demek istediğim, program kaybetmemelidir ve bir kazanma zorlama olasılığı varsa kazanmalıdır.
En kısa kod kazanır , kazanan ilk geçerli girişten en az 10 gün sonra seçilir.
Programınız bir sonraki yinelemenin inşasını ve lansmanını halledebilirse puanda% 10 indirim elde edersiniz. (Biliyorum, büyük olasılıkla buna değmez) Elbette, programın kendisi bir sonraki yinelemenin kullanıcıdan gelen hareketleri kabul ettiği zaman sonlandırılmalıdır.
Bazı tuhaf nadir numaralar kullanırsanız, lütfen kodunuzla ilgili kısa bir açıklama gönderin.