Grata
Haziran 18, 2021, 1:47ös
1
Dostlar merhaba,
import random
print("Taş kağıt makas oyununa hoş geldiniz.")
menu = input("Başlamak için 'başla' veya 'çık' yazın.")
def oyun():
pcsecimleri = ["taş", "kağıt", "makas"]
print("Bilgisayar ile oynayacaksınız.")
kullanicisecimi = input("Seçin: ").lower()
pcsecimsonuc = random.choice(pcsecimleri)
if kullanicisecimi == "taş":
if pcsecimsonuc == "taş":
print("Bilgisayar taş seçti. Berabere")
if pcsecimsonuc == "kağıt":
print("Bilgisayar kağıt seçti. Kaybettiniz.")
if pcsecimsonuc == "makas":
print("Bilgisayar makas seçti. Kazandınız.")
if kullanicisecimi == "kağıt":
if pcsecimsonuc == "taş":
print("Bilgisayar taş seçti. Kazandınız.")
if pcsecimsonuc == "kağıt":
print("Bilgisayar kağıt seçti. Berabere.")
if pcsecimsonuc == "makas":
print("Bilgisayar makas seçti. Kaybettiniz.")
if kullanicisecimi == "makas":
if pcsecimsonuc == "taş":
print("Bilgisayar taş seçti. Kaybettiniz.")
if pcsecimsonuc == "kağıt":
print("Bilgisayar kağıt seçti. Kazandınız.")
if pcsecimsonuc == "makas":
print("Bilgisayar makas seçti. Berabere")
if menu == "başla":
oyun()
if menu == "çık":
exit()
Şöyle bir kod yaptım. Ben denedim ve gayet doğru şekilde çalışıyor. Ben yanlış bir yer bulamadım. Size de sorayım dedim.
aib
Haziran 18, 2021, 2:25ös
2
main
fonksiyonu eksik, kod modul seviyesinde yazilmis.
‘basla’ veya 'cik’tan baska bir sey yazinca da cikiyor.
Bir sonraki olasi adim: Iki secimi alip hangisinin kazandigini donduren fonksiyon yazmak.
Gerektiğinden fazla koşul cümlesi yazılmış. Şu şekilde fazlalık satırlardan kurtulabilirsiniz diye umut ediyorum:
import random
liste = ["kağıt", "makas", "taş"]
def oyun():
def computer():
return random.choice(liste)
def oyuncu():
while True:
secim = input("Seçin: ").lower()
if secim in liste:
return secim
else:
print(f"Lütfen şu liste içerisinde bulunan herhangi bir elemanı seçiniz: {liste}")
print("Bilgisayar ile oynayacaksınız.")
computer_secimi = computer()
oyuncu_secimi = oyuncu()
print(f"Bilgisayar {computer_secimi}'ı seçti.")
if oyuncu_secimi == computer_secimi:
print(f"İkiniz de {oyuncu_secimi} seçtiniz, BERABERE!")
elif oyuncu_secimi == "kağıt" and computer_secimi == "taş":
print(f"{oyuncu_secimi}, {computer_secimi}'ı yener, KAZANDIN!")
elif oyuncu_secimi == "taş" and computer_secimi == "kağıt":
print(f"{computer_secimi}, {oyuncu_secimi}'ı yener, KAYBETTİN!")
elif liste.index(oyuncu_secimi) > liste.index(computer_secimi):
print(f"{oyuncu_secimi}, {computer_secimi}'ı yener, KAZANDIN!")
elif liste.index(computer_secimi) > liste.index(oyuncu_secimi):
print(f"{computer_secimi}, {oyuncu_secimi}'ı yener, KAYBETTİN!")
while True:
oyun()
1 Beğeni
Grata
Haziran 18, 2021, 3:46ös
4
Teşekkürler. Benim yaptığım kod doğru değil mi?
Grata:
import random
print("Taş kağıt makas oyununa hoş geldiniz.")
menu = input("Başlamak için 'başla' veya 'çık' yazın.")
def oyun():
pcsecimleri = ["taş", "kağıt", "makas"]
print("Bilgisayar ile oynayacaksınız.")
kullanicisecimi = input("Seçin: ").lower()
pcsecimsonuc = random.choice(pcsecimleri)
if kullanicisecimi == "taş":
if pcsecimsonuc == "taş":
print("Bilgisayar taş seçti. Berabere")
if pcsecimsonuc == "kağıt":
print("Bilgisayar kağıt seçti. Kaybettiniz.")
if pcsecimsonuc == "makas":
print("Bilgisayar makas seçti. Kazandınız.")
if kullanicisecimi == "kağıt":
if pcsecimsonuc == "taş":
print("Bilgisayar taş seçti. Kazandınız.")
if pcsecimsonuc == "kağıt":
print("Bilgisayar kağıt seçti. Berabere.")
if pcsecimsonuc == "makas":
print("Bilgisayar makas seçti. Kaybettiniz.")
if kullanicisecimi == "makas":
if pcsecimsonuc == "taş":
print("Bilgisayar taş seçti. Kaybettiniz.")
if pcsecimsonuc == "kağıt":
print("Bilgisayar kağıt seçti. Kazandınız.")
if pcsecimsonuc == "makas":
print("Bilgisayar makas seçti. Berabere")
if menu == "başla":
oyun()
if menu == "çık":
exit()
Evet doğru, fakat @aib de belirttiği gibi “başla” veya "çık"tan farklı bir şey yazınca da program duruyor, çünkü herhangi bir döngü oluşturmamışsınız. Onu da şu şekilde düzeltebilirsiniz:
def menu():
while True:
menu = input("Başlamak için 'başla' veya 'çık' yazın.")
if menu == "başla":
oyun()
elif menu == "çık":
exit()
else:
print("Geçersiz komut.")
menu()
Grata
Haziran 18, 2021, 4:38ös
6
Teşekkür ederim. İyi akşamlar.
1 Beğeni