SanayZockt
Kilopat
- Katılım
- 25 Ağustos 2016
- Mesajlar
- 1.820
- Makaleler
- 1
- Çözümler
- 8
Daha fazla
- Cinsiyet
- Erkek
Yaklaşık 1 hafta önce Discord için Bot yazma sebebiyle öğreneceğim Python diline başladım. Fakat bir sorun vardı. Ben ne class'ları biliyordum ne string, ne de int ve float. . Sıra sıra bunları öğrendim (bazen sabah saat 8'e kadar). Pomodoro tekniğini kullandım ve 25 dakikalık öğrenme sonunda 5 dakikalık molada öğrendiklerimi test ettim.
İlk gün hiç bir şey anlamadım . YouTube'da 2. gün bir sürü öğretici videosu izledim ve temeli çözdüm. Matematik ile alakalı oyun yapacak kadar çözdüm evet.
Yeni başlayanlara tavsiyelerim: Her gördüğünüz videoyu izleyin arkadaşlar. 3-5 demeyin izleyin. Internette bazı Python ile alakalı kitaplar var onları okuyun, deneyin. Denerken buglar ile karşılacaksınız onları da çözün.
O zaman oyunuma geçelim. Oyunumda ki her yazdığım kodu yorumlara ile açıkladım. Yeni başlayanlara mükemmel örnek olacaktır. Ben kendim şahsen 3 tane bug ile karşılaştım. "30 satır kod yazmışsın ne bug'ı" demeyin arkadaşlar. Buglar bizi bir üst seviyeye taşır.
Arkadaşlar az önce bir şey keşfettim. Ben önce sayıları string halinde input alıp sonradan integer'a çeviriyordum. Direkt olarak integer alabiliyormuşuz.
Gelişmiş bir versiyonunu yaptım. Sınıf kullanarak.
İlk gün hiç bir şey anlamadım . YouTube'da 2. gün bir sürü öğretici videosu izledim ve temeli çözdüm. Matematik ile alakalı oyun yapacak kadar çözdüm evet.
Yeni başlayanlara tavsiyelerim: Her gördüğünüz videoyu izleyin arkadaşlar. 3-5 demeyin izleyin. Internette bazı Python ile alakalı kitaplar var onları okuyun, deneyin. Denerken buglar ile karşılacaksınız onları da çözün.
O zaman oyunuma geçelim. Oyunumda ki her yazdığım kodu yorumlara ile açıkladım. Yeni başlayanlara mükemmel örnek olacaktır. Ben kendim şahsen 3 tane bug ile karşılaştım. "30 satır kod yazmışsın ne bug'ı" demeyin arkadaşlar. Buglar bizi bir üst seviyeye taşır.
Kod:
import random #Random modülünü ekledik
print("Çarpma Oyunu İçin 1'e basınız") #Ekrana gördüğünüz şeyi yazdırdık
print("-"*len(str("Çarpma Oyunu İçin 1'e basınız"))) #len kullanarak stringin uzunluğu kadar - işareti koydurduk ki hoş gözüksün
print("Toplama Oyunu İçin 2'ye basınız") #Yine ekrana yazdırdık
print("-"*len(str("Toplama Oyunu İçin'ye basınız"))) #Yine şu len olayı
print("Çıkarma oyunu için 3'e basınız") #Yine ekran :D
print("-"*len(str("Çıkarma oyunu için 3'e basınız "))) #Yine len
oyun = input("Lütfen hangi oyunu oynamak istediğinizi seçiniz.") #Kullanıcıdan bir string değeri istedik hangi oyunu oynayacağına dair. Bunu ileride int olarak çevireceğiz.
while True: #Döngü oluşturduk
try: #Eğer kullanıcı oyun oynamak için 1, 2 ya da 3 yazarsa şunları dene:
oyun2 = int(oyun) #kullanıcıdan aldığımız stringi int olarak dönüştürdük. Bu artık sadece tam sayı olabilir.
while True: #Döngümüzün içinde yine bir döngü oluşturduk ki oyunumuz sürekli çalışsın
if oyun2 == 1: #Eğer kullanıcı 1. oyunu seçtiyse
sayı = random.randint(1, 9) #Sayı 1 için 1 ve 9 arasında random bir değer oluştur
sayı2 = random.randint(1, 9) #Sayı 2 için 1 ve 9 arasında random bir değer oluştur
sayı3 = int(sayı) #Sayı3 adlı bir değişken tanıdık ve bu değişkene sayı değişkinini int olarak çevirmesini söyledik
sayı4 = int(sayı2) #Yine aynı olay""
print(f"{sayı3} ve {sayı4} çarpımı kaçtır?") #Ekrana sayı3 ve sayı4 değerinin çarpımını sorduk
tahmin = input() #Kullanıcıdan tahmin istedik
tahmin2 = int(tahmin) #Tahmini int değerine çevirdik (unutmayın input değeri her zaman string olarak çeker)
if tahmin2 == sayı3 * sayı4: #Eğer kullanıcının yazdığı sayı doğruysa
print("Tebrikler başardınız!") #Tebrikler başardınız ekrana yazsın döngü oluşturduğumuz için oyunumuz tekrardan başlayacak
elif oyun2 == 2: #Eğer kullanıcı 2. oyunu seçtiyse
sayı = random.randint(1, 300) #Sayı 1 için 1 ve 300 arasında random bir değer oluştur
sayı2 = random.randint(1, 300) #Sayı 2 için 1 ve 300 arasında random bir değer oluştur
sayı3 = int(sayı) #Sayı3 adlı bir değişken tanıdık ve bu değişkene sayı değişkinini int olarak çevirmesini söyledik
sayı4 = int(sayı2) #Yine aynı olay
print(f"{sayı3} ve {sayı4} toplamı kaçtır?") #Ekrana sayı3 ve sayı4 değerinin toplamını sorduk
tahmin = input() #Kullanıcıdan tahmin istedik
tahmin2 = int(tahmin) #Tahmini int değerine çevirdik (unutmayın input değeri her zaman string olarak çeker)
if tahmin2 == sayı3 + sayı4: #Eğer kullanıcının yazdığı sayı doğruysa
print("Tebrikler başardınız!") #Tebrikler başardınız ekrana yazsın. Döngü oluşturduğumuz için oyunumuz tekrardan başlayacak.
elif oyun2 == 3: #Eğer kullanıcı 3. oyunu seçtiyse
sayı = random.randint(150, 300) #Sayı 1 için 150 ve 300 arasında random bir değer oluştur
sayı2 = random.randint(1, 150) #Sayı 2 için 1 ve 150 arasında random bir değer oluştur
sayı3 = int(sayı) #Sayı3 adlı bir değişken tanıdık ve bu değişkene sayı değişkinini int olarak çevirmesini söyledik
sayı4 = int(sayı2) #Aynı olay"
print(f"{sayı3} ve {sayı4} çıkarırsak kaç kalır?") #Ekrana sayı3'ten sayı4 çıkarılırsa kaç kalır diye sorduk
tahmin = input() #Kullanıcıdan cevabı istedik
tahmin2 = int(tahmin) #Cevabı tam sayıya çevirdik
if tahmin2 == sayı3 - sayı4: #Eğer doğruysa
print("Tebrikler başardınız!") #Başardınız!
except ValueError: #Eğer kullanıcı bir oyun seçmek yerine space bastıysa veya harf girdiyse
print("Lütfen harf ve benzeri şeyleri girmeyin. Sadece oynamak istediğiniz oyunun sayısını girin.")
break
Gelişmiş bir versiyonunu yaptım. Sınıf kullanarak.
Kod:
import random
import time
class MatOyunu(object):
def __init__(self):
self.sayi1 = random.randint(1, 9)
self.sayi2 = random.randint(1, 9)
self.sayi3 = random.randint(150, 300)
self.sayi4 = random.randint(1, 150)
self.sayi5 = random.randint(1, 300)
self.sayi6 = random.randint(1, 300)
def Secenek(self, secim=6):
self.secim = secim
print("")
print("Çarpım Tablosu Oyunu için 1'e basınız.")
print("-" * len(str("Çarpım Tablosu Oyunu için 1'e basınız.")))
print("Toplama Oyunu için 2'ye basınız.")
print("-" * len(str("Toplama Oyunu için 2'ye basınız.")))
print("Çıkarma Oyunu için 3'e basınız.")
print("-" * len(str("Çıkarma Oyunu için 3'e basınız.")))
while self.secim == 6:
try:
print("")
self.secenek = input("Lütfen oynamak istediğiniz oyuna karşılık gelen sayıyı giriniz: ")
self.secenek = int(self.secenek)
time.sleep(1)
while self.secenek == 1:
self.sayi1 = random.randint(1, 9)
self.sayi2 = random.randint(1, 9)
oyunsorusu1 = self.sayi1 * self.sayi2
print("")
cevap1 = int(input(f"{self.sayi1} ve {self.sayi2} sayılarının çarpımı nedir? (Oyunu kapatmak için 0 yazınız.) \nCevabı giriniz: "))
if cevap1 == oyunsorusu1:
print("")
time.sleep(0.3)
print("Tebrikler başardınız. Yeni soru geliyor!!")
elif cevap1 == 0:
print("")
print("Oyun kapatılıyor...")
time.sleep(1)
break
time.sleep(1.3)
else:
print("")
print("Gerçekten bu sorunun cevabını bilemeyecek kadar bilgisiz misin? :(")
if self.secenek == 2:
self.sayi3 = random.randint(150, 300)
self.sayi4 = random.randint(1, 150)
oyunsorusu2 = self.sayi3 + self.sayi4
print("")
cevap2 = int(input(f"{self.sayi3} ve {self.sayi4} sayılarının toplamı nedir? (Oyunu kapatmak için 0 yazınız.) \nCevabı giriniz: "))
if cevap2 == oyunsorusu2:
time.sleep(0.7)
print("")
print("Tebrikler başardınız. Ana menüye dönülüyor.")
elif cevap2 == 0:
print("")
print("Oyun kapatılıyor...")
time.sleep(1)
break
else:
time.sleep(0.7)
print("")
print("Gerçekten bu sorunun cevabını bilemeyecek kadar bilgisiz misin? :(")
if self.secenek == 3:
self.sayi5 = random.randint(1, 300)
self.sayi6 = random.randint(1, 300)
oyunsorusu3 = self.sayi5 + self.sayi6
print("")
cevap3 = int(input(f"{self.sayi5} ve {self.sayi6} sayılarını çıkarırsak kaç kalır? (Oyunu kapatmak için 0 yazınız.) \nCevabı giriniz: "))
if cevap3 == oyunsorusu3:
time.sleep(0.7)
print("")
print("Tebrikler başardınız. Yeni soru geliyor!!")
elif cevap3 == 0:
print("")
print("Oyun kapatılıyor...")
time.sleep(1)
break
else:
time.sleep(0.7)
print("")
print("Gerçekten bu sorunun cevabını bilemeyecek kadar bilgisiz misin? :(")
except ValueError:
time.sleep(0.7)
print("")
print("Lütfen sadece oynamak istediğiniz oyunun sayısını giriniz: ")
break
oyun = MatOyunu()
oyun.Secenek()
Son düzenleme: