CS 175: Project in AI (in Minecraft) Spring 2017
2 What Do I Submit?
Here we’ll describe what exactly you need to submit to the assignment on Canvas.
1. Code: Finding Start and End Blocks (5 points):
As a simple exercise, implement the
find
_
start
_
end
function, that takes the grid as an array of string describing the block types, and returns the indices of the
start and the end block. This should only require, at maximum, a few lines of code. Submit this snippet as
your submission.
2. Output: Start and End Block Indices (5 points):
Run the code with the above implemented, and look at
the output lines that start with
Output (start,end)
and paste them as your submission. There should be
10 lines, one for each mission.
3. Code: Shortest Path Implementation (50 points):
Implement Dijkstra’s algorithm in order to find the
shortest path from the source to the destination. The set of possible actions from each block is one step in
north, south, east, or west directions, i.e. taking multiple or diagnol steps is not allowed. The path you
compute should be shortest in terms of number of moves (all of them cost the same), should be a list of
block indices (integers), should include both the start and the end blocks, and of course, should not contain
any air blocks. Submit the complete implementation of your function.
4. Output: Length of the Shortest Paths (30 points):
Run the code with the above implemented, and look
at the output lines that start with
Output (path length)
and with
Output (actions)
and paste them
as your submission. There should be 20 lines, two for each mission.
5. Comments:
Any comments about your submission that you want to bring to our attention as we are grading
it. This is completely optional, I expect most of you to leave this empty.
6. Statement of Collaboration (10 points):
It is
mandatory
to include a Statement of Collaboration with
respect to the guidelines below. Include the names of everyone involved in the discussions (especially
in-person ones), and what was discussed. You should also include the links to all online resources you used
for the assignment in this section.
All students are required to follow the academic honesty guidelines posted on the course website. For
programming assignments, in particular, I encourage the students to organize (perhaps using Piazza) to discuss the
task description, assignment requirements, bugs in our/Malmo code, and the relevant technical content before they
start working on it. However, you should not discuss the specific solutions, and, as a guiding principle, you are not
allowed to take anything written or drawn away from these discussions (i.e. no photographs of the blackboard,
written notes, etc.). The same holds for online resources: you are allowed to read the description of algorithms,
but your code should be your own. Especially after you have started working on the assignment, try to restrict the
discussion to Piazza as much as possible, so that there is no doubt as to the extent of your collaboration.
Assignment 1 UC Irvine 3/ 3