Code Monkey home page Code Monkey logo

app's People

Contributors

allanincomp avatar candou9 avatar jaden1967 avatar kingdeath233 avatar yilun-sun avatar

Stargazers

 avatar

Watchers

 avatar  avatar

app's Issues

TO DO LIST

To-do list

Functional Requirements

Must include

The game must include ==a command prompt== that is available throughout the usage of the game (even if you have a GUI). All the commands should be validated and give proper feedback on their effect or invalidity. Each of the commands should only work in the game phase for which they are designed for. The commands should use the exact same syntax as defined below. Some commands have options preceded by a dash. Either or both options can be used and may be used multiple times in a command. Command parameters are noted in italics.

  • a command prompt

Map editor

User-driven creation of map elements

User-driven creation of map elements: country, continent, and connectivity between countries

Map editor commands:

  • editcontinent -add continentname continentvalue

  • editcontinent -remove continentname

  • editcountry -add countryname continentname

  • editcountry -remove countryname

  • editneighbor -add countryname neighborcountryname

  • editneighbor -remove countryname neighborcountryname

  • showmap (show all continents and countries and their neighbors)

  • editcountry -cood countryname (x,y)

Saving a map to a text file

Saving a map to a text file exactly as edited (using the “domination” game map format)

Map editor command:

  • savemap filename

Loading a map from an existing map file

Loading a map from an existing “domination” map file to edit or create a new map from scratch if the file does not exist

Map editor command:

  • editmap filename

Verification of map correctness

Verification of map correctness. The map should be automatically validated upon loading and before saving (at least 3 types of incorrect maps). The validatemap command can be triggered anytime during map editing

Map editor command:

  • validatemap

Game Play

Implementation

Implementation of a game driver implementing and controlling the game phases according to the Risk rules.

Game play command:

  • showmap

(show all countries and continents, armies on each country, ownership, and connectivity)

Startup phase

Game starts by user selection of a user-saved map file.

Startup phase command:

  • loadmap filename

Map is loaded as ==a connected graph==, which is rendered effectively to the user to enable efficient play.

User creates the players, then all countries are randomly assigned to players.

Startup phase commands:

  • gameplayer -add playername
  • gameplayer -remove playername
  • populatecountries

Players are allocated a number of initial armies, depending on the number of players. In round-robin fashion, the players place their given armies one by one on their own countries.

Startup phase commands:

  • placearmy countryname

(by each player until all players have placed all their armies) placeall (automatically randomly place all remaining unplaced armies for all players)

Reinforcement phase

Calculation of correct number of reinforcement armies according to the Risk rules. Player place all reinforcement armies on the map. Reinforcement phase command:

  • reinforce countryname num

(until all reinforcements have been placed)

Fortification phase

Implementation of a valid fortification move according to the Risk rules.

Fortification phase commands:

  • fortify fromcountry tocountry num
  • fortify none (choose to not do a move)

Docs

Architectural design

Short document including an architectural design diagram. Short but complete and clear description of the design, which should break down the system into cohesive modules. The architectural design should be reflected in the implementation of well-separated modules and/or folders.

Software versioning repository

Well-populated history with dozens of commits, distributed evenly among team members, as well as evenly distributed over the time allocated to the build. A tagged version should have been created for build 1.

Javadoc API documentation

Completed for all files, all classes and all methods.

Unit testing framework

At least 10 relevant test cases testing the most important aspects of the code. Must include tests for: (1) map validation – map is a connected graph; (2) continent validation – continent is a connected subgraph; (3) calculation of number of reinforcement armies; (4) reading valid/invalid map files.

Coding standards

Short and simple document describing coding standard used. Consistent and proper use of code layout, naming conventions and comments, absence of “commented out” code.

  • Architectural design
  • Software versioning repository
  • Javadoc API documentation
  • Unit testing framework
  • Coding standards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.