diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..57dcc8c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+gitignore.*
\ No newline at end of file
diff --git a/eybte.html b/eybte.html
index b5e900a..820a250 100644
--- a/eybte.html
+++ b/eybte.html
@@ -1,13 +1,13 @@
-
-
- elementi (yada bileşiği) tahmin et.py
-
-
-
-
-
+
+
+ elementi (yada bileşiği) tahmin et.py
+
+
+
+
+
import js
from random import randint as ri
@@ -19,8 +19,8 @@ hayır = False
sor = evet #oyun modunu sorması için
-sembolik = ['H','He','Li','Be','B','C','N','O','F','Ne','Na','Mg','Al','Si','P','S','Cl','Ar','K','Ca','Cr','Mn','Fe','Co','Ni','Cu','Zn','Br','Ag','Sn','I','Ba','Pt','Au','Hg','Pb']
-sembolik_yaygın = ['hidrojen','helyum','lityum','berilyum','bor','karbon','azot / nitrojen','oksijen','flor','neon','sodyum','magnezyum','alüminyum','silisyum','fosfor','kükürt','klor','argon','potasyum','kalsiyum','krom','mangan','demir','kobalt','nikel','bakır','çinko','brom','gümüş','kalay','iyot','baryum','platin','altın','cıva / civa','kurşun']
+sembolik = ['H','He','Li','Be','B','C','N','O','F','Ne','Na','Mg','Al','Si','P','S','Cl','Ar','K','Ca','Sc','Ti','V','Cr','Mn','Fe','Co','Ni','Cu','Zn','Ga','Ge','As','Se','Br','Kr','Rb','Sr','Y','Zr','Nb','Mo','Tc','Ru','Rh','Pd','Ag','Cd','In','Sn','Sb','Te','I','Xe','Cs','Ba','Hf','Ta','W','Re','Os','Ir','Pt','Au','Hg','Tl','Pb']
+sembolik_yaygın = ['hidrojen','helyum','lityum','berilyum','bor','karbon','azot / nitrojen','oksijen','flor','neon','sodyum','magnezyum','alüminyum','silisyum','fosfor','kükürt','klor','argon','potasyum','kalsiyum','skandiyum','titanyum / titan','vanadyum','krom','mangan / manganez','demir','kobalt','nikel','bakır','çinko','galyum','germanyum','arsenik','selenyum','brom','kripton','rubidyum','stronsiyum','itriyum','zirkonyum','niyobyum','molibden','teknetyum','rutenyum','rodyum','paladyum','gümüş','kadmiyum','indiyum','kalay','antimon','tellur','iyot','Ksenon','sezyum','baryum','hafniyum','tantal','tungsten','renyum','osmiyum','iridyum','platin','altın','cıva / civa','Talyum','kurşun']
bileşik = ['H2O','HCl','H2SO4','HNO3','CH3COOH','CaCO3','NaHCO3','NH3','Ca(OH)2','NaOH','KOH','CaO','NaCl']
bileşik_yaygın = ['su','tuz ruhu / hidroklorik asit','zaç yağı / sülfürik asit','kezzap / nitrik asit','asetik asit / sirke asidi / sirke ruhu','kireç taşı','yemek sodası / sodyum bikarbonat / kabartma tozu','amonyak','sönmüş kireç / kalsiyum hidroksit','sud kostik / sodyum hidroksit','potas kostik / potasyum hidroksit / potasyum hidrat','sönmemiş kireç / kalsiyum oksit','yemek tuzu / sodyum klorür / sofra tuzu / tuz']
@@ -28,153 +28,262 @@ bileşik_yaygın = ['su','tuz ruhu / hidroklorik asit','zaç yağı / sülfürik
bileşik_bitti, sembolik_bitti = (False, False)
soru_türü = "random"
-soru_türü_açıklaması ="""3 soru türü var, bu soru türleri;
-random\t = altdakkilerden birini sorar (her seferinde değişir)
-sembolik = sembollerden sorar (C, O, H gibi)
-bileşik\t = bileşiklerden sorar (H2O gibi)
-hangisini seçiyorsun?
+soru_türü_açıklaması = """3 soru türü var, bu soru türleri;
+random\t = altdakkilerden birini sorar (her seferinde değişir)
+sembolik = sembollerden sorar (C, O, H gibi)
+bileşik\t = bileşiklerden sorar (H2O gibi)
+hangisini seçiyorsun?
"""
soru_sıralaması = "random"
-soru_sıralaması_açıklaması = """3 soru sıralaması var, bu soru sıralamaları;
-random\t = altdakilerden birini yapar (her seferinde değişir)
-yaygın\t = yaygın sorup sembolik halini cevap olarak ister ("hidroklorik asit" cevap:HCI gibi)
-sembolik = sembolik sorup yaygın halini cevap olarak ister(HCI cevap:"hidroklorik asit" gibi)
-hangisini seçiyorsun?
+soru_sıralaması_açıklaması = """3 soru sıralaması var, bu soru sıralamaları;
+random\t = altdakilerden birini yapar (her seferinde değişir)
+yaygın\t = yaygın sorup sembolik halini cevap olarak ister ("hidroklorik asit" cevap: HCI gibi)
+sembolik = sembolik sorup yaygın halini cevap olarak ister (HCI cevap: "hidroklorik asit" gibi)
+hangisini seçiyorsun?
"""
def init():
global bileşik_bitti,sembolik_bitti
if soru_türü == "sembolik": bileşik_bitti = True
- if soru_türü == "bileşik": sembolik_bitti = True
-
-def str_to_list(string):
- return string.split(sep=None, maxsplit=0)
-
-def soru_turu_sor():
- global soru_türü
- print(soru_türü_açıklaması, end="")
- while True:
- js.window.scrollTo(0, js.document.body.scrollHeight)
- user_cevap = input().casefold()
- print("$ " + user_cevap + "
")
- js.window.scrollTo(0, js.document.body.scrollHeight)
-
- if user_cevap == "random" or user_cevap == "sembolik" or user_cevap == "bileşik":
- soru_türü = user_cevap
- break
- elif f"{user_cevap}" == '':
- print(f"bir şey yazılmadı, default olarak soru türü \"{soru_türü}\" olarak seçildi
")
- break
- else: print(f"\"{user_cevap}\" bir soru türü değil, sadece \"random\", \"sembolik\" ve \"bileşik\" yazmanız lazım.")
-
-def soru_siralamasi_sor():
- global soru_sıralaması
- print(soru_sıralaması_açıklaması, end="")
- while True:
- js.window.scrollTo(0, js.document.body.scrollHeight)
- user_cevap = input().casefold()
- print("$ " + user_cevap + "
")
- js.window.scrollTo(0, js.document.body.scrollHeight)
-
- if user_cevap == "random" or user_cevap == "yaygın" or user_cevap == "sembolik":
- soru_sıralaması = user_cevap
- break
- elif f"{user_cevap}" == '':
- print(f"bir şey yazılmadı, default olarak soru türü \"{soru_sıralaması}\" olarak seçildi
")
- break
- else: print(f"\"{user_cevap}\" bir soru sıralaması değil, sadece \"random\", \"yaygın\" veya \"sembolik\" yazmanız lazım.
")
-
-def tahmin(yaygın_adı,sembolik_formülü):
- global puan, soru
- if soru_sıralaması == "random":
- random_int = ri(0,1)
- if random_int == 0:
- başlık = yaygın_adı
- cevap = sembolik_formülü
- if random_int == 1:
- başlık = sembolik_formülü
- cevap = yaygın_adı
- elif soru_sıralaması == "yaygın":
- başlık = yaygın_adı
- cevap = sembolik_formülü
- elif soru_sıralaması == "sembolik":
- başlık = sembolik_formülü
- cevap = yaygın_adı
- else:
- print(f"\"{soru_sıralaması}\" diye bir soru sıralaması bulunamadı. geçerli soru sıralamaları: random, yaygın, sembolik (hepsinin açıklaması kaynak kodda)")
- exit(1)
+ if soru_türü == "bileşik": sembolik_bitti = True
- if ' / ' in cevap: cevap = cevap.split(' / ')
- if not isinstance(cevap,list): cevap = str_to_list(cevap)
+def str_to_list(stringforbelist): return stringforbelist.split(sep = None, maxsplit = 0)
+soru_turu_sorulmus = False
+def soru_turu_sor():
+ global soru_turu_sorulmus
+
+ if not soru_turu_sorulmus:
+ printing = document.createElement('p')
+ printing.innerText = soru_türü_açıklaması
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ soru_turu_sorulmus = True
+
+ printing = document.createElement('p')
+ printing.innerHTML = '$ '
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ Element("enter").element.onclick = (lambda _: __soru_turu_sor())
+
+def __soru_turu_sor():
+ global soru_türü
+
+ user_cevap = Element("user_cevap").element.value.casefold()
+ Element("user_cevap").element.outerHTML = ""
+ Element("enter").element.outerHTML = ""
+ Element("input").element.outerHTML = ""
+
+ printing = document.createElement('p')
+ printing.innerText = ("$ " + user_cevap + "\n\n")
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+
+ if user_cevap == "random" or user_cevap == "sembolik" or user_cevap == "bileşik":
+ soru_türü = user_cevap
+ soru_siralamasi_sor()
+ elif f"{user_cevap}" == '':
+ printing = document.createElement('p')
+ printing.innerText = f"bir şey yazılmadı, default olarak soru türü\"{soru_türü}\" olarak seçildi.\n\n"
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ soru_siralamasi_sor()
+ else:
+ printing = document.createElement('p')
+ printing.innerText = f"\"{user_cevap}\" bir soru türü değil, sadece \"random\", \"sembolik\" ve\"bileşik\" yazmanız lazım."
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ soru_turu_sor()
+
+soru_siralamasi_sorulmus = False
+def soru_siralamasi_sor():
+ global soru_siralamasi_sorulmus
+
+ if not soru_siralamasi_sorulmus:
+ printing = document.createElement('p')
+ printing.innerText = soru_sıralaması_açıklaması
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ soru_siralamasi_sorulmus = True
+
+ printing = document.createElement('p')
+ printing.innerHTML = '$ '
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+
+ Element("enter").element.onclick = (lambda _: __soru_siralamasi_sor())
+
+def __soru_siralamasi_sor():
+ global soru_sıralaması
+
+ user_cevap = Element("user_cevap").element.value.casefold()
+ Element("user_cevap").element.outerHTML = ""
+ Element("enter").element.outerHTML = ""
+ Element("input").element.outerHTML = ""
+
+ printing = document.createElement('p')
+ printing.innerText = ("$ " + user_cevap + "\n\n")
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+
+ if user_cevap == "random" or user_cevap == "yaygın" or user_cevap == "sembolik":
+ soru_sıralaması = user_cevap
+ init()
+ oyun()
+ elif f"{user_cevap}" == '':
+ printing = document.createElement('p')
+ printing.innerText = f"bir şey yılmadı, default olarak soru türü\"{sazoru_sıralaması}\" olarak seçildi.\n\n"
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ init()
+ oyun()
+ else:
+ printing = document.createElement('p')
+ printing.innerText = f"\"{user_cevap}\" bir soru sıralaması değil, sadece \"random\",\"yaygın\" veya \"sembolik\" yazmanız lazım."
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ soru_siralamasi_sor()
+
+def oyun():
+ global soru, bileşik_bitti, sembolik_bitti
+ isimmi = False
+
+ if len(sembolik_yaygın) <= 0: sembolik_bitti = True
+ if len(bileşik_yaygın) <= 0: bileşik_bitti = True
+
+ if soru_türü == "random":
+ random_int = ri(0, 1)
+
+ if not bileşik_bitti and random_int == 0:
+ sor = ri(0, len(bileşik_yaygın) - 1)
+ first,second = (bileşik_yaygın[sor],bileşik[sor])
+
+ if not sembolik_bitti and random_int == 1:
+ sor = ri(0, len(sembolik_yaygın) - 1)
+ first,second = sembolik_yaygın[sor],sembolik[sor]
+
+ if not bileşik_bitti and soru_türü == "bileşik":
+ sor = ri(0, len(bileşik_yaygın) - 1)
+ first,second = bileşik_yaygın[sor],bileşik[sor]
+
+ if not sembolik_bitti and soru_türü == "sembolik":
+ sor = ri(0, len(sembolik_yaygın) - 1)
+ first,second = sembolik_yaygın[sor],sembolik[sor]
+
+ if bileşik_bitti and sembolik_bitti:
+ printing = document.createElement('p')
+ printing.innerText = f"puanın: {puan}\noyunu oynadığınız için teşekkürler, umarım ezberlemenizde yardımcı olmuşumdur ve umarım eğlenmişsinizdir."
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ exit(0)
+
+ if soru_sıralaması == "random":
+ random_int = ri(0, 1)
+
+ if random_int == 0:
+ başlık = first
+ cevap = second
+
+ if random_int == 1:
+ başlık = second
+ cevap = first
+ isimmi = True
+
+ elif soru_sıralaması == "yaygın":
+ başlık = first
+ cevap = second
+
+ elif soru_sıralaması == "sembolik":
+ başlık = second
+ cevap = first
+ isimmi = True
+
+ else:
+ printing = document.createElement('p')
+ printing.innerText = f"\"{soru_sıralaması}\" diye bir soru sıralaması bulunamadı. geçerli soru sıralamaları: random, yaygın, sembolik(hepsinin açıklaması kaynak kodda)"
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ exit(1)
+
+ if ' / ' in cevap: cevap = cevap.split(' / ')
+ if not isinstance(cevap, list): cevap = str_to_list(cevap)
soru += 1
- print(f"puanın: {puan}
{soru}) {başlık}
")
- js.window.scrollTo(0, js.document.body.scrollHeight)
- user_cevap = input() or '**boş girildi**'
- print("$ " + user_cevap + "
")
- js.window.scrollTo(0, js.document.body.scrollHeight)
+
+ printing = document.createElement('p')
+ printing.innerText = f"puanın: {puan}\n{soru}) {başlık}" #for debug: (çaktırma cevap: {cevap})"
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight) #user_cevap = input() or '**boş girildi**'
+
+ printing = document.createElement('p')
+ printing.innerHTML = '$ '
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ Element("enter").element.onclick = (lambda _: __tahmin(cevap, isimmi))
+
+def __tahmin(cevap, isimmi):
+ global puan
+
+ user_cevap = Element("user_cevap").element.value
+ Element("user_cevap").element.outerHTML = ""
+ Element("enter").element.outerHTML = ""
+ Element("input").element.outerHTML = ""
+
+ printing = document.createElement('p')
+ printing.innerText = ("$ " + user_cevap + "\n\n")
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+
+ if isimmi: user_cevap = user_cevap.casefold()
if user_cevap in cevap:
- print("afferim, doğru cevap! (+10 puan)")
+ printing = document.createElement('p')
+ printing.innerText = f"afferim, doğru cevap!(+10 puan)" #for debug: ({user_cevap} == {cevap} | isimmi = {isimmi})"
+ document.getElementById("output").append(printing)
+ printing = None
puan += 10
- return True
- elif user_cevap.casefold() in ["exit","çık","çıkış"]:
- print("oynadığın için teşekkür ederim, görüşürüz. 👋")
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ oyun()
+ elif user_cevap.casefold() in ["exit", "çık", "çıkış"]:
+ printing = document.createElement('p')
+ printing.innerText = "oynadığın için teşekkür ederim, görüşürüz.👋"
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
exit(0)
elif puan <= 0:
- print("üzgünüm, yanlış cevap.")
- return False
+ printing = document.createElement('p')
+ printing.innerText = f"üzgünüm, yanlış cevap." #for debug: ({user_cevap} != {cevap} | isimmi = {isimmi})"
+ document.getElementById("output").append(printing)
+ printing = None
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ oyun()
else:
- print("üzgünüm, yanlış cevap (-5 puan)")
+ printing = document.createElement('p')
+ printing.innerText = f"üzgünüm, yanlış cevap(-5 puan)" #for debug: ({user_cevap} != {cevap} | isimmi = {isimmi})"
+ document.getElementById("output").append(printing)
+ printing = None
puan -= 5
- return False
-
-def oyunu_baslat():
- global bileşik_bitti,sembolik_bitti
- while True:
- js.window.scrollTo(0, js.document.body.scrollHeight)
- if len(sembolik_yaygın) <= 0: sembolik_bitti = True
- if len(bileşik_yaygın) <= 0: bileşik_bitti = True
-
- if soru_türü == "random":
- random_int = ri(0,1)
-
- if not bileşik_bitti and random_int == 0:
- sor = ri(0,len(bileşik_yaygın)-1)
- if tahmin(bileşik_yaygın[sor],bileşik[sor]):
- bileşik_yaygın.pop(sor)
- bileşik.pop(sor)
-
- if not sembolik_bitti and random_int == 1:
- sor = ri(0,len(sembolik_yaygın)-1)
- if tahmin(sembolik_yaygın[sor],sembolik[sor]):
- sembolik_yaygın.pop(sor)
- sembolik.pop(sor)
-
- if not bileşik_bitti and soru_türü == "bileşik":
- sor = ri(0,len(bileşik_yaygın)-1)
- if tahmin(bileşik_yaygın[sor],bileşik[sor]):
- bileşik_yaygın.pop(sor)
- bileşik.pop(sor)
-
- if not sembolik_bitti and soru_türü == "sembolik":
- sor = ri(0,len(sembolik_yaygın)-1)
- if tahmin(sembolik_yaygın[sor],sembolik[sor]):
- sembolik_yaygın.pop(sor)
- sembolik.pop(sor)
-
- if bileşik_bitti and sembolik_bitti:
- print(f"puanın: {puan}
oyunu oynadığınız için teşekkürler, umarım ezberlemenizde yardımcı olmuşumdur ve umarım eğlenmişsinizdir.")
- exit(0)
-
+ js.window.scrollTo(0,js.document.body.scrollHeight)
+ oyun()
if __name__ == '__main__':
- if sor:
- soru_turu_sor()
- soru_siralamasi_sor()
- init()
-
- oyunu_baslat()
+ if sor: soru_turu_sor()
+ else: oyun()
-
+
\ No newline at end of file
diff --git a/eybte.py b/eybte.py
index a3813e3..b16de76 100755
--- a/eybte.py
+++ b/eybte.py
@@ -10,8 +10,8 @@ hayır = False
sor = evet #oyun modunu sorması için
-sembolik = ['H','He','Li','Be','B','C','N','O','F','Ne','Na','Mg','Al','Si','P','S','Cl','Ar','K','Ca','Cr','Mn','Fe','Co','Ni','Cu','Zn','Br','Ag','Sn','I','Ba','Pt','Au','Hg','Pb']
-sembolik_yaygın = ['hidrojen','helyum','lityum','berilyum','bor','karbon','azot / nitrojen','oksijen','flor','neon','sodyum','magnezyum','alüminyum','silisyum','fosfor','kükürt','klor','argon','potasyum','kalsiyum','krom','mangan','demir','kobalt','nikel','bakır','çinko','brom','gümüş','kalay','iyot','baryum','platin','altın','cıva / civa','kurşun']
+sembolik = ['H','He','Li','Be','B','C','N','O','F','Ne','Na','Mg','Al','Si','P','S','Cl','Ar','K','Ca','Sc','Ti','V','Cr','Mn','Fe','Co','Ni','Cu','Zn','Ga','Ge','As','Se','Br','Kr','Rb','Sr','Y','Zr','Nb','Mo','Tc','Ru','Rh','Pd','Ag','Cd','In','Sn','Sb','Te','I','Xe','Cs','Ba','Hf','Ta','W','Re','Os','Ir','Pt','Au','Hg','Tl','Pb']
+sembolik_yaygın = ['hidrojen','helyum','lityum','berilyum','bor','karbon','azot / nitrojen','oksijen','flor','neon','sodyum','magnezyum','alüminyum','silisyum','fosfor','kükürt','klor','argon','potasyum','kalsiyum','skandiyum','titanyum / titan','vanadyum','krom','mangan / manganez','demir','kobalt','nikel','bakır','çinko','galyum','germanyum','arsenik','selenyum','brom','kripton','rubidyum','stronsiyum','itriyum','zirkonyum','niyobyum','molibden','teknetyum','rutenyum','rodyum','paladyum','gümüş','kadmiyum','indiyum','kalay','antimon','tellur','iyot','Ksenon','sezyum','baryum','hafniyum','tantal','tungsten','renyum','osmiyum','iridyum','platin','altın','cıva / civa','Talyum','kurşun']
bileşik = ['H2O','HCl','H2SO4','HNO3','CH3COOH','CaCO3','NaHCO3','NH3','Ca(OH)2','NaOH','KOH','CaO','NaCl']
bileşik_yaygın = ['su','tuz ruhu / hidroklorik asit','zaç yağı / sülfürik asit','kezzap / nitrik asit','asetik asit / sirke asidi / sirke ruhu','kireç taşı','yemek sodası / sodyum bikarbonat / kabartma tozu','amonyak','sönmüş kireç / kalsiyum hidroksit','sud kostik / sodyum hidroksit','potas kostik / potasyum hidroksit / potasyum hidrat','sönmemiş kireç / kalsiyum oksit','yemek tuzu / sodyum klorür / sofra tuzu / tuz']