Advertisement
Guest User

Untitled

a guest
Jun 8th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. class BoardPanel : JPanel(), SettingsPanel.SettingsListener {
  2.  
  3. private var boardSize = STARTING_BOARD_SIZE
  4. lateinit var fieldsArray: Array<Array<Field>>
  5.  
  6. val gameManager = Stratego()
  7.  
  8. init {
  9. preferredSize = Dimension(BOARD_WIDTH, BOARD_HEIGHT)
  10. layout = GridBagLayout()
  11. updateGUI()
  12. }
  13.  
  14. private fun updateGUI() {
  15. removeAll()
  16. val constraints = GridBagConstraints()
  17. constraints.fill = GridBagConstraints.HORIZONTAL
  18. fieldsArray = Array(boardSize) { Array(boardSize) { Field() } }
  19.  
  20. if (fieldsArray.isNotEmpty()) {
  21. val fieldSize = calculateFieldSize()
  22. for (x in fieldsArray.indices) {
  23. for (y in fieldsArray.indices) {
  24. constraints.gridx = x
  25. constraints.gridy = y
  26. fieldsArray[x][y] = Field()
  27. fieldsArray[x][y].preferredSize = Dimension(fieldSize, fieldSize)
  28. add(fieldsArray[x][y], constraints)
  29. }
  30. }
  31. }
  32. revalidate()
  33. }
  34.  
  35. private fun calculateFieldSize(): Int = minOf(BOARD_WIDTH, BOARD_HEIGHT) / boardSize
  36.  
  37. override fun updateSize(n: Int) {
  38. boardSize = n
  39. updateGUI()
  40. gameManager.updateBoard(fieldsArray)
  41. }
  42.  
  43. override fun changeStrategy(player1: Player, player2: Player) {
  44. gameManager.updatePlayers(player1, player2)
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement