diff --git a/flask/testapp/static/javascript/beautyVote.js b/flask/testapp/static/javascript/beautyVote.js
index 2030232..f66ef00 100644
--- a/flask/testapp/static/javascript/beautyVote.js
+++ b/flask/testapp/static/javascript/beautyVote.js
@@ -295,7 +295,6 @@
}
}
-
// 集計結果待機中処理
function CheckOthers(){
xhr.open('POST', '/form');
@@ -328,7 +327,7 @@
}
}
-//最終集計結果(順位表)待機処理
+//最終集計結果(順位表)待機処理,表示
function CheckResult(){
xhr.open('POST', '/form');
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
@@ -341,21 +340,33 @@
}
//順位表を受信
else{
- var form = document.createElement('form');
- form.method = 'POST';
- form.action = '/new';
+ var form = document.createElement("form")
+ form.method = "POST";
+ if(language == JPN){
+ form.action = "/resultJPN"
+ }
+ else{
+ form.action = "/resultENG"
+ }
document.body.appendChild(form);
form.submit();
+
+ // 自分の順位の表示用
+ var valueToSend = String(player.score) + "pt"; // javascriptから送りたい値
+ if(language == JPN){
+ window.location.href = "/resultJPN?valueJPN=" + encodeURIComponent(valueToSend);
+ }
+ else{
+ window.location.href = "/resultENG?valueENG=" + encodeURIComponent(valueToSend);
+ }
}
}
}
}
-
var xhr = new XMLHttpRequest();
-
-
-var round = 0; //変更
+var result_xhr= new XMLHttpRequest();
+var round = 10; //変更
var MAX_ROUND = 1;
var CHOICE_NUMBER = 5;
var max_player = 0; // 最大のplayer数(変更不要)
diff --git a/flask/testapp/static/javascript/resultScreen.js b/flask/testapp/static/javascript/resultScreen.js
index a0ce4d3..ffdfe49 100644
--- a/flask/testapp/static/javascript/resultScreen.js
+++ b/flask/testapp/static/javascript/resultScreen.js
@@ -146,57 +146,84 @@
fTextN("ルール1\nルール2\nルール3\nルール4", 480, 950, 200, 50, "white");
}
-function showResult(){
- fill("silver");
- setAlp(50);
- fRect(50, 50, 855, 100, "black");
- fRect(45, 370, 865, 700, "white");
-
-
- if(language==JPN){
- fText("結果発表", 480, 100, 80, "white");
- fText("順位", 150, 410, 50, "black");
- fText("ユーザー名", 390, 410, 50, "black");
- fText("スコア", 730, 410, 50, "black");
- fText("結果", 100, 1100, 50, "red");
- }
- else{
- fText("RESULT", 480, 100, 80, "white");
- fText("order", 150, 410, 50, "black");
- fText("username", 390, 410, 50, "black");
- fText("score", 730, 410, 50, "black");
- fText("result", 100, 1100, 50, "red");
- }
+// function showResult(){
+// if(language==JPN){
+// window.open("showResultJPN.html")
+// }
+// else if (language==ENG){
+// window.open("showResultENG.html")
+// }
+// }
+// function showResult(){
+
+// if(language==JPN){
+// fText("結果発表", 480, 100, 80, "white");
+// fText("順位", 150, 410, 50, "black");
+// fText("ユーザー名", 390, 410, 50, "black");
+// fText("スコア", 730, 410, 50, "black");
+// fText("結果", 100, 1100, 50, "red");
+// }
+// else{
+// fText("RESULT", 480, 100, 80, "white");
+// fText("order", 150, 410, 50, "black");
+// fText("username", 390, 410, 50, "black");
+// fText("score", 730, 410, 50, "black");
+// fText("result", 100, 1100, 50, "red");
+// }
+
+ // if(scene == RESULT_SCENE){
+ // if(language==JPN){
+ // fText(player.name+"さんのスコアは" + player.score + "点です!", 480, 200, 50, "gold");
+ // }
+ // else{
+ // fText(player.name+"'s score is " + player.score + "Points!", 480, 200, 50, "gold");
+ // }
+ // let splitOrder = orderTable.split("\n");
+ // for (var i = 0; i < splitOrder.length; i++){
+ // let arr = splitOrder[i].split(" "); // 空白で文字列を分割
+ // if(arr[0]=="1位"){
+ // fText(arr[0], 150, 480+60*i, 50, "gold");
+ // }
+ // else if(arr[0]=="2位"){
+ // fText(arr[0], 150, 480+60*i, 50, "silver");
+ // }
+ // else if(arr[0]=="3位"){
+ // fText(arr[0], 150, 480+60*i, 50, "#8c4841");
+ // }
+ // else{
+ // fText((i+1)+"位", 150, 480+60*i, 50, "black");
+ // }
+ // fText(arr[1], 390, 480+60*i, 50, "black");
+ // fText(arr[2], 730, 480+60*i, 50, "black");
+ // }
+ // }
+ // for(var i = 0; i < MAX_ROUND; i ++){
+ // fText((i+1), 480 + 50*i, 1100, 50, "black");
+ // }
+ // }
- if(scene == RESULT_SCENE){
- if(language==JPN){
- fText(player.name+"さんのスコアは" + player.score + "点です!", 480, 200, 50, "gold");
- }
- else{
- fText(player.name+"'s score is " + player.score + "Points!", 480, 200, 50, "gold");
- }
- let splitOrder = orderTable.split("\n");
- for (var i = 0; i < splitOrder.length; i++){
- let arr = splitOrder[i].split(" "); // 空白で文字列を分割
- if(arr[0]=="1位"){
- fText(arr[0], 150, 480+60*i, 50, "gold");
- }
- else if(arr[0]=="2位"){
- fText(arr[0], 150, 480+60*i, 50, "silver");
- }
- else if(arr[0]=="3位"){
- fText(arr[0], 150, 480+60*i, 50, "#8c4841");
- }
- else{
- fText((i+1)+"位", 150, 480+60*i, 50, "black");
- }
- fText(arr[1], 390, 480+60*i, 50, "black");
- fText(arr[2], 730, 480+60*i, 50, "black");
- }
- }
- for(var i = 0; i < MAX_ROUND; i ++){
- fText((i+1), 480 + 50*i, 1100, 50, "black");
- }
+
+function showResult(){
+ fill("silver");
+ setAlp(50);
+ fRect(50, 50, 855, 100, "black");
+ fRect(45, 370, 865, 700, "white");
+
+
+ if(language==JPN){
+ fText("結果発表", 480, 100, 80, "white");
+ fText("順位", 150, 410, 50, "black");
+ fText("ユーザー名", 390, 410, 50, "black");
+ fText("スコア", 730, 410, 50, "black");
+ fText("結果", 100, 1100, 50, "red");
+ }
+ else{
+ fText("RESULT", 480, 100, 80, "white");
+ fText("order", 150, 410, 50, "black");
+ fText("username", 390, 410, 50, "black");
+ fText("score", 730, 410, 50, "black");
+ fText("result", 100, 1100, 50, "red");
+ }
}
function showOtherResult(show_click_round){
diff --git a/flask/testapp/templates/testapp/showResultENG.html b/flask/testapp/templates/testapp/showResultENG.html
new file mode 100644
index 0000000..4c40a62
--- /dev/null
+++ b/flask/testapp/templates/testapp/showResultENG.html
@@ -0,0 +1,86 @@
+
+
+
+美人投票ゲーム
+
+
+
+
+
+
+
+
+
+
+
+
+
BeautyVoteResult
+ Your Score is
+ 0pt
+
+
+
+
+
+ | order |
+ player name |
+ score(pt) |
+
+ {% for i in order_table %}
+
+ {% for j in i %}
+ | {{j}} |
+ {% endfor %}
+
+ {% endfor %}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/flask/testapp/templates/testapp/showResultJPN.html b/flask/testapp/templates/testapp/showResultJPN.html
new file mode 100644
index 0000000..c399031
--- /dev/null
+++ b/flask/testapp/templates/testapp/showResultJPN.html
@@ -0,0 +1,86 @@
+
+
+
+美人投票ゲーム
+
+
+
+
+
+
+
+
+
+
+
+
+
美人投票ゲーム結果発表
+ あなたのスコアは
+ 0pt
+
+
+
+
+
+ | 順位 |
+ player名 |
+ スコア(pt) |
+
+ {% for i in order_table %}
+
+ {% for j in i %}
+ | {{j}} |
+ {% endfor %}
+
+ {% endfor %}
+
+
+
+
+
+
+
+
diff --git a/flask/testapp/views.py b/flask/testapp/views.py
index 61ad3b6..cb359be 100644
--- a/flask/testapp/views.py
+++ b/flask/testapp/views.py
@@ -1,4 +1,4 @@
-from flask import render_template, request, redirect, url_for
+from flask import render_template, request, jsonify
from testapp import app
from collections import Counter
import time
@@ -16,7 +16,7 @@
# 何位まで表示するか(nemoto)
-max_order = 5
+max_order = MAX_PLAYER
# scoreを保存するデータ
data = [0] * MAX_PLAYER
@@ -37,7 +37,7 @@
data_count = 0
-order_table = ""
+order_table_array = []
most_common_option = 0
start_flag = False
@@ -47,7 +47,6 @@
@app.route("/", methods=["GET", "POST"])
def inputName():
- print("GET")
global user_number, current_player, start_flag, user
if request.method == "GET":
@@ -59,9 +58,7 @@
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
@@ -79,7 +76,7 @@
@app.route("/form", methods=["GET", "POST"])
def index():
- global frequent_table, user_number, data_count, order_table, 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
if request.method == "GET":
return render_template("testapp/index.html")
@@ -139,26 +136,23 @@
if data_count >= current_player:
scores_order, user_number_order = calculate_order(data)
print(scores_order, user_number_order)
- order_table = 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 == "":
+ if order_table_array == "":
return "WAIT"
else:
user_number = 0
start_flag = False
-
- # 他のエンドポイントにリダイレクトする
- return redirect(url_for("inputName"))
- # return render_template("testapp/inputName.html")
- # return order_table
-
+ print("finsih")
+ 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"
@@ -170,13 +164,9 @@
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"):
@@ -187,9 +177,7 @@
# ランキング上位の計算
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]
@@ -197,8 +185,38 @@
# 順位表の作成 otaki(同率の場合も考慮 nemoto)
+# def create_order_table(scores, labels, max):
+# order_table = ""
+# j = 0 # 同率順位の考慮
+
+# # 最高"max位"までを表示する
+# if max >= current_player:
+# max = current_player
+
+# for i in range(max):
+# if i + j >= max: # 参照する配列がこれ以上ない時
+# break
+# order_table += str(i + 1 + j) + "位" + " " + user[int(labels[i + j])] + " " + str(scores[i + j]) + "pt" + "\n"
+# 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
+# order_table += (
+# str(now_order) + "位" + " " + user[int(labels[i + j])] + " " + str(scores[i + j]) + "pt" + "\n"
+# )
+# if i + j + 1 >= max: # (i+j)と比較する配列(i+j+1)がない時
+# break
+
+# if order_table.endswith("\n"):
+# order_table = order_table[:-1] # 最後の改行文字を削除
+# print("FINAL" + order_table)
+# return order_table
+
+
def create_order_table(scores, labels, max):
- order_table = ""
+ get_order_table = []
j = 0 # 同率順位の考慮
# 最高"max位"までを表示する
@@ -208,43 +226,26 @@
for i in range(max):
if i + j >= max: # 参照する配列がこれ以上ない時
break
- order_table += (
- str(i + 1 + j)
- + "位"
- + " "
- + user[int(labels[i + j])]
- + " "
- + str(scores[i + j])
- + "pt"
- + "\n"
- )
+ 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
- order_table += (
- str(now_order)
- + "位"
- + " "
- + user[int(labels[i + j])]
- + " "
- + str(scores[i + j])
- + "pt"
- + "\n"
- )
+ 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
-
- if order_table.endswith("\n"):
- order_table = order_table[:-1] # 最後の改行文字を削除
- print("FINAL" + order_table)
- return order_table
+ return get_order_table
-@app.route("/new", methods=["GET", "POST"])
-def new_page():
+@app.route("/resultJPN", methods=["GET", "POST"])
+def showResultJPN():
+ global order_table_array
+ return render_template("testapp/showResultJPN.html", order_table=order_table_array)
- return render_template("testapp/inputName.html", )
- # return "これは新しいページです。データが正しく送信されました。"
+
+@app.route("/resultENG", methods=["GET", "POST"])
+def showResultENG():
+ global order_table_array
+ return render_template("testapp/showResultENG.html", order_table=order_table_array)