Python - Bu Kod Öğrenen Bir Yapay Zeka Olabilir Mi?

Merhaba,

Bunu nasıl bir anlam verebilirim ya da buna yapay zeka denir mi bilemediğim için fikrinizi alacağım.

Şimdi ben bir taş kağıt makas oyunu yazdım. Bilgisayar kendisi oynuyor. Oyun esnasında yaptıkları seçimleri bir listeye kayıt ediyor ve bir sonraki seçimlerini bu liste içerisinden yapıyor. Kaybettiği seçimleri de kazandığı seçimleri de aynı liste içerisine ekliyor. Belirli bir yerden sonra iki taraftan birinin kazanma oranı yükseldikçe kazanan seçimi listeye ekliyor. Böylece liste içerisinde kazanan değer daha fazla olduğu için onu seçme olasılığı artıyor.

Kodları paylaşayım;

tas_kagit_makas kodları

import random
from os import system
from time import sleep

player_eylemler = [1,2,3]
computer_eylemler = [1,2,3]
player_secim = [1,2,3]

tas_ct = []
kagit_ct = []
makas_ct = []

user = 0
pc = 0

while True:

    skor_data = open("skor_data.txt","w",encoding="utf-8")
    skor_data.write("Skor >> Oyuncu > {} | Bilgisayar > {}".format(user,pc))
    skor_data.close()
    
    eylem_data = open("eylem_data.txt","w",encoding="utf-8")
    eylem_data.write("Player Eylemler > {}\n".format(player_eylemler))
    eylem_data.write("Computer Eylemler > {}".format(computer_eylemler))
    eylem_data.close()

    ct_data = open("ct_data.txt","w",encoding="utf-8")
    ct_data.write("TAŞ CT > {}\n".format(tas_ct))
    ct_data.write("KAĞIT CT > {}\n".format(kagit_ct))
    ct_data.write("MAKAS CT > {}\n".format(makas_ct))
    ct_data.close()

    print("\nSkor >> Oyuncu > {} | Bilgisayar > {}".format(user,pc))
    
    player = random.choice(player_eylemler)
    computer = random.choice(computer_eylemler)

    secim_data = open("secim_data.txt","a",encoding="utf-8")
    secim_data.write("Player >> {} | Computer >> {}\n".format(player,computer))
    secim_data.close()

    system("cls")

    if player == computer:

        print("\nBerabere")
        player_eylemler.append(player)
        computer_eylemler.append(computer)
        pc += 1
        user += 1

    elif player == 1 and computer == 2:

        print("\nBilgisayar Kazandı")
        pc += 1
        player_eylemler.append(player)
        computer_eylemler.append(computer)

        tas_ct.append(player)

    elif player == 2 and computer == 3:

        print("\nBilgisayar Kazandı")
        pc += 1
        player_eylemler.append(player)
        computer_eylemler.append(computer)

        kagit_ct.append(player)

    elif player == 3 and computer == 1:

        print("\nBilgisayar Kazandı")
        pc += 1
        player_eylemler.append(player)
        computer_eylemler.append(computer)

        makas_ct.append(player)

    elif player == 2 and computer == 1:

        print("\nOyuncu Kazandı")
        user += 1
        player_eylemler.append(player)
        computer_eylemler.append(computer)

    elif player == 3 and computer == 2:

        print("\nOyuncu Kazandı")
        user += 1
        player_eylemler.append(player)
        computer_eylemler.append(computer)

    elif player == 1 and computer == 3:

        print("\nOyuncu Kazandı")
        user += 1
        player_eylemler.append(player)
        computer_eylemler.append(computer)

    elif player == 0:
        break

    else:
        print("\nSıkıntılı Durumlar Var")

Oyunun anlık durumunu takip edebilmek için verileri txt dosyalarına kayıt ediyorum ve bu txt dosyalarını admin_panel ile okuyorum. Onun kodları;

from os import system

while True:

    print("""
CT_DATA İÇİN >> 1
EYLEM_DATA İÇİN >> 2
SECİM_DATA İÇİN >> 3
SKOR_DATA İÇİN >> 4
ÇIKIŞ İÇİN >> 0
""")

    select = input("Seçiminiz >> ")

    system("cls")

    if select == "1":

        file = open("ct_data.txt","r",encoding="utf-8")
        print(file.read())
        file.close()

    elif select == "2":

        file = open("eylem_data.txt","r",encoding="utf-8")
        print(file.read())
        file.close()

    elif select == "3":

        file = open("secim_data.txt","r",encoding="utf-8")
        print(file.read())
        file.close()

    elif select == "4":

        file = open("skor_data.txt","r",encoding="utf-8")
        print(file.read())
        file.close()

    elif select == "0":

        break

    else:

        print("\nSıkıntılı Durumlar Var")

Bu iki dosya aynı dizinde olduklarında birbirlerine bağlı olarak çalışıyorlar.

Düşüncelerinizi, fikirleriniz, yorumlarınızı alabilir miyim? Ve ya şurayı şöyle değiştir şöyle olursa daha iyi olur dediğiniz noktaları da duymak isterim.

Eğer bu kodlar kazanmayı öğretmiyorsa -ki sanki öğretmiyor :D- nasıl öğretebiliriz bi kafa patlatalım isterim.

Kodları okumadım, ama cevap vereceğim. Aşağıdaki kod yapay zeka olmuyor;

x = input("Asistan> ")
if x == "merhaba":
    print("Sana da merhaba!")

Veya başka türlüsü. O kendi öğrenince yapay zeka oluyor. Mesela yapay zekaya insan diyalogları yükleniyor. O oradan merhabaya merhaba dendiğinii anlıyor. Böyle olunca yapay zeka oluyor.

Bu arada kodlarda gözüme çarptı, konsolu temizlemek için şöyle bir fonksiyon kullanabilirsiniz, çapraz platform açısından.

import os
def clear_console():
    if os.name == "posix": os.system("clear")
    elif os.name == "nt": os.system("cls")
1 Beğeni

güzel, teşekkür ederim.

1 Beğeni

Ben bir anlam veremedim, listelerden rastgele eleman seçip karşılaştırıyorsunuz sadece.

Taş, kağıt, makas oyunu zamanla daha iyi oynanabilecek ve özel yöntemleri olan bir oyun değil, karşı tarafın seçimlerini tahmin etme üzerine kurulu.

Dosyaların her seferinde en baştan açılıp içine veri yazılması kaynak israfı, döngünün sonunda tek seferlik yazılabilir. Programın durumunu farklı bir kod ile takip etmek de anlamsız, tas_kagit_makas.py dosyasının içeriği bir fonksiyon haline getirilip debug gibi bir parametre alabilir. Zaten her seferinde ekranı temizlediğiniz için bütün verileri en alta yazmanızın bir sakıncası olacağını sanmıyorum.

Öğretmiyor. Burada taş, kağıt, makas üzerinden gideceksek önemli olan karşı tarafın hamlesini önceden tahmin etmek olduğundan karşıdaki oyuncunun eski seçimleri üzerinden karar verilebilir. Bu yöntem karşıdaki oyuncuya özel geniş bir veri gerektiriyor. Ama ben yine de ortaya işe yarar bir şey çıkacağını sanmıyorum, oyun rastgelelik üzerine kurulu.

2 Beğeni