File size: 3,411 Bytes
a437484
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
592e89d
a437484
 
592e89d
a437484
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import gradio as gr

# Diziler
sorular = [
    {
        "sayi_listesi": [
            [1, 3, 5, 7, 9, 11, 13, 15],
            [17, 19, 21, 23, 25, 27, 29, 31],
            [33, 35, 37, 39, 41, 43, 45, 47],
            [49, 51, 53, 55, 57, 59, 61, 63],
        ],
        "ilk_eleman": 1,
    },
    {
        "sayi_listesi": [
            [4, 5, 6, 7, 12, 13, 14, 15],
            [20, 21, 22, 23, 28, 29, 30, 31],
            [36, 37, 38, 39, 44, 45, 46, 47],
            [52, 53, 54, 55, 60, 61, 62, 63],
        ],
        "ilk_eleman": 4,
    },
    {
        "sayi_listesi": [
            [2, 3, 6, 7, 10, 11, 14, 15],
            [18, 19, 22, 23, 26, 27, 30, 31],
            [34, 35, 38, 39, 42, 43, 46, 47],
            [50, 51, 54, 55, 58, 59, 62, 63],
        ],
        "ilk_eleman": 2,
    },
    {
        "sayi_listesi": [
            [32, 33, 34, 35, 36, 37, 38, 39],
            [40, 41, 42, 43, 44, 45, 46, 47],
            [48, 49, 50, 51, 52, 53, 54, 55],
            [56, 57, 58, 59, 60, 61, 62, 63],
        ],
        "ilk_eleman": 32,
    },
    {
        "sayi_listesi": [
            [16, 17, 18, 19, 20, 21, 22, 23],
            [24, 25, 26, 27, 28, 29, 30, 31],
            [48, 49, 50, 51, 52, 53, 54, 55],
            [56, 57, 58, 59, 60, 61, 62, 63],
        ],
        "ilk_eleman": 16,
    },
    {
        "sayi_listesi": [
            [8, 9, 10, 11, 12, 13, 14, 15],
            [24, 25, 26, 27, 28, 29, 30, 31],
            [40, 41, 42, 43, 44, 45, 46, 47],
            [56, 57, 58, 59, 60, 61, 62, 63],
        ],
        "ilk_eleman": 8,
    },
]


# Sayı tablosunu HTML formatında göstermek için
def tablo_olustur(sayi_listesi):
    tablo = "<table style='width:100%; text-align:center; align-items: center;font-size: 20px; border-collapse:collapse;'>"
    for satir in sayi_listesi:
        tablo += "<tr>"
        for sayi in satir:
            tablo += f"<th style='border: 1px solid black; padding: 5px; text-align: center;'>{sayi}</th>"
        tablo += "</tr>"
    tablo += "</table>"
    return tablo


# Kullanıcıdan gelen "var" veya "yok" cevabına göre toplama ekleme fonksiyonu
def sayi_tahmin(*adimlar):
    toplam = 0
    for i, cevap in enumerate(adimlar):
        if cevap:
            toplam += sorular[i]["ilk_eleman"]
    return f"Tuttuğunuz sayı: {toplam}"


# Gradio arayüzü
btn_clikced=False
def reset():
    with gr.Blocks() as app:
        gr.Markdown("<center><strong style='font-size: 30px;'>Merhaba sayi tahmin oyununa HOŞ GELDİNİZ!</strong></center>")
        gr.Markdown("<center><strong style='font-size: 20px;'>1-63 arasında bir sayi tutunuz!</strong></center>")


        checkboxes = []

        # Her bir adım için soruyu gösteren Checkbox ve tabloyu ekliyoruz
        for i, soru in enumerate(sorular):
            gr.Markdown(f"Adım {i+1}:")
            gr.HTML(tablo_olustur(soru["sayi_listesi"]))
            checkboxes.append(
                gr.Checkbox(
                    label=f"Tuttuğunuz sayı bu dizide varsa tıklayınız", value=False
                )
            )

        btn = gr.Button("Tahmin Et")
        sonuc = gr.Textbox(label="Sonuç")

        def tahmin_et(*adimlar):
            sonuc_value = sayi_tahmin(*adimlar)
            return sonuc_value

        when = btn.click(tahmin_et, inputs=checkboxes, outputs=[sonuc])
        btn_clikced=True
    return app


app = reset()
app.launch()