Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,11 @@
"\n",
"Author: Rin Huang, Eric Wei\n",
"\n",
"In this first part of the project, you will solve a simple search-based problem on the Cachex game board.\n",
"Before you read this specification, please make sure you have carefully read the entire ‘Rules for the Game\n",
"of Cachex’ document. Although you won’t be writing an agent to play the game just yet, you should be\n",
"aiming to get very familiar with the board layout and corresponding hex coordinate system.\n",
"\n",
"The aims for Project Part A are for you and your project partner to\n",
"- refresh and extend your Python programming skills\n",
"- explore some of the algorithms you have encountered in lectures, and \n",
"- become more familiar with the Cachex task environment.\n",
"\n",
"This is also a chance for you to develop fundamental Python tools for working with the game: Some of the functions and classes you create now may be helpful later (when you are building your full game-playing program for Part B of the project).\n",
"\n",
"To compute this path you are asked to use an A* search and design an **admissible heuristic** to optimise its performance. There are a number of assumptions you should make:\n",
"1. The start and goal cells will always be unoccupied (but any other cells may be occupied).\n",
"2. All given cell coordinates will be within the bounds of a board of size n. More precisely, for any given cell coordinate (r: row, q: column), 0 ≤ r < n and 0 ≤ q < n. You may also assume n ≥ 1.\n",
"3. The cost of a path is defined as the number of cells that form a continuous path from the start cell to the goal cell (including these cells).\n",
"4. If there is a tie, that is, multiple minimal paths of the same cost exist on the same board configuration, any such path is a valid solution.\n",
"5. There may not always be a valid path from the "
"In Part A we had to find the cheapest path between two cells on a Cachex board of size n, where some cells are already occupied and can't be used. The search is A* with a heuristic we designed ourselves and had to keep admissible.\n",
"\n",
"A path's cost is the number of cells in it, counting both the start and the goal. The start and goal are always free and inside the board, a tie between equally short paths can go either way, and some boards have no path at all.\n",
"\n",
"The point of this part was to get comfortable with the hex coordinate system and to build Python helpers we could reuse for the game-playing agent in Part B."
]
},
{
Expand Down