diff --git a/flask/server.py b/flask/server.py index 497b313..254aaf5 100644 --- a/flask/server.py +++ b/flask/server.py @@ -1,5 +1,5 @@ from testapp import app if __name__ == "__main__": - app.run() + app.run(host="0.0.0.0", port=5002, debug=True) diff --git a/flask/testapp/static/image/image1.jpg b/flask/testapp/static/image/image1.jpg new file mode 100644 index 0000000..c1ee3c4 --- /dev/null +++ b/flask/testapp/static/image/image1.jpg Binary files differ diff --git a/flask/testapp/static/image/image2.jpg b/flask/testapp/static/image/image2.jpg new file mode 100644 index 0000000..8fd6c8c --- /dev/null +++ b/flask/testapp/static/image/image2.jpg Binary files differ diff --git a/flask/testapp/static/image/image3.jpg b/flask/testapp/static/image/image3.jpg new file mode 100644 index 0000000..e6557b7 --- /dev/null +++ b/flask/testapp/static/image/image3.jpg Binary files differ diff --git a/flask/testapp/static/image/image4.jpg b/flask/testapp/static/image/image4.jpg new file mode 100644 index 0000000..216b9cf --- /dev/null +++ b/flask/testapp/static/image/image4.jpg Binary files differ diff --git a/flask/testapp/static/javascript/beautyVote.js b/flask/testapp/static/javascript/beautyVote.js index 1569af4..87a2bfe 100644 --- a/flask/testapp/static/javascript/beautyVote.js +++ b/flask/testapp/static/javascript/beautyVote.js @@ -45,6 +45,9 @@ setQuestion(round); player.name = username; player.number = userNumber; + for(var i = 0; i < 4; i ++){ + + } console.log(language); } @@ -184,11 +187,17 @@ xhr.open('POST', '/form'); xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); //選択を送信 - xhr.send('choice=' + player.choice); + xhr.send('round=' + round + '&choice=' + player.choice); //WAITコードを受信 xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { + if(xhr.responseText == "FAILED"){ console.log(xhr.responseText); + scene = CAPASITY_ERROR + } + else{ + console.log(xhr.responseText); + } } } } @@ -297,7 +306,7 @@ console.log(xhr.responseText); } //順位表を受信 - else{ + else if(xhr.responseText == "FINISH"){ var form = document.createElement("form") form.method = "POST"; if(language == JPN){ @@ -308,7 +317,7 @@ } document.body.appendChild(form); form.submit(); - + // 自分の順位の表示用 var valueToSend = String(player.score) + "pt"; // javascriptから送りたい値 if(language == JPN){ @@ -318,14 +327,18 @@ window.location.href = "/resultENG?valueENG=" + encodeURIComponent(valueToSend); } } + else{ + console.log(xhr.responseText) + } } } } + var xhr = new XMLHttpRequest(); var result_xhr= new XMLHttpRequest(); var round = 0; //変更 -var MAX_ROUND = 10; +var MAX_ROUND = 3; var CHOICE_NUMBER = 5; var max_player = 0; // 最大のplayer数(変更不要) var current_player = 0; @@ -422,7 +435,7 @@ ["たこ焼き", "ジンギスカン", "ギョーザ", "うな重"], ["工学部", "教育学部", "法政経学部", "理学部"], ["学部1,2年", "学部3,4年", "修士課程", "博士課程"], - ["山田ルイ53世", "スギちゃん", "浜田雅功", "椿鬼奴"], + ["山田ルイ53世", "スギちゃん", "浜田雅功", "中山きんに君"], ["Spring", "Summer", "Autumn", "Winter"], ["Spiny lobster", "Daikon", "Japanese pear", "Broad bean"], ["Hyogo Prefecture", "Osaka Prefecture", "Chiba Prefecture", "Kagoshima Prefecture"], @@ -432,7 +445,7 @@ ["Takoyaki", "Jingisukan", "Gyoza", "Unadon"], ["Faculty of Engineering", "Faculty of Education", "Faculty of Law and Economics", "Faculty of Science"], ["Undergraduate 1st,2nd year", "Undergraduate 3rd,4th year", "Master's course", "Doctoral course"], - ["Yamada Rui 53rd", "Sugi-chan", "Masahiro Hamada", "Tsubaki Oniyakko"]]; + ["Yamada Rui 53rd", "Sugi-chan", "Masahiro Hamada", "Nakayama Kin'nikun"]]; */ diff --git a/flask/testapp/views.py b/flask/testapp/views.py index cb359be..c2b2bf2 100644 --- a/flask/testapp/views.py +++ b/flask/testapp/views.py @@ -27,6 +27,7 @@ choices = [] current_player = MAX_PLAYER +current_round = 0 # 各回のゲーム結果を保存 @@ -58,7 +59,9 @@ username = request.form.get("username") language = request.form.get("language") if user_number >= MAX_PLAYER or start_flag: - return render_template("testapp/index.html", scene=CAPASITY_ERROR, language=language) + return render_template( + "testapp/index.html", scene=CAPASITY_ERROR, language=language + ) user[user_number] = username user_number += 1 @@ -76,7 +79,7 @@ @app.route("/form", methods=["GET", "POST"]) def index(): - global frequent_table, user_number, data_count, order_table_array, most_common_option, max_order, current_player, start, end, start_flag + global frequent_table, user_number, data_count, order_table_array, most_common_option, max_order, current_player, start, end, start_flag, current_round if request.method == "GET": return render_template("testapp/index.html") @@ -97,11 +100,16 @@ start_flag = True # ゲーム中に選択肢を取得し,集計する - if request.form.get("choice"): + if request.form.get("choice") and request.form.get("round"): if len(choices) >= current_player: + current_round += 1 choices.clear() - choices.append(request.form.get("choice")) - print("Received choice:", choices) + if int(request.form.get("round")) == current_round: + choices.append(request.form.get("choice")) + print(f"Received choice:{choices} Round:{current_round+1}") + else: + print("GET FAIL") + return "FAILED" # 他の人が終わるまで待機 if request.form.get("checkothers"): @@ -134,25 +142,27 @@ # すべてのデータが集まった場合,順位表を作成 otaki if data_count >= current_player: + print(data_count, current_player) scores_order, user_number_order = calculate_order(data) print(scores_order, user_number_order) - order_table_array = create_order_table(scores_order, user_number_order, max_order) + order_table_array = create_order_table( + scores_order, user_number_order, max_order + ) return "WAIT" # 最終結果を集計 if request.form.get("checkResult"): #  順位表が作成した場合はそれを返す - if order_table_array == "": + if order_table_array == []: return "WAIT" else: user_number = 0 start_flag = False - print("finsih") + current_round = 0 print(order_table_array) return "FINISH" - # return render_template("testapp/index.html") - # return render_template("testapp/showResultJPN.html", order_table=order_table_dict) + return "WAIT" @@ -164,9 +174,13 @@ common_order = counter.most_common() # 文字列として保存 for i in range(5): - get_frequent_table += str(common_order[i][0]) if len(common_order) > i else str(4) + get_frequent_table += ( + str(common_order[i][0]) if len(common_order) > i else str(4) + ) get_frequent_table += " " - get_frequent_table += str(common_order[i][1]) if len(common_order) > i else str(0) + get_frequent_table += ( + str(common_order[i][1]) if len(common_order) > i else str(0) + ) get_frequent_table += "\n" if get_frequent_table.endswith("\n"): @@ -177,7 +191,9 @@ # ランキング上位の計算 def calculate_order(get_data): - get_sorted_numbers_with_indices = sorted(enumerate(get_data), key=lambda x: x[1], reverse=True) + get_sorted_numbers_with_indices = sorted( + enumerate(get_data), key=lambda x: x[1], reverse=True + ) get_scores = [item[1] for item in get_sorted_numbers_with_indices] get_labels = [item[0] for item in get_sorted_numbers_with_indices] @@ -226,14 +242,18 @@ for i in range(max): if i + j >= max: # 参照する配列がこれ以上ない時 break - get_order_table.append([str(i + 1 + j), user[int(labels[i + j])], str(scores[i + j])]) + get_order_table.append( + [str(i + 1 + j), user[int(labels[i + j])], str(scores[i + j])] + ) now_order = i + 1 + j # 今の順位 if i + j + 1 == max: # 先ほどorder_tableに挿入した配列が,最後であった時 break # 同じスコアのplayersの処理 while str(scores[i + j]) == str(scores[i + 1 + j]): j += 1 - get_order_table.append([str(now_order), user[int(labels[i + j])], str(scores[i + j])]) + get_order_table.append( + [str(now_order), user[int(labels[i + j])], str(scores[i + j])] + ) if i + j + 1 >= max: # (i+j)と比較する配列(i+j+1)がない時 break return get_order_table @@ -242,6 +262,7 @@ @app.route("/resultJPN", methods=["GET", "POST"]) def showResultJPN(): global order_table_array + return render_template("testapp/showResultJPN.html", order_table=order_table_array)