html edition

This commit is contained in:
mertoalex 2022-10-25 21:14:00 +03:00
parent 2c6d44e0a0
commit 98751fe5ad
7 changed files with 28282 additions and 0 deletions

172
eybte.html Normal file
View File

@ -0,0 +1,172 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>elementi (yada bileşiği) tahmin et.py</title>
<link rel="stylesheet" href="./pyscript/pyscript.css" />
<script defer src="./pyscript/pyscript.js"></script>
<!--script>setInterval(() => {window.scrollTo(0, document.body.scrollHeight);}, 1)</script-->
</head>
<body>
<py-script>
import js
from random import randint as ri
puan, soru = (0,0)
evet = True
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','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']
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;<br/>
random\t = altdakkilerden birini sorar (her seferinde değişir)<br/>
sembolik = sembollerden sorar (C, O, H gibi)<br/>
bileşik\t = bileşiklerden sorar (H2O gibi)<br/>
hangisini seçiyorsun?<br/>
"""
soru_sıralaması = "random"
soru_sıralaması_açıklaması = """3 soru sıralaması var, bu soru sıralamaları;<br/>
random\t = altdakilerden birini yapar (her seferinde değişir)<br/>
yaygın\t = yaygın sorup sembolik halini cevap olarak ister ("hidroklorik asit" cevap:HCI gibi)<br/>
sembolik = sembolik sorup yaygın halini cevap olarak ister(HCI cevap:"hidroklorik asit" gibi)<br/>
hangisini seçiyorsun?<br/>
"""
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:
user_cevap = input("$<p>&nbsp;</p>").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<p>&nbsp;</p>")
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:
user_cevap = input("$ ").casefold()
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<p>&nbsp;</p>")
break
else: print(f"\"{user_cevap}\" bir soru sıralaması değil, sadece \"random\", \"yaygın\" veya \"sembolik\" yazmanız lazım.<p>&nbsp;</p>")
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 ' / ' in cevap: cevap = cevap.split(' / ')
if not isinstance(cevap,list): cevap = str_to_list(cevap)
soru += 1
print(f"puanın: {puan}<br/>{soru}) {başlık}<br/>$<p>&nbsp;</p>")
js.window.scrollTo(0, js.document.body.scrollHeight)
user_cevap = input() or 'n'
if user_cevap in cevap:
print("afferim, doğru cevap! (+10 puan)")
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. 👋")
exit(0)
elif puan <= 0:
print("üzgünüm, yanlış cevap.")
return False
else:
print("üzgünüm, yanlış cevap (-5 puan)")
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}<br/>oyunu 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()
</py-script>
</body>
</html>

2
pyscript/README.md Normal file
View File

@ -0,0 +1,2 @@
this files downloaded from https://pyscript.net/
github: https://github.com/pyscript/pyscript

244
pyscript/pyscript.css Normal file
View File

@ -0,0 +1,244 @@
: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 rgba(255, 255, 255, 1);
border-left: 4px solid rgba(255, 255, 255, 1);
border-right: 4px solid rgba(255, 255, 255, 0);
animation: spinner 0.6s linear infinite;
}
@keyframes spinner {
to {
transform: rotate(360deg);
}
}
.label {
text-align: center;
width: 100%;
display: block;
color: rgba(255, 255, 255, 0.8);
font-size: 0.8rem;
margin-top: 6rem;
}
/* Pop-up second layer begin */
.py-overlay {
position: fixed;
display: flex;
justify-content: center;
align-items: center;
color: white;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.5);
transition: opacity 500ms;
visibility: hidden;
color: visible;
opacity: 1;
}
.py-overlay {
visibility: visible;
opacity: 1;
}
.py-pop-up {
text-align: center;
width: 600px;
}
.py-pop-up p {
margin: 5px;
}
.py-pop-up a {
position: absolute;
color: white;
text-decoration: none;
font-size: 200%;
top: 3.5%;
right: 5%;
}
.py-box{
display: flex;
flex-direction: row;
justify-content: flex-start;
}
.py-box div.py-box-child *
{
max-width: 100%;
}
.py-repl-box{
flex-direction: column;
}
.editor-box{
--tw-border-opacity: 1;
border-color: rgba(209, 213, 219, var(--tw-border-opacity));
border-width: 1px;
position: relative;
--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-width: 1px;
border-style: solid;
border-color: rgb(209, 213, 219)
}
.editor-box:hover button{
opacity: 1;
}
.repl-play-button{
opacity: 0;
bottom: 0.25rem;
right: 0.25rem;
position: absolute;
padding: 0;
line-height: inherit;
color: inherit;
cursor: pointer;
background-color: transparent;
background-image: none;
-webkit-appearance: button;
text-transform: none;
font-family: inherit;
font-size: 100%;
margin: 0;
text-rendering: auto;
letter-spacing: normal;
word-spacing: normal;
line-height: normal;
text-transform: none;
text-indent: 0px;
text-shadow: none;
display: inline-block;
text-align: center;
align-items: flex-start;
cursor: default;
box-sizing: border-box;
background-color: -internal-light-dark(rgb(239, 239, 239), rgb(59, 59, 59));
margin: 0em;
padding: 1px 6px;
border: 0;
}
.repl-play-button:hover{
opacity: 1;
}
.py-title{
text-transform: uppercase;
text-align: center;
}
.py-title h1{
font-weight: 700;
font-size: 1.875rem;
}
.py-input{
padding: 0.5rem;
--tw-border-opacity: 1;
border-color: rgba(209, 213, 219, var(--tw-border-opacity));
border-width: 1px;
border-radius: 0.25rem;
margin-right: 0.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 {
text-rendering: auto;
color: -internal-light-dark(black, white);
letter-spacing: normal;
word-spacing: normal;
line-height: normal;
text-transform: none;
text-indent: 0px;
text-shadow: none;
display: inline-block;
text-align: start;
appearance: auto;
-webkit-rtl-ordering: logical;
cursor: text;
background-color: -internal-light-dark(rgb(255, 255, 255), rgb(59, 59, 59));
margin: 0em;
padding: 1px 2px;
border-width: 2px;
border-style: inset;
border-color: -internal-light-dark(rgb(118, 118, 118), rgb(133, 133, 133));
border-image: initial;
}
.py-button{
--tw-text-opacity: 1;
color: rgba(255, 255, 255, var(--tw-text-opacity));
padding: 0.5rem;
--tw-bg-opacity: 1;
background-color: rgba(37, 99, 235, var(--tw-bg-opacity));
--tw-border-opacity: 1;
border-color: rgba(37, 99, 235, var(--tw-border-opacity));
border-width: 1px;
border-radius: 0.25rem;
}
.py-li-element p{
margin: 5px;
}
.py-li-element p{
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;
}

27858
pyscript/pyscript.js Normal file

File diff suppressed because one or more lines are too long

1
pyscript/pyscript.js.map Normal file

File diff suppressed because one or more lines are too long

4
pyscript/pyscript.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long