This commit is contained in:
mertoalex 2023-07-31 05:06:05 +03:00
parent b8ccf275e5
commit 24a40cb506
4 changed files with 163 additions and 1032 deletions

View File

@ -1,296 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>elementi (yada bileşiği) tahmin et.py</title>
<link rel="stylesheet" href="./lib/pyscript.css" />
<script defer src="./lib/pyscript.js"></script>
<!--link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
<script defer src="https://pyscript.net/latest/pyscript.min.js"></script-->
</head>
<body>
<div id="output"></div>
<py-script>
from js import document
from random import randint as ri
puan, soru = (0,0)
evet = True
hayır = False
sor = evet #oyun modunu sorması için
## basic mode
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']
## hard mode
#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_yaygin = ['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']
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_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?
"""
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(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 = '<id id="input">$ <input id="user_cevap" class="py-input" type="text"/><button id="enter" class="py-button" type="submit"></button></id>'
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 = '<id id="input">$ <input id="user_cevap" class="py-input" type="text"/><button id="enter" class="py-button" type="submit"></button></id>'
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ü\"{soru_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
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 = '<id id="input">$ <input id="user_cevap" class="py-input" type="text"/><button id="enter" class="py-button" type="submit"></button></id>'
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:
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
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:
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:
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
js.window.scrollTo(0,js.document.body.scrollHeight)
oyun()
if __name__ == '__main__':
if sor: soru_turu_sor()
else: oyun()
</py-script>
</body>
</html>

163
eybte.py Executable file
View File

@ -0,0 +1,163 @@
#!/usr/bin/env python
#old name: elementi yada bileşiği tahmin et.py
from random import randint as ri
puan, soru = (0,0)
evet = True
hayir = False
#they have no reasons lol
sor = evet #oyun modunu sorması için
isimmi = hayir
## basic mode
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']
## hard mode
#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_yaygin = ['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']
bilesik = ['H2O','HCl','H2SO4','HNO3','CH3COOH','CaCO3','NaHCO3','NH3','Ca(OH)2','NaOH','KOH','CaO','NaCl']
bilesik_yaygin = ['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']
bilesik_bitti, sembolik_bitti = (hayir, hayir)
soru_türü = "random"
soru_türü_aciklamasi ="""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_siralamasi = "random"
soru_siralamasi_aciklamasi = """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 bilesik_bitti,sembolik_bitti
if soru_türü == "sembolik": bilesik_bitti = evet
if soru_türü == "bileşik": sembolik_bitti = evet
def str_to_list(string):
return string.split(sep=None, maxsplit=0)
def soru_turu_sor():
global soru_türü
print(soru_türü_aciklamasi, end="")
while evet:
user_cevap = input("$ ").casefold()
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\n")
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_siralamasi, isimmi
print(soru_siralamasi_aciklamasi, end="")
while evet:
user_cevap = input("$ ").casefold()
if user_cevap == "random" or user_cevap == "yaygın" or user_cevap == "sembolik":
soru_siralamasi = user_cevap
isimmi = evet if user_cevap == "sembolik" else hayir
break
elif f"{user_cevap}" == '':
print(f"bir şey yazılmadı, default olarak soru türü \"{soru_siralamasi}\" olarak seçildi\n")
break
else: print(f"\"{user_cevap}\" bir soru siralamasi değil, sadece \"random\", \"yaygın\" veya \"sembolik\" yazmanız lazım.")
def tahmin(first,second):
global puan, soru, isimmi
if soru_siralamasi == "random":
random_int = ri(0,1)
if random_int == 0:
baslik,cevap,isimmi = first,second,hayir
if random_int == 1:
baslik,cevap,isimmi = second,first,evet
elif soru_siralamasi == "yaygın":
baslik,cevap = first,second
elif soru_siralamasi == "sembolik":
baslik,cevap = second,first
else:
print(f"\"{soru_siralamasi}\" diye bir soru sıralaması bulunamadı. geçerli soru sıralamaları: random, yaygın, sembolik (hepsinin aciklamasi kaynak kodda)")
exit(1)
cevap = cevap.split(' / ') if ' / ' in cevap else cevap
cevap = str_to_list(cevap) if not isinstance(cevap,list) else cevap
soru += 1
user_cevap = input(f"puanın: {puan}\n{soru}) {baslik}\n$ ") or '**BOŞ GİRİLDİ**' # ({cevap} | {isimmi}) for debugging
user_cevap = user_cevap.casefold() if isimmi else user_cevap
if user_cevap in cevap:
print("afferim, doğru cevap! (+10 puan)") #for debugging: f"++ ({user_cevap} in {cevap} = {str(user_cevap in cevap)})")
puan += 10
return evet
elif user_cevap.casefold() in ["exit","çık","çıkış"]:
print("oynadığın için teşekkür ederim, görüşürüz. 👋")
exit(0)
elif puan <= 0:
print("üzgünüm, yanlış cevap.") #for debugging: f"O (not {user_cevap} in {cevap} = {str(user_cevap in cevap)})")
return hayir
else:
print("üzgünüm, yanlış cevap (-5 puan)") #for debugging: f"Br (not {user_cevap} in {cevap} = {str(user_cevap in cevap)})")
puan -= 5
return hayir
def oyunu_baslat():
global bilesik_bitti,sembolik_bitti
while evet:
if len(sembolik_yaygin) <= 0: sembolik_bitti = evet
if len(bilesik_yaygin) <= 0: bilesik_bitti = evet
if soru_türü == "random":
random_int = ri(0,1)
if not bilesik_bitti and random_int == 0:
sor = ri(0,len(bilesik_yaygin)-1)
if tahmin(bilesik_yaygin[sor],bilesik[sor]):
bilesik_yaygin.pop(sor)
bilesik.pop(sor)
if not sembolik_bitti and random_int == 1:
sor = ri(0,len(sembolik_yaygin)-1)
if tahmin(sembolik_yaygin[sor],sembolik[sor]):
sembolik_yaygin.pop(sor)
sembolik.pop(sor)
if not bilesik_bitti and soru_türü == "bileşik":
sor = ri(0,len(bilesik_yaygin)-1)
if tahmin(bilesik_yaygin[sor],bilesik[sor]):
bilesik_yaygin.pop(sor)
bilesik.pop(sor)
if not sembolik_bitti and soru_türü == "sembolik":
sor = ri(0,len(sembolik_yaygin)-1)
if tahmin(sembolik_yaygin[sor],sembolik[sor]):
sembolik_yaygin.pop(sor)
sembolik.pop(sor)
if bilesik_bitti and sembolik_bitti:
print(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.")
exit(0)
if __name__ == '__main__':
if sor:
soru_turu_sor()
soru_siralamasi_sor()
init()
oyunu_baslat()

View File

@ -1,4 +0,0 @@
/* code from: https://pyscript.net/latest/pyscript.css and minimized with https://www.toptal.com/developers/cssminifier */
/* src/styles/pyscript_base.css */
.label,.py-pop-up,.py-title{text-align:center}.py-terminal-hidden,py-box:not(:defined),py-button:not(:defined),py-config,py-inputbox:not(:defined),py-repl:not(:defined),py-script:not(:defined),py-title:not(:defined){display:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5}.spinner::after{content:"";box-sizing:border-box;width:40px;height:40px;position:absolute;top:calc(40% - 20px);left:calc(50% - 20px);border-radius:50%}.spinner.smooth::after{border-top:4px solid #fff;border-left:4px solid #fff;border-right:4px solid rgba(255,255,255,0);animation:.6s linear infinite spinner}@keyframes spinner{to{transform:rotate(360deg)}}.label{width:100%;display:block;color:rgba(255,255,255,.8);font-size:.8rem;margin-top:6rem}.py-overlay{position:fixed;display:flex;justify-content:center;align-items:center;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,.5);transition:opacity .5s;color:visible;visibility:visible;opacity:1}.alert-banner.py-error>#alert-close-button,.py-error{color:#9d041c}.py-pop-up{width:600px}.py-pop-up p{margin:5px}.py-pop-up a{position:absolute;color:#fff;text-decoration:none;font-size:200%;top:3.5%;right:5%}.alert-banner{position:relative;padding:.5rem 1.5rem .5rem .5rem;margin:5px 0}.alert-banner p,py-terminal[docked] .py-terminal{margin:0}.py-error{background-color:#ffe9e8;border:solid #f0625f}.py-warning{background-color:#fff4e5;border:solid #ffa016;color:#794700}.alert-banner.py-warning>#alert-close-button{color:#794700}#alert-close-button{position:absolute;right:.5rem;top:.5rem;cursor:pointer;background:0 0;border:none}.py-box{display:flex;flex-direction:row;justify-content:flex-start}.py-repl-run-button,input{text-rendering:auto;letter-spacing:normal;word-spacing:normal;text-transform:none;text-indent:0;text-shadow:none;display:inline-block}.py-box div.py-box-child *{max-width:100%}.py-repl-box{flex-direction:column}.py-repl-editor{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity));--tw-ring-inset:var(--tw-empty,);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;position:relative;box-sizing:border-box;border:1px solid #d1d5db}.editor-box:hover button,.py-repl-run-button:hover{opacity:1}.py-repl-run-button{opacity:0;bottom:.25rem;right:.25rem;position:absolute;padding:1px 6px;line-height:inherit;color:inherit;background-color:transparent;background-image:none;-webkit-appearance:button;font-family:inherit;font-size:100%;margin:0;line-height:normal;text-align:center;align-items:flex-start;cursor:default;box-sizing:border-box;background-color:-internal-light-dark(#efefef,#3b3b3b);border:0}.py-button,.py-input{--tw-border-opacity:1;border-width:1px;border-radius:.25rem;padding:.5rem}.py-title{text-transform:uppercase}.py-title h1{font-weight:700;font-size:1.875rem}.py-input{border-color:rgba(209,213,219,var(--tw-border-opacity));margin-right:.75rem;border-style:solid;width:auto}.py-box input.py-input{width:-webkit-fill-available}.central-content{max-width:20rem;margin-left:auto;margin-right:auto}input{color:-internal-light-dark(black,#fff);text-align:start;appearance:auto;-webkit-rtl-ordering:logical;background-color:-internal-light-dark(#fff,#3b3b3b);padding:1px 2px;border-width:2px;border-style:inset;border-color:-internal-light-dark(#767676,#858585);border-image:initial}.py-button{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity));--tw-bg-opacity:1;background-color:rgba(37,99,235,var(--tw-bg-opacity));border-color:rgba(37,99,235,var(--tw-border-opacity));cursor:pointer}.py-li-element p{margin:5px;display:inline}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.line-through{text-decoration:line-through}.py-terminal{min-height:10em;background-color:#000;color:#fff;padding:.5rem;overflow:auto}html:has(py-terminal[docked]:not(py-terminal[docked].py-terminal-hidden)){padding-bottom:40vh}py-terminal[docked]{position:fixed;bottom:0;width:100vw;max-height:40vh;overflow:auto}
/*# sourceMappingURL=pyscript.css.map */

File diff suppressed because one or more lines are too long