Skip to content

Latest commit

 

History

History
executable file
·
110 lines (86 loc) · 2.78 KB

Readme.md

File metadata and controls

executable file
·
110 lines (86 loc) · 2.78 KB

SimUniversity

C# implementation of the board game Settlers of Catan, with a University/Campus theme.

Idea from the project in UNSW CSE COMP1711 computing course in 2002, lecturer Richard Buckland.

Console UI

Console UI

Running the code on Linux/OS X

Build:

$ xbuild SimUniversity.ConsoleUI/SimUniversity.ConsoleUI.csproj

Start the Console UI

$ mono SimUniversity.ConsoleUI/bin/Release/MingStar.SimUniversity.ConsoleUI.exe

Then press Enter to play a game.

Difference from the original Settlers of Catan game:

  • No player trading (yet)
  • No robber
  • No development cards, instead players can found startup companies with a 20% success rate
  • No limitations on the number of campuses (settlements) and super campuses (cities)

Difference from the original COMP1711 SimUniversity game

  • Resource are Wood, Brick, Ore, Grain and Sheep (as student degrees are too hard to remember)
  • Acquire students from the 2nd campus in the setup phase (same as Catan)
  • When a startup company failed, no card stealing from other players (yet)

Game Concept Translation Table

SimUniversityOriginal Catan
Hexagon (Suburb)Hex Terrian
EdgePath
VertexIntersection
Trading SiteTrading Post
Internet LinkRoad
Traditional CampusSettlement
Super CampusCity
Student/DegreeResource
Successful StartupDevelopment Card - Victory Point
Failed StartupDevelopment Card - Knight
Longest Internet LinkLongest Road
Most Failed StartupLargest Army

New Features Coming

  • .NET Game Engine

    • support multiple games
    • support multiple clients
    • with a WCF/web service interface (to support game clients written in other languages)
    • simple user management
  • Game Engine admin/viewer (Front end)

  • .NET Game Client (Console/Web UI)

    • join a game
    • play a multi-player game
    • Display the game

TODO:

  • Added round results after the AI tournament in learning
  • Write tests for the game play
  • Have another AI to search all possible moves within the turn (particular useful in late game)
  • Enable deep copy of game state (so AI won't be possible to break the actual game)
  • Persist game state

Tidy up:

  • Remove game state hashing