Add Level Count down

This commit is contained in:
bigJIU 2023-04-03 14:53:14 +08:00
parent 18bc6a9c17
commit 0de883ae54
4 changed files with 41 additions and 39 deletions

View File

@ -98,6 +98,8 @@ class idManager():
def setTimes(self, ip): def setTimes(self, ip):
self.ip_time[ip] = 0 self.ip_time[ip] = 0
# 1 For next step
# 0 For not next step
def getTimes(self, ip): def getTimes(self, ip):
if ip not in self.ip_time.keys(): if ip not in self.ip_time.keys():

30
main.py
View File

@ -22,13 +22,16 @@ evalDataPath = "evals/"
questionarePath = "data/questionare.csv" questionarePath = "data/questionare.csv"
annotationPath = "data/annotation.csv" annotationPath = "data/annotation.csv"
annotationPath2 = "data/annotation2.csv" annotationPath2 = "data/annotation2.csv"
feedbackPath = "data/feedback.csv"
#id=idm.getId(request.remote_addr)
# id=idm.getId(request.remote_addr)
def getId(): def getId():
if 'name' not in session: if 'name' not in session:
session['name'] = str(uuid.uuid4()) session['name'] = str(uuid.uuid4())
return session['name'] return session['name']
@app.route('/') @app.route('/')
def gamewelcome(): def gamewelcome():
ip = getId() ip = getId()
@ -55,8 +58,8 @@ def gamepreplay():
result.get("playedp"), result.get("playedp"),
result.get("gamestyle"), result.get("gamestyle"),
result.get("frequency"), result.get("frequency"),
result.get("age")+result.get("myAge"), result.get("age") + result.get("myAge"),
result.get("gender")+result.get("myGender"), result.get("gender") + result.get("myGender"),
""]) ""])
idm.setControl(cid, result.get("control")) idm.setControl(cid, result.get("control"))
print(result.get("gamestyle")) print(result.get("gamestyle"))
@ -67,7 +70,8 @@ def gamepreplay():
@app.route('/gametutorial/<id>') @app.route('/gametutorial/<id>')
def gametutorial(id): def gametutorial(id):
return render_template('GameTutorial.html', tutorial=idm.addTutorial(id), next=idm.hasNextTutorial(id),maxT=idm.tutorialMax, return render_template('GameTutorial.html', tutorial=idm.addTutorial(id), next=idm.hasNextTutorial(id),
maxT=idm.tutorialMax,
control=idm.getControl(id)) control=idm.getControl(id))
@ -85,6 +89,7 @@ def gametutorialdata(id):
def gameplay(id): def gameplay(id):
gamelevels = idm.getLevels(id) gamelevels = idm.getLevels(id)
return render_template('GamePlay.html', gamelevels=gamelevels, control=idm.getControl(id), levelNum=2, return render_template('GamePlay.html', gamelevels=gamelevels, control=idm.getControl(id), levelNum=2,
times=idm.getTimes(id),
jump="/annotation") jump="/annotation")
@ -93,7 +98,7 @@ def getJSONData(id):
if request.method == 'POST': if request.method == 'POST':
print("POST Game") print("POST Game")
resultList = list(request.form)[0].split(",") resultList = list(request.form)[0].split(",")
saveFile(replayDataPath, id + resultList[0][:-2], resultList[1:]) saveFile(replayDataPath, id + "_" + resultList[0][:-2], resultList[1:])
return "return!" return "return!"
@ -147,7 +152,7 @@ def getJSONData2(id):
if request.method == 'POST': if request.method == 'POST':
print("POST Game") print("POST Game")
resultList = list(request.form)[0].split(",") resultList = list(request.form)[0].split(",")
saveFile(replayDataPath, id + resultList[0][:-2], resultList[1:]) saveFile(replayDataPath, id+"_" + resultList[0][:-2], resultList[1:])
return "return!" return "return!"
@ -174,11 +179,8 @@ def gameanno2(id):
def gameannoresult2(id): def gameannoresult2(id):
if request.method == 'POST': if request.method == 'POST':
print("result: " + id) print("result: " + id)
resultList = list(request.form)[0].split(",") resultList = list(request.form)[0].split(",")
levelList = idm.getRecent(getId()) levelList = idm.getRecent(getId())
idm.write_csv(annotationPath2, idm.write_csv(annotationPath2,
[getId(), resultList[0], resultList[1], resultList[2], levelList[0], levelList[1], [getId(), resultList[0], resultList[1], resultList[2], levelList[0], levelList[1],
levelList[2], levelList[2],
@ -194,10 +196,18 @@ def gameannoresult2(id):
@app.route("/gameover") @app.route("/gameover")
def over(): def over():
finish = idm.getTimes(getId()) finish = idm.getTimes(getId())
return render_template("GameOver.html", finish=1, stage=1) return render_template("GameOver.html", finish=1, stage=1)
@app.route("/gameover/<id>/feedback", methods=['POST'])
def overa():
if request.method == 'POST':
resultList = list(request.form)[0].split(",")
idm.write_csv(feedbackPath,
[getId(), resultList[0],
""])
def saveFile(path, filename, content): def saveFile(path, filename, content):
cp = list(map(int, content)) cp = list(map(int, content))
file_dir = os.path.join(os.getcwd(), path) file_dir = os.path.join(os.getcwd(), path)

View File

@ -187,6 +187,7 @@
<div class="col-md-12"> <div class="col-md-12">
<div align="center"> <div align="center">
<h3 id="Head">Level A</h3> <h3 id="Head">Level A</h3>
<p id="leftLevel">There are 7 levels left</p>
<p class="alert">If the game is not responding to your keyboard, please click on the game screen.</p> <p class="alert">If the game is not responding to your keyboard, please click on the game screen.</p>
</div> </div>
<div align="center" id="GameWindow"> <div align="center" id="GameWindow">
@ -201,6 +202,7 @@
cheerpjInit(); cheerpjInit();
var divElement = document.getElementById("GameWindow"); var divElement = document.getElementById("GameWindow");
var title = document.getElementById("Head"); var title = document.getElementById("Head");
var leftLevel = document.getElementById("leftLevel")
var levelNum = Number("{{levelNum}}") var levelNum = Number("{{levelNum}}")
var levels = getLevels("{{gamelevels}}", levelNum); var levels = getLevels("{{gamelevels}}", levelNum);
var levelNames = ["Level A", "Level B", "Level C", "Level D"]; var levelNames = ["Level A", "Level B", "Level C", "Level D"];
@ -215,8 +217,19 @@
console.log("GameLoad Initialize Succeed!"); console.log("GameLoad Initialize Succeed!");
document.getElementById("loading").style.visibility = 'hidden'; document.getElementById("loading").style.visibility = 'hidden';
}) })
leftNum = 0;
if(levelNum === 3) {leftNum = 2}
else {
if ("{{times}}"==1){
leftNum = 4;
}else{
leftNum = 6;
}
}
leftLevel.innerText = "There are " + leftNum +" levels left."
leftNum--;
for (i = 0; i < levelNum - 1; i++) { for (i = 0; i < levelNum - 1; i++) {
console.log("Play level: %s", levels[i]) console.log("Play level: %s", levels[i])
PlayLevel(levels[i], control) PlayLevel(levels[i], control)
@ -225,6 +238,8 @@
console.log(i) console.log(i)
var index = levelNames.indexOf(title.innerText); var index = levelNames.indexOf(title.innerText);
title.innerText = levelNames[index + 1]; title.innerText = levelNames[index + 1];
leftLevel.innerText = "There are " + leftNum +" levels left."
leftNum--;
}); });
} }
@ -235,7 +250,9 @@
}); });
function LeftNum(times, level){
}

