1 — The Analysis

Due Friday, 30 September 2022, 11:59:59pm

Delivery Create a directory called Maze in your git repository.

Within Maze, create a folder named Planning/. This is where you place the product of this week’s milestone (questions-about-the-game.md and sprints.md).

Self-Evals This first milestone does not come with a self-evaluation form. For all future milestones, the self-evaluation form will appear in your milestone directory right after the due date/time and will be due by 6:00pm (18:00) on the same day.

Background We are about to launch a "dot game" company. You have been hired to design and implement the software.

This novel company is for hackers, starting with your friends. The two founders and co-CEOs noticed how these people are bored and always want to demonstrate their tremendous programming skills.

This company will provide the ideal outlet for them. The company will provide game servers to which these hackers can connect player software and win prizes—for an enormous entry fee of course. The grand idea is this:
  • the company publishes a "plug in" protocol to which automated players must adhere;

  • the game servers allow such "AI" players to sign up for games;

  • once the sign-up period is over, the servers run the game; and

  • the owners of the winning player(s) will receive prize money, the losers will be allowed to pay an entry fee for the next game.

This course focuses on delivering robust software, but we will need some basic game-playing algorithm. Participating hackers must produce robust software because any mistake will be punished by termination. This may sound overly strict for these modern times, but robustness has to be the primary goal, game-playing strategies remain the secondary one.

See The Game: Labyrinth for the first game that the founders have in mind.

Tasks The CEOs have analyzed the game from the perspective of the overall goal and have identified the important components and layers of the software system. See The Components for the result of their work. You are their software developer, and you need to implement these components.

First you need a plan. That is, you need to arrange the components in a sequence of milestones that create the identified components and the overall system.

Come up with a plan for the first three sprints. Set the goals for each milestone. For the second and third, describe how the resulting components relate to the first and second, respectively.

Constraint Each of these sprints should produce a (set of) component(s) of manageable size in about two days (16 hours) of work.

Deposit this planning document in a file called sprints.md in Planning/.

Second, you need to make sure you understand the game that the CEOs picked and how you think they want the rules to be interpreted. Analyze the rule description in The Game: Labyrinth. Write up the three most important questions that you think the description leaves open—if any. Each question should be at most one line; if you think your questions demands a justification, you may optionally add an explanatory paragraph. If you don’t have any questions, say so.

Deposit these questions in a file called questions-about-the-game.md in Planning/.

Format Write each document as a business memo. Use mark-down to format these documents. The github server will render them as web pages. Consider installing a previewer for the mark down format.

Each document must not exceed one “page” when rendered for PDF printing, say from a browser or a previewer.