Code Monkey home page Code Monkey logo

legends_monsters-and-heroes's Introduction

CS611-Legends

Team information

Name BU id email
Feifan Yuan U61632796 [email protected]
Junchen Liu U36314175 [email protected]
BhaskarDurgaVeeraVenkata Ganga Raju U89625488 [email protected]

!!How to run!!:

  1. download this project
  2. move to directory src
  3. run javac *.java to compile
  4. run java Main to run the project
  5. Note: make sure you use a Unix-based device to run this game, otherwise the colorful terminal cannot render successfully(for Windows-based machine)

Files

  1. Main
    • Entrance of the project
    • contains main() funciton
  2. Game
    • abstract class for all kinds of games
  3. GameHost
    • a host of the whole game to run different games
  4. GameRPG
    • abstract class for all kinds of RPG games
    • inherits from Game
  5. GameLMH
    • game of Legends
    • inherits from GameRPG
  6. GameLV
    • game of Legends of Valor
    • inherits from GameRPG
  7. GamePrintUtil
    • print some common things in different games
  8. UserInputUtil
    • deal with the input from a user
  9. PlayMusic
    • use to play the background music
  10. GenericCharacter
  • represents characters in RPG games
  1. Hero
    • heroes in Legends
    • inherits from GenericCharacter
  2. HeroPaladin
    • one type of hero
    • inherits from Hero
  3. HeroSorcerer
    • one type of hero
    • inherits from Hero
  4. HeroWarrior
    • one type of hero
    • inherits from Hero
  5. HeroList
    • a class used to parse hero files and print all types of heroes
  6. StrategyLevelUp
    • an interface used to realize strategy pattern for level up strategies of different heroes
  7. HeroPaladinLevelUp
    • Hero Paladins level up strategy
    • implements StrategyLevelUp
  8. HeroSorcererLevelUp
    • Hero Sorcerers level up strategy
    • implements StrategyLevelUp
  9. HeroWarriorsLevelUp
    • Hero Warriors level up strategy
    • implements StrategyLevelUp
  10. Monster
    • monsters in Legends
    • inherits from GenericCharacter
  11. MonsterDragon
    • one type of monster
    • inherits from Monster
  12. MonsterExoskeleton
    • one type of monster
    • inherits from Monster
  13. MonsterSpirit
    • one type of monster
    • inherits from Monster
  14. MonsterList
    • a class used to parse monster files and print all types of monsters
  15. Bag
    • bags for each hero
    • contains different types of props and money
  16. Prop
    • props in Legends
  17. Weapon
    • weapons in Legends
    • inherits Prop
  18. Armor
    • armors in Legends
    • inherits Prop
  19. Potion
    • potions in Legends
    • inherits Prop
  20. Spell
    • spells in Legends
    • inherits Prop
  21. SpellFile
    • one type of spell
    • inherits spell
  22. SpellIce
    • one type of spell
    • inherits spell
  23. SpellLightning
    • one type of spell
    • inherits spell
  24. isAttackable
    • if a weapon is attackable
  25. isCastble
    • if a spell is castable
  26. isTradable
    • if a prop is tradable
  27. isUsable
    • if a potion is usable
  28. Market
    • markets for all type of games
  29. MarketLMH
    • market for Legends
    • inherits from Market
  30. MarketPrinter
    • an interface used to print props in markets
    • implemented by Market
  31. MarketFactory
    • a class used to realize simple factory pattern
    • is extendable for other different types of markets
  32. Grid
    • grids for all type of games
  33. GridLMH
    • grid for Legends
    • inherits from Grid
  34. GridLV
    • grid for Legends of Valor
    • inherits from Grid
  35. GridPrinter
    • an interface used to print grid
    • implemented by Grid
  36. GridFactory
    • a class used to realize simple factory pattern
    • is extendable for other different types of grids
  37. Cell
    • basic cell of a grid
  38. CellBirth
    • birth place of a player
  39. CellHero
    • position of a player
  40. CellCommon
    • common space in a grid
  41. CellInaccessible
    • inaccessible space in a grid
  42. CellMarket
    • markets in a grid
  43. CellHeroNexus
    • nexus of heroes
  44. CellMonsterNexus
    • nexus of monsters
  45. CellBush
    • bushes in a grid
  46. CellCave
    • caves in a grid
  47. CellPlain
    • plains in a grid
  48. CellKoulou
    • koulous in a grid
  49. StrategyParsing
    • an interface used to realize strategy pattern
    • implemented by Weapon, Armor, Potion, Spell
  50. ParsingFile
    • like a Context class in strategy pattern
  51. Colors
    • store some useful color to realize colorful console

Notes:

  1. Bonus

    • Realize colorful console and use some icons to make the grid more user friendly.
    • Use design patterns
      • simple factory pattern (class MarketFactory and GridFactory)
      • strategy pattern (class StrategyParsing and Strategy LevelUp)
    • Input is getting parsed from the input files and is not hardcoded
    • There is usage of other extra graphics
    • We add background sound to this game
  2. Things to note

    In the Legends of Monsters and Heroes

    • hp of heroes = level * 1000 (It is easy for a hero to be fainted in only 1 turn because of high damage of a monster)
    • dodge_chance of heroes = 0.001 * agility (controlled between 0.0-1.0 which is same as monsters)
    • If all the heroes are fainted, the game will automatically end.

legends_monsters-and-heroes's People

Contributors

junchen-liu avatar yuanfeif avatar

Watchers

 avatar  avatar

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.