File size: 4,162 Bytes
8b41da9
d2540d6
8b41da9
 
 
 
 
d2540d6
 
 
 
 
 
 
 
 
 
 
 
8651983
 
 
 
 
 
d2540d6
8651983
 
 
d2540d6
8651983
 
d2540d6
 
8651983
 
 
 
d2540d6
8651983
 
 
 
 
 
 
 
d2540d6
8651983
 
d2540d6
8651983
 
 
 
 
 
d2540d6
8651983
 
8b41da9
 
 
d2540d6
8b41da9
 
 
 
 
 
 
8651983
8b41da9
8651983
8b41da9
d2540d6
8651983
 
8b41da9
 
8651983
8b41da9
d2540d6
6066cfe
 
 
 
b18cdce
d2540d6
6066cfe
b18cdce
 
d2540d6
 
 
 
 
 
 
6066cfe
 
 
 
d2540d6
6066cfe
 
b18cdce
6066cfe
 
 
17db4dd
6066cfe
 
d2540d6
8651983
b18cdce
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
from flask import Flask, render_template, request, session, redirect, url_for
import json
import random

app = Flask(__name__)
app.secret_key = "your_secret_key_here"

# JSONファイルから元素と原子番号の対応関係を読み込む
with open("element_atomic_numbers.json", "r", encoding="utf-8") as f:
    element_atomic_numbers = json.load(f)

# JSONファイルから首都のデータを読み込む
with open("capitals.json", "r", encoding="utf-8") as f:
    capitals = json.load(f)

# element_outer_electrons
with open("element_outer_electrons.json", "r", encoding="utf-8") as f:
    element_outer_electrons = json.load(f)


# ランダムな国名とその首都を取得する関数
def get_random_country():
    country = random.choice(list(capitals.keys()))
    return country, capitals[country]


# 初期の問題を設定する
current_country, current_capital = get_random_country()


@app.route('/')
def index():
    return render_template('quiz_index.html')


@app.route('/quiz_capital', methods=['GET', 'POST'])
def quiz_capital():
    global current_country, current_capital

    result = None

    if request.method == 'POST':
        user_input = request.form['user_input']
        if user_input == current_capital:
            result = '正解です!'
        else:
            result = '不正解です。正解は{}です。'.format(current_capital)

    return render_template('quiz_capital.html', element=current_country, result=result)


@app.route('/next_capital', methods=['POST'])
def next_question_capital():
    global current_country, current_capital
    current_country, current_capital = get_random_country()
    return redirect(url_for('quiz_capital'))


@app.route('/quiz_element', methods=['GET', 'POST'])
def quiz_element():
    # セッションに元素がない場合はランダムに選択
    if "element" not in session:
        session["element"] = random.choice(list(element_outer_electrons.keys()))

    if request.method == "POST":
        user_input = int(request.form["user_input"])
        correct_answer = element_outer_electrons[session["element"]]
        if user_input == correct_answer:
            result = "正解です!"
        else:
            result = f"残念!正解は {correct_answer} でした。"
        return render_template("quiz_element.html", element=session["element"], result=result)

    return render_template("quiz_element.html", element=session["element"], result=None)


@app.route("/next_element", methods=["POST"])
def next_question_element():
    # 次の問題をセッションに設定し、リダイレクト
    session["element"] = random.choice(list(element_outer_electrons.keys()))
    return redirect(url_for("quiz_element"))


@app.route('/quiz_element2num', methods=['GET', 'POST'])
def quiz_element2num():
    # セッションに元素がない場合はランダムに選択
    if "element" not in session:
        session["element"] = random.choice(list(element_atomic_numbers.keys()))

    if request.method == "POST":
        user_input = request.form["user_input"]
        correct_answer = [key for key, value in element_atomic_numbers.items() if value == session["element"]]
        
        if correct_answer:
            correct_answer = correct_answer[0]
        else:
            # Handle the case where no correct answer is found
            correct_answer = "No matching element found"

        if user_input == correct_answer:
            result = "正解です!"
        else:
            result = f"残念!正解は {correct_answer} でした。"

        return render_template("quiz_element2num.html", element=session["element"], result=result)

    return render_template("quiz_element2num.html", element=element_atomic_numbers[session["element"]], result=None)
@app.route("/next_element2num", methods=["POST"])
def next_question_element2num():
    # 次の問題をセッションに設定し、リダイレクト
    session["element"] = random.choice(list(element_atomic_numbers.values()))[1]
    return redirect(url_for("quiz_element2num"))


if __name__ == '__main__':
    app.run(debug=True, port=7860, host="0.0.0.0")