View File

@ -312,23 +312,6 @@
None of above None of above
</label> </label>
</p> </p>
<script>
function renew( ){
if ($("input[name='gender']").val()=="D"){
$("input[name='gender']").val($("input[type='text']").val())
}
if( $("input[name='age']").val()=="A"){
$("input[name='age']").val($("input[type='number']").val())
}
}
</script>
<p> <p>
<h4>4. How often do you play games?</h4> <h4>4. How often do you play games?</h4>
<label> <label>
@ -357,8 +340,8 @@
<h4>5. What is your age?</h4> <h4>5. What is your age?</h4>
<label> <label>
<input type="radio" class="option-input radio" name="age" value= "A"> <input type="radio" class="option-input radio" name="age" value="A">
<input type="number" value="" step="1" placeholder="Input your age"> <input type="number" name="myAge" value="" step="1" placeholder="Input your age">
</label> </label>
@ -403,16 +386,6 @@
</label> </label>
</p> </p>
<script>
function renew( ){
$("input[name='gender']").val($("input[type='text']").val())
$("input[name='age']").val($("input[type='number']").val())
}
</script>
<br> <br>
<p><b><input type="submit" value="Submit" class="cirButton" <p><b><input type="submit" value="Submit" class="cirButton"
style="font-weight: 700; font-size: large; width: 60%;" onclick ="" /></b></p> style="font-weight: 700; font-size: large; width: 60%;" onclick ="" /></b></p>