Explanation Of all folder [sai] - LimYewKwong/BattleShip GitHub Wiki

  1. Lib: It contains collections of all pre-written class or code template, any of which can be specified and used by the programmer or developer. In this Lib, each class has an Object, the developer can call the Object during application development.

  2. Resources: Resources contains animations, bundles, fonts, images, panels, sounds, high-scores. It contains the outer appearance of the game. It stores players' high scores in the text files.

2.1) Animations: It stores all animations of the game, for instance, splash and explosion animation.

2.2) **Bundles: **It loads all the resourced used for the splash screen and it stores all files extension and folders, for instance, images -> BITMAP,fdFolder,fdFolder.png, SOUND -> fdDialogError,error.wav

2.3) Fonts: Included font-family is Arial, Cour, Ffsccess, Maven_pro_regular.

2.4) Images: It contains all the images of the Battel Ship game. For instance, ship, deploy, splash,swingameAni.

2.5) Panel: Load bitmaps for the panel, Load Fonts for labels before creating panels.

2.6) Sounds: It contains all the sound effects of the game. They are error sound, hit sound, lose sound, sink sound, game start sound, water shot sound, winner sound.

  1. Src: It contains all the programming code of the game. They are
    • DeplotmentController.cs: It controls the players' actions during the deployment phase.

    • DiscoveryController.cs: It handles the actions of the player during the game phase.

    • EndingGameController.cs: It shows the result of both players at the end of the game.

    • GameController.cs: It manages the current state of the user game and displays it.

    • GameLogice.cs: It contains all the logic of the game.

    • GameResources.cs: It stores all the resources of the file. For instance, image, sound and so on.

    • GameState.cs: It consists of 8 types of Enum file.

    • HighScoreController.cs: It displays all-time high score for the players.

    • MenuController.cs: It handles the UI interaction for Menu setting and Main Menu.

    • UtilityFunctions.cs: It contains the method of drawing as well as the interaction of the mouse.

3.1)src/Model : * AIHardPlayer: It contains the implementation of hard AI.

* **AIMediumPlayer:** It contains the implementation of medium AI.  

* **AIOption:** Enum of AI Options. 

* **AIPlayer:** It contains the implementation of AI for the players. 

* **AttackResult:** It shows the output result after every shot from the players. 

* **BattleShipsGame:** It provides the control of the game flow. 

* **Direction:** Enum of Direction for the players. It works as a guide. 

* **ISeaGrid:** It is an interface that holds signature to display and allow the player to shoot on the grid
  Player and as well as contains an implementation of the player.

* **ResultOfAttack:** Enum of ResultOfAttack.

* **SeaGrid:** It is the grid in which the ships were deployed.

* **SeaGridAdapter:** Masking the position of the ship.

* **Ship:** It contains details about every ship in the Battleship.

* **ShipName:** Enum of ShipName.

* **Tile:** It knows the players coordinate and state.

* **TileView:** Enum of TileView. 
  1. Clean: It contains the build/temp files of clean.
  2. Contributors: It contains information about each contributor.
  3. README: It contains a user message and script to run the program after developing it.
  4. **bin:**It includes necessary files after building the game and stores all the exe files.