İnsanları bir şekilde etkilemenin oldukça önemli olduğunu düşünüyorum. Örneğin sihirbazları düşünebiliriz. Yaptıkları küçük bir kart numarası ile insanları şaşkınlık içinde bırakabiliyorlar. İnsanların numarayı anlayamaması, yapan kişiye karşı farklı bir gözle bakmalarını sağlıyor. Bu şekilde çok şey sayabilirim size. Biraz düşününce aklıma origami geldi mesela. Origami, başta size çokta etkileyici gelmemiş olabilir ama şöyle düşünün. Beğendiğiniz birisi ile bir randevunuz var. Buluşma yerine gidiyorsunuz ve tanışıp, sohbet etmeye başlıyorsunuz. O sırada masanın üzerindeki küçük bir kağıdı sohbet sırasında tatlı bir kediye benzetiyorsunuz ve karşınızdaki kişiye veriyorsunuz. Hoş bir hareket olurdu değil mi?
Bu şekilde karşımdaki kişileri şaşırtabileceğim konuları sık sık düşünüyorum. Başta verdiğim örneklerde olduğu gibi bazı konularda kendimi geliştirmeye çalışıyorum. Doğrusunu söylemek gerekirse şuanda pek yol kat etmedim ama etmek istiyorum. Her neyse konumuz şuanda bu değil. İnsanları şaşırtmak için basit küçük oyunlar oynamakta güzel olabilir. Tabi oyunu oynamak tek başına etkileyici olmayabilir ama olurda hile yapıyormuş gibi gözükmeden bir oyunda sürekli kazanırsak bu gerçekten etkileyici olabilir. Geçenlerde Ali Nesin’in Matematik ve Korku kitabına göz gezdirirken bir oyun ile karşılatım. Herhangi bir kart ile oynanabilen bir oyundu bu. Oldukça ilgimi çektiğini söyleyebilirim. Çünkü oyun hem basit, her yerede oynanabilecek türden hem de doğru oynarsanız her zaman kazanabileceğiniz bir oyundu.
Oyunu merak etmiş olabilirsiniz. İsterseniz size nasıl oynandığını açıklamaya başlayayım. Oyun iki kişi ile oynanmaktadır. Oyunu oynayabilmemiz için öncelikle bir miktar karta ihtiyacımız var. Kart sayısını siz belirleyebilirsiniz. Daha sonra oyuncular bu kartları sırayla bölmeye başlıyor. Oyundaki tek kural kartları yarı yarıya bölmemek. Örneğin 4 kart ile oyuna başlıyoruz. İlk oyuncu kartı 2’ye 2 şeklinde bölemez. Yalnızca 3’e 1 şeklinde bölebilir. İkinci oyuncu bu iki bölünmüş karttan istediğini bölebilir. Şu anda 3 ve 1 şeklinde kartlar olduğu için ikinci oyuncu haliyle 3 kartın olduğu parçayı bölebilir. Bu böylece devam eder ve sonda kartları yarı yarıya bölmek dışında bir seçenek kalmayınca kartı bölemeyen oyuncu oyunu kaybeder. Oldukça basit değil mi?
Oyun çok basit ve buda tamda bizim istediğimiz şey. Çünkü basit olması oynamasını kolay kılıyor. Yukarıda örnek olarak 4 kart seçmiştik. 4 kart ile bu oyunu oynadığımızda ilk oyuncunun her durumda kaybettiğini fark etmiş olabilirsiniz. Evet, bu doğru 4 kart ile oynandığında ilk oynayan kişi kim ise oyunu o kaybediyor. Peki kart sayısını arttırırsak kim kazanır dersiniz? Örneğin 10 kart ya da 28 kart ile başlarsak oyunu doğru oynadığımız durumda kesin kazanabilmemiz için hangi sırada oyuna başlamamız gerekir? Kart sayısı artınca bunu düşünüp hesaplaması zor değil mi? Bunun için biraz yardım almanın doğru olacağını düşündüm ve tabii ki ChatGPT’ye başvurdum. Başka ne yapabilirdim ki…
Öncelikle halini hatrını sormak istedim tabii ki. Gelecekte ne olacağını bilemeyiz öyle değil mi? Şimdiden iyi davranmakta fayda görüyorum. Daha sonra ona biraz oyundan bahsettim ve sanırım ilgisini çekebildim.
Haha… şaka yapıyorum. İlgisini çekmiş gibi davranıyor sadece. Bu durum sahtekarlık gibi gelsede bozuntuya vermeden benden istediği şekliyle biraz daha bilgi verdim..
Sonunda bana hazır olduğunu söyledi. Artık oynamaya hazırdık. Başta bu oyunu oynamak için keşke bir arkadaşım olsaydı diye düşünmedim desem yalan olur ama yapacak bir şey yok… Oyuna başlayalım diyecekken içime kurt düştü. Hmm… Neden ilk kendisi başlamak istiyordu ki? yoksa daha başlamadan tüm durumları hesapladı ve ilk başlayanın kazanacağını bildiği için kendisi mi başlamak istiyordu. Sonuçta yapay zeka bu. Kanmadım bu oyununa ve bu durumu ona sormaya karar verdim. Doğruyu söyleyeceğinden eminim.
hah…ikna oldum. Yapay mapay ama o kadar daha zeki değil sanırım. Lafı fazla uzatmadan oynamya başladık.
Haliyle kendisine koymuş bulundum. Abartmayın şu yapay zekayı arkadaşlar o kadar da zeki değil.(!) Zaferimden sonra keyfim yerindeydi. Yalnız baştaki amacımı hatırladım. Biz farklı kartlar için oyunu iki oyuncudan hangisinin kazanacağını öğrenmek istiyorduk. Bunu kendisine de anlattım ve yardımcı olup olamayacağını sordum.
Oldukça uzun ve etkileyici bir cevap vererek bana yardımcı olabileceğini, bir python kodu yazarak bu oyunda şeçtiğimiz kart sayısına göre kazananı bulabileceğimizi anlattı. Ne diyebilirim ki? hemen yapmasını rica ettim. Biraz açık olmasını söylemeyi de ihmal etmedim ve kendisi uzunca bir kod yazmaya başladı.
# Kazanan oyuncuyu belirlemek için rekürsif fonksiyon
def can_first_player_win(n, memo={}):
if n in memo:
return memo[n]
# Eğer kart sayısı 1 ise ilk oyuncu kaybeder çünkü bölme işlemi yapamaz
if n == 1:
memo[n] = False
return False
# İlk oyuncunun kazanıp kazanamayacağını kontrol et
# n kartını ikiye bölecek tüm olası bölme yollarını kontrol et
for i in range(1, n // 2 + 1):
if i != n - i: # Yarı yarıya bölemiyoruz
if not can_first_player_win(n - i, memo):
memo[n] = True
return True
memo[n] = False
return False
# Belirli bir kart sayısı için kazananı bulmak
def find_winner(n):
if can_first_player_win(n):
return "İlk oyuncu kazanır"
else:
return "İkinci oyuncu kazanır"
# Örnek olarak 7 kart için sonucu bulalım
kart_sayisi = 7
sonuc = find_winner(kart_sayisi)
print(f"{kart_sayisi} kart ile {sonuc}")
Çokta uzun değilmiş gerçi kod değil mi? Her neyse kodu denemek için hemen işe koyuldum vee… KOD ÇALIŞMIYOR. Rezillik! Kodu çalıştırdığmda her seferinde tüm kartlar için ilk oyuncunun kazanacağını söylüyor. Bunun için sanırım ChatGPT efendiye çok daha detaylı ve anlaşılır komutlar vermem gerektiğini anladım ve tam bunu yapmaya yeltenecektim ki…
Evet, limitimi doldurmuşum. Bana bundan sonra daha düşük versiyonu cevap verecekmiş. Bende uğraşmayı bıraktım haliyle. Belki olurda 15 dolarım olursa bu işe devam edebilirim. O zamana kadar manüel olarak oyunu oynayarak belirli kart sayılarında hangi tarafın kesinlike kazanacağını bilmek benim için yeterli olacaktır.
Ali Nesin, kitabında doğru oynandığı durumlar da 2,4,7,10,20,23 ve 26 kart ile oynanan oyunları ikinci oyuncunun kazanacağını. Eğer kart sayısı 28 ve 28’den daha az ayrıca 2,4,7,10,20,23 ve 26 sayılarından biri değilse ilk oyuncunun kesinlike kazanabileceğini söylüyor. Sanırım olası bir randevu ya da arkadaş ortamında oynamak için bu kadarı yeterli. Sonuçta 100 kart ile bu oyunu oynamak biraz sıkıcı da olabilir. Olmayabilir de tabii…
Lafı daha fazla uzatmak istemiyorum. Açıkçası şimdiye kadar ne yazdığımı da tam anlayamadım. İçimden ne geldiyse klavyenin tuşlarına basıverdim işte. Bu tarz şeylerin matematiğe beni daha çok yaklaştırdığını düşünüyorum. Oldukça ilgi çekici geliyor bana. Matematiği kullanarak insanları etkilemenin başka yolları da eminim vardır. Belki başka birini öğrendiğimde de yine buradan sizinle paylaşırım. O zamana kadar kendinize iyi bakmayı ihmal etmeyin.