Add Tutorial

This commit is contained in:
bigJIU 2022-11-10 21:54:44 +08:00
parent e2abea7831
commit 581b552ea6
13 changed files with 61 additions and 44 deletions

14
.idea/workspace.xml generated
View File

@ -3,9 +3,15 @@
<component name="ChangeListManager">
<list default="true" id="c32bfd4e-6189-47f3-9d6c-c1825d3d7e5f" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/data/annotation.csv" beforeDir="false" afterPath="$PROJECT_DIR$/data/annotation.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/IDManager.py" beforeDir="false" afterPath="$PROJECT_DIR$/IDManager.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/data/questionare.csv" beforeDir="false" afterPath="$PROJECT_DIR$/data/questionare.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/GameOver.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/GameOver.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/levels/Tutorial1.lvl" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/levels/Tutorial2.lvl" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/levels/Tutorial3.lvl" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/levels/test1.lvl" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/levels/test2.lvl" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/GameTutorial.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/GameTutorial.html" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -159,7 +165,7 @@
<workItem from="1667456828218" duration="24361000" />
<workItem from="1667898094682" duration="1595000" />
<workItem from="1667998268807" duration="2593000" />
<workItem from="1668064138807" duration="5381000" />
<workItem from="1668064138807" duration="7237000" />
</task>
<servers />
</component>
@ -179,7 +185,7 @@
</component>
<component name="com.intellij.coverage.CoverageDataManagerImpl">
<SUITE FILE_PATH="coverage/MarioWeb$test.coverage" NAME="test Coverage Results" MODIFIED="1668079935841" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/MarioWeb$Flask__main_py_.coverage" NAME="Flask (main.py) Coverage Results" MODIFIED="1668084426080" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
<SUITE FILE_PATH="coverage/MarioWeb$Flask__main_py_.coverage" NAME="Flask (main.py) Coverage Results" MODIFIED="1668088139944" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
<SUITE FILE_PATH="coverage/MarioWeb$Flask__main_py___1_.coverage" NAME="Flask (main.py) (1) Coverage Results" MODIFIED="1668079945407" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
</component>
</project>

View File

@ -3,10 +3,12 @@ import csv
class idManager():
levelNum = 200
timeMin = 1
tutorialMax = 3
ip_dic = {}
ip_recent = {}
ip_control = {}
ip_time = {}
ip_tutorial = {}
def __int__(self):
self.levelNum = 200
@ -49,6 +51,23 @@ class idManager():
self.ip_time[ip] = self.ip_time[ip]+1
return self.ip_time[ip]
def addTutorial(self,ip):
if ip not in self.ip_tutorial.keys():
self.ip_tutorial[ip] = 1
return 1
else:
if self.ip_tutorial[ip]>self.tutorialMax:
return 1
else:
self.ip_tutorial[ip] = self.ip_tutorial[ip] + 1
return self.ip_tutorial[ip]
def hasNextTutorial(self,ip):
if self.ip_tutorial[ip] == self.tutorialMax:
return 0
else:
return 1
def getControl(self,ip):
return self.ip_control[ip]
def write_csv(self,path, data):

Binary file not shown.

Binary file not shown.

View File

@ -20,3 +20,4 @@
127.0.0.1,47,30,E
127.0.0.1,47,30,E
127.0.0.1,136,104,E
127.0.0.1,136,68,E

1 127.0.0.1 a b anno
20 127.0.0.1 47 30 E
21 127.0.0.1 47 30 E
22 127.0.0.1 136 104 E
23 127.0.0.1 136 68 E

View File

@ -52,3 +52,8 @@ IP,Style,Frequency,Age,Gender
127.0.0.1,,,,,
127.0.0.1,,,,,
127.0.0.1,,,,,
127.0.0.1,,,,,
127.0.0.1,,,,,
127.0.0.1,,,,,
127.0.0.1,,,,,
127.0.0.1,,,,,

1 IP,Style,Frequency,Age,Gender
52 127.0.0.1,,,,,
53 127.0.0.1,,,,,
54 127.0.0.1,,,,,
55 127.0.0.1,,,,,
56 127.0.0.1,,,,,
57 127.0.0.1,,,,,
58 127.0.0.1,,,,,
59 127.0.0.1,,,,,

View File

@ -1,16 +0,0 @@
----------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------SSSS-SSS-----------------------SSSSSSSSSSSSSSSSSS----------------SSSSSSSSSSSSSSSS----------------S--SSSSSS-------
----------o-----t-------------------------------------------------------------------SSSS--S----------------------SSSSSSSSSSSSSSS--------------------------------
%--------S------t--------------------------------------------------------------------SS--SSS--------------------SSSSSSSSSSSSSSS---------------------------------
|------------------------------o----------SSSSSS--------------------Q--------------S------SS-------------------o------S----KSSS---------------@%--S-------------
|-----------------------------------------SSSSS------oo----------------------------------------------%---------------------SS------------------|----------------
|--------------------------------------SSSSSSSS-%----%%%%%-%%--------------------------SS------------|-----------------------------------------|-----#----------
|--------o------------------------S--SS--SSSSS--|-----|||--||--------------------------r-------S-----|------------SSo-ooo---oSSS---------------|----##----------
|------------------------------S----SSSSSSSSSSS-|-----|||--||-------------------%%%%%%%%%%------QQQ--|-QQ----------SSS%--%%%%%%%---#-----------|---####--##-##-#
|------------------------------t--------S-------|-T---|||--||----------------#---||||||||----#-------|----------------|---|||||----#-----------|--#####--##----#
|--------------------------tt--t-------SSS%%-SS-|-TT--|||--||----------------#--S|||||||S----#-------tt---------S-----|--S||||S----#-----------|-######--##----#
|--------k-------g---------tt-kt----------||----|-TT--|||--||----kkg-------###---|||||||---------g---tt------ggg------|---||||-----#-#---------|#######--##----#
XX-------XXXXXXXXXXXXXXXXXXXXXXXS--%------%%----|XXXX-|||--||---XXXXXXXXXXXXXXXX%|%%%%%%%-------XXXXXXXXXXXXXXXX-%%%%%%%%%%%||--XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-X
XX-------XXXXXXXXXXXXXXXXXXXXXXX---|------||----|XXXX-|||--||---XXXXXXXXXXXXXXXXg|-|||||--------XXXXXXXXXXXXXXXXg-|||||||||-||--XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-X

View File

@ -1,16 +0,0 @@
----------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------SSSS-SSS-----------------------SSSSSSSSSSSSSSSSSS----------------SSSSSSSSSSSSSSSS----------------S--SSSSSS-------
----------o-----t-------------------------------------------------------------------SSSS--S----------------------SSSSSSSSSSSSSSS--------------------------------
%--------S------t--------------------------------------------------------------------SS--SSS--------------------SSSSSSSSSSSSSSS---------------------------------
|------------------------------o----------SSSSSS--------------------Q--------------S------SS-------------------o------S----KSSS---------------@%--S-------------
|-----------------------------------------SSSSS------oo----------------------------------------------%---------------------SS------------------|----------------
|--------------------------------------SSSSSSSS-%----%%%%%-%%--------------------------SS------------|-----------------------------------------|-----#----------
|--------o------------------------S--SS--SSSSS--|-----|||--||--------------------------r-------S-----|------------SSo-ooo---oSSS---------------|----##----------
|------------------------------S----SSSSSSSSSSS-|-----|||--||-------------------%%%%%%%%%%------QQQ--|-QQ----------SSS%--%%%%%%%---#-----------|---####--##-##-#
|------------------------------t--------S-------|-T---|||--||----------------#---||||||||----#-------|----------------|---|||||----#-----------|--#####--##----#
|--------------------------tt--t-------SSS%%-SS-|-TT--|||--||----------------#--S|||||||S----#-------tt---------S-----|--S||||S----#-----------|-######--##----#
|--------k-------g---------tt-kt----------||----|-TT--|||--||----kkg-------###---|||||||---------g---tt------ggg------|---||||-----#-#---------|#######--##----#
XX-------XXXXXXXXXXXXXXXXXXXXXXXS--%------%%----|XXXX-|||--||---XXXXXXXXXXXXXXXX%|%%%%%%%-------XXXXXXXXXXXXXXXX-%%%%%%%%%%%||--XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-X
XX-------XXXXXXXXXXXXXXXXXXXXXXX---|------||----|XXXX-|||--||---XXXXXXXXXXXXXXXXg|-|||||--------XXXXXXXXXXXXXXXXg-|||||||||-||--XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-X

12
main.py
View File

@ -32,7 +32,7 @@ def gamepreplay():
""])
idm.setControl(ip, result.get("control"))
print(result.get("gamestyle"))
return redirect(url_for('gameplay', id=ip))
return redirect(url_for('gametutorial', id=ip))
@app.route('/again')
@ -44,9 +44,13 @@ def gamepreplayAgain():
def gamequestion():
return render_template('GameQuestion.html')
@app.route('/gametutorial/<id>/<level>')
def gametutorial(id, level):
return render_template('GameTutorial.html', tutorial=level)
@app.route('/gametutorial/<id>')
def gametutorial(id):
return render_template('GameTutorial.html', tutorial=idm.addTutorial(id), next=idm.hasNextTutorial(id))
@app.route('/gametutorial/<id>/data')
def gametutorialdata(id):
return redirect(url_for('gameplay', id=id))
@app.route('/gameplay/<id>')
def gameplay(id):

View File

@ -124,7 +124,6 @@
</div>
<br>
<div class="row clearfix">
<div class="col-md-12">
@ -134,6 +133,18 @@
<div align="center" id = "GameWindow">
</div>
<div align = "center" style="visibility: hidden;" id = "next">
<br>
<button onclick="
window.location.href = window.location.href;
"><h3>Play Next Tutorial</h3></button>
</div>
<div align = "center" style="visibility: hidden;" id = "game">
<br>
<button onclick="
window.location.href = window.location.href+'/data'
"><h3>Play Real Game</h3></button>
</div>
<script>
//Init Cheerpj Framework
@ -166,7 +177,7 @@
return element;
}*/
var divElement = document.getElementById("GameWindow");
var level = "Tutorial"+"{{tutorial}}";
var level = "t"+"{{tutorial}}";
cheerpjCreateDisplay(500,500,divElement);
cheerpjRunMain("Play", "/app/Mario-AI-Interface.jar", "0", "f_l");
@ -176,8 +187,11 @@
PlayLevel(level,control)
.then(function (){
//play next?
alert("Go to Evaluation Window")
window.location.href = "/annotation"
if ("{{next}}"=="1"){
document.getElementById("next").style.visibility = "visible";
}
document.getElementById("game").style.visibility = "visible";
});