To add a new scenario <scenario1> you have to add the following files:
src/main/resources/de/saar/minecraft/domains
:
- <scenario1>.init: file needed to run the minecraft server
- <scenario1>.lisp: the domain of the scenario
- <scenario1>-p01.lisp: the problem of the scenario
- <scenario1>-block.plan: a plan for the problem with the abstraction level block
- <scenario1>-medium.plan: a plan for the problem with the abstraction level medium
- <scenario1>-highlevel.plan: a plan for the problem with the abstraction level highlevel
src/main/resources/de/saar/minecraft/questionnaires
:
- <scenario1>.txt: a questionnaire for the player after the scenario was finished successfully
src/main/resources/de/saar/minecraft/worlds
:
- <scenario1>.csv: predefined structures in the minecraft world
Run the Jshop-Planner on the according abstraction level using the files <scenario1>.lisp as DOMAINFILE and <scenario1>-p01.lisp as PROBLEMFILE.
The end of the output of the planner will have a form like this:
********* PLAN *******
( (instruction_1 ) cost_of_instruction_1 ... (instruction_n ) cost_of_instruction_n )
Now you can copy the instructions inside the outer brackets (without copying the outer brackets as well!) and paste it into the according plan file. Afterwards you have to insert line breaks after the cost of each instruction. The .plan file should look like the following:
(instruction_1 ) cost_of_instruction_1
...
(instruction_n ) cost_of_instruction_n
Example:
- Planner output:
********* PLAN *******
( (!place-block stone 7.0 66.0 6.0 100.0 100.0 100.0 ) 2.0 (!place-block stone 9.0 66.0 6.0 7.0 66.0 6.0 ) 2.0 )
- .plan file:
(!place-block stone 7.0 66.0 6.0 100.0 100.0 100.0 ) 2.0
(!place-block stone 9.0 66.0 6.0 7.0 66.0 6.0 ) 2.0
The problem files have a general form like this:
(defproblem problem-<scenario1> build-<scenario1> (
(last-placed 100 100 100) ...
)
((build-<scenario1> x ... z))
)
You have to paste the following part into the .init file:
build-<scenario1> x ... z
Example:
- problem file:
(defproblem problem-bridge build-bridge (
(last-placed 100 100 100) (block-at BLUE_WOOL 6 66 6) (block-at YELLOW_WOOL 10 66 8)
)
((build-bridge 6 66 6 5 3))
)
- .init file
build-bridge 6 66 6 5 3
In the questionnaires there are questions that the player is asked after he succesfully finished the scenario.
You can answer questions in different ways with:
- a rating scale, f.ex. choosing a number between 1 and 5
- free text
- Questions that have to be answered with a rating scale:
LIKERT: <Question/Sentence>
- Questions that you can answer with free text:
FREE: <Question/Sentence>
Example:
LIKERT:The system gave me useful feedback about my progress.
FREE:Please add any comments or observations you had(free text).
This repository contains files of predefined structures for Minecraft worlds.
The .csv-files have four columns:
- x-coordinate
- y-coordinate
- z-coordinate
- Material
Example:
3,2,3,BLUE_WOOL
4,2,3,BLUE_WOOL
1,1,4,WATER
The Material is written as specified in the enum org.bukkit.Material from the spigot API.
For comments in the world file: If a line starts with a #, it is ignored.
Bedrock blocks cannot be destroyed by the player.
Leave the plan with y-coordinate 0 as bedrock layer so that players don't fall into the void.
- bridge: a bridge with a railing
- house: a house with a flat roof
- busstop: a busstop with 3 walls and a flat roof that juts out on the side without a wall
- rectangle25: a rectangle of size 5x5 and height 1