72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@startuml
 | 
						|
package com.iluwatar.typeobject {
 | 
						|
  class App {
 | 
						|
    - LOGGER : Logger {static}
 | 
						|
    + App()
 | 
						|
    + main(args : String[]) {static}
 | 
						|
  }
 | 
						|
  class Candy {
 | 
						|
    ~ name : String
 | 
						|
    ~ parent : Candy
 | 
						|
    ~ parentName : String
 | 
						|
    - points : int
 | 
						|
    - type : Type
 | 
						|
    ~ Candy(name : String, parentName : String, type : Type, points : int)
 | 
						|
    ~ getPoints() : int
 | 
						|
    ~ getType() : Type
 | 
						|
    ~ setPoints(a : int)
 | 
						|
  }
 | 
						|
  ~enum Type {
 | 
						|
    + crushableCandy {static}
 | 
						|
    + rewardFruit {static}
 | 
						|
    + valueOf(name : String) : Type {static}
 | 
						|
    + values() : Type[] {static}
 | 
						|
  }
 | 
						|
  class CandyGame {
 | 
						|
    - LOGGER : Logger {static}
 | 
						|
    ~ cells : Cell[][]
 | 
						|
    ~ pool : CellPool
 | 
						|
    ~ totalPoints : int
 | 
						|
    ~ CandyGame(num : int, pool : CellPool)
 | 
						|
    ~ adjacentCells(y : int, x : int) : List<Cell>
 | 
						|
    ~ continueRound() : boolean
 | 
						|
    ~ handleChange(points : int)
 | 
						|
    ~ numOfSpaces(num : int) : String {static}
 | 
						|
    ~ printGameStatus()
 | 
						|
    ~ round(timeSoFar : int, totalTime : int)
 | 
						|
  }
 | 
						|
  class Cell {
 | 
						|
    ~ candy : Candy
 | 
						|
    ~ positionX : int
 | 
						|
    ~ positionY : int
 | 
						|
    ~ Cell()
 | 
						|
    ~ Cell(candy : Candy, positionX : int, positionY : int)
 | 
						|
    ~ crush(pool : CellPool, cellMatrix : Cell[][])
 | 
						|
    ~ fillThisSpace(pool : CellPool, cellMatrix : Cell[][])
 | 
						|
    ~ handleCrush(c : Cell, pool : CellPool, cellMatrix : Cell[][])
 | 
						|
    ~ interact(c : Cell, pool : CellPool, cellMatrix : Cell[][]) : int
 | 
						|
  }
 | 
						|
  class CellPool {
 | 
						|
    - RANDOM : Random {static}
 | 
						|
    ~ pointer : int
 | 
						|
    ~ pool : List<Cell>
 | 
						|
    ~ randomCode : Candy[]
 | 
						|
    ~ CellPool(num : int)
 | 
						|
    ~ addNewCell(c : Cell)
 | 
						|
    ~ assignRandomCandytypes() : Candy[]
 | 
						|
    ~ getNewCell() : Cell
 | 
						|
  }
 | 
						|
  class JsonParser {
 | 
						|
    ~ candies : Hashtable<String, Candy>
 | 
						|
    ~ JsonParser()
 | 
						|
    ~ parse()
 | 
						|
    ~ setParentAndPoints()
 | 
						|
  }
 | 
						|
}
 | 
						|
Cell -->  "-candy" Candy
 | 
						|
Type ..+ Candy
 | 
						|
Candy -->  "-type" Type
 | 
						|
Candy -->  "-parent" Candy
 | 
						|
CandyGame -->  "-pool" CellPool
 | 
						|
CellPool -->  "-pool" Cell
 | 
						|
@enduml |