Помощь в написании студенческих работ
Антистрессовый сервис

Разработка приложения «сетевая игра морской бой»

Курсовая Купить готовую Узнать стоимостьмоей работы

Модуль ScoreBattleFieldPanel. javaimport java.awt.Color;import java.awt.Graphics;import javax.swing.JPanel;public class ScoreBattleFieldPanel extends JPanel implements BattleListener {private BattleModel battleModel;public ScoreBattleFieldPanel (BattleModel pBattleModel){battleModel = pBattleModel;}@Overrideprotected void paintComponent (Graphics pGraphics){super.paintComponent (pGraphics);int… Читать ещё >

Разработка приложения «сетевая игра морской бой» (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. Постановка задачи
  • 2. Интерфейс программы
  • 3. Исходный текст на языке Java
    • 3. 1. Модуль BattleAI. java
    • 3. 2. МодульBattleBasicAI.java
    • 3. 3. Модуль BattleAIDirection. java
    • 3. 4. Модуль BattleAIPlace. java
    • 3. 5. Модуль BattleAIRandom. java
    • 3. 6. МодульBattleController.java
    • 3. 7. МодульBattleField.java
    • 3. 8. Модуль BattleFieldPanel. java
    • 3. 9. МодульBattleLauncher.java
    • 3. 10. Модуль BattleListener. java
    • 3. 11. Модуль BattleModel. java
    • 3. 12. Модуль BattleShip. java
    • 3. 13. МодульBattleShipPlace.java
    • 3. 14. Модуль BattleShipPlaceChecker. java
    • 3. 15. МодульBattleShipPlaceSet.java
    • 3. 16. Модуль BattleView. java
    • 3. 17. Модуль ComputerBattleFieldPanel. java
    • 3. 18. Модуль FieldCell. java
    • 3. 19. Модуль PlayerBattleFieldPanel. java
    • 3. 20. Модуль ScoreBattleFieldPanel. java
  • Заключение
  • Список литературы

getFieldCell (pX, pY).setState (FieldCell.FIELD_CELL_WELL);battleShip.getFieldCells ().add (getBattleField ().getFieldCell (pX, pY));getBattleField ().getFieldCell (pX, pY).setBattleShip (battleShip);return true;}@Overridepublic boolean setBorder (int pX, int pY){if (getBattleField ().isBound (pX, pY)){ getBattleField ().getFieldCell (pX, pY).setState (FieldCell.FIELD_CELL_BORDER);battleShip.getFieldBorders ().add (getBattleField ().getFieldCell (pX, pY));}return true;}}3.

16. МодульBattleView. javaimport java.awt.Color;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;public class BattleView extends JFrame{private BattleModel battleModel;private BattleController battleController;private JMenuItem mntmNewGame;private JMenuItem mntmExit;private JMenuItem mntmAbout;private PlayerBattleFieldPanel playerBattleFieldPanel;private ComputerBattleFieldPanel computerBattleFieldPanel;private ScoreBattleFieldPanel scoreBattleFieldPanel;public PlayerBattleFieldPanel getPlayerBattleFieldPanel (){return playerBattleFieldPanel;}public ComputerBattleFieldPanel getComputerBattleFieldPanel (){return computerBattleFieldPanel;}public BattleView (BattleModel pBattleModel){battleModel = pBattleModel;createUI ();battleModel.regListener (playerBattleFieldPanel);battleModel.regListener (computerBattleFieldPanel);battleModel.regListener (scoreBattleFieldPanel);battleController = new BattleController (this, battleModel);connectListeners ();}public void update (){playerBattleFieldPanel.repaint ();computerBattleFieldPanel.repaint ();scoreBattleFieldPanel.repaint ();}//добавлениеслушателейформыинаправляемихнаконтроллерpublic void connectListeners (){mntmAbout.addActionListener (battleController);mntmNewGame.addActionListener (battleController);mntmExit.addActionListener (battleController);computerBattleFieldPanel.addMouseListener (new MouseAdapter (){@Overridepublic void mousePressed (MouseEvent arg0){battleController.mousePressed (arg0);}});}private void createUI () {setTitle («Морской.

Бой");setResizable (false);setBounds (200, 100, 800, 360); Dimension screenSize = Toolkit. getDefaultToolkit ().getScreenSize ();setLocation ((screenSize.width — getWidth ())/2, (screenSize.height — getHeight ())/2);setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);getContentPane ().setLayout (null);playerBattleFieldPanel = new PlayerBattleFieldPanel (battleModel.getPlayerBattleField ());playerBattleFieldPanel.setBounds (0, 25, 300, 300);computerBattleFieldPanel = new ComputerBattleFieldPanel (battleModel.getComputerBattleField ());computerBattleFieldPanel.setBounds (310, 25, 300, 300);getContentPane ().add (playerBattleFieldPanel);getContentPane ().add (computerBattleFieldPanel);scoreBattleFieldPanel = new ScoreBattleFieldPanel (battleModel);scoreBattleFieldPanel.setBounds (620, 25, 180, 300);scoreBattleFieldPanel.setBackground (new Color (225, 225, 255));getContentPane ().add (scoreBattleFieldPanel);JMenuBar menuBar = new JMenuBar ();menuBar.setBounds (0, 0, 800, 21);getContentPane ().add (menuBar);JMenu mnGame = new JMenu («Файл»);menuBar.add (mnGame);mntmNewGame = new JMenuItem («Новаяигра»);mnGame.add (mntmNewGame);mntmExit = new JMenuItem («Выход»);mnGame.add (mntmExit);JMenu mnHelp = new JMenu («Справка»);menuBar.add (mnHelp);mntmAbout = new JMenuItem («Опрограмме»);mnHelp.add (mntmAbout);}}3.

17. Модуль ComputerBattleFieldPanel. javaimport java.awt.Color;public class ComputerBattleFieldPanel extends BattleFieldPanel{public ComputerBattleFieldPanel (BattleField pBattleField){super (pBattleField);}protected Color getColorByStateElement (int pState){switch (pState){case FieldCell. FIELD_CELL_BORDER:return new Color (225, 225, 255);case FieldCell. FIELD_CELL_WATER:return new Color (225, 225, 255);case FieldCell. FIELD_CELL_WELL:return new Color (225, 225, 255);case FieldCell. FIELD_CELL_INJURED:return Color. red;case FieldCell. FIELD_CELL_KILLED:return Color. gray;case FieldCell. FIELD_CELL_MISSED:return Color. black;}return Color. blue;}}3.

18. Модуль FieldCell. javapublicclass FieldCell {publicfinalstaticintFIELD_CELL_WATER = 1;publicfinalstaticintFIELD_CELL_BORDER = 2;publicfinalstaticintFIELD_CELL_WELL = 3;publicfinalstaticintFIELD_CELL_INJURED = 4;publicfinalstaticintFIELD_CELL_KILLED = 5;publicfinalstaticintFIELD_CELL_MISSED = 6;privateint x;privateint y;privateint state;private BattleShip ship;privateboolean isMarked;public FieldCell (int pX, int pY) {x = pX;y = pY;state = FIELD_CELL_WATER;isMarked = false;}publicint getX (){return x;}publicvoid setX (int pX){x = pX;}publicint getY (){return y;}publicvoid setY (int pY){x = pY;}publicint getState (){return state;}publicvoid setState (int pState) {state = pState;}publicboolean getIsMarked (){return isMarked;}publicvoid setIsMarked (boolean pIsMarked){isMarked = pIsMarked;}public BattleShip getBattleShip () {return ship;}publicvoid setBattleShip (BattleShip pShip){ship = pShip;}publicint shot () {isMarked = true;if (state == FIELD_CELL_WELL){state = FIELD_CELL_INJURED;return getBattleShip ().shot ();}else{if ((state == FIELD_CELL_BORDER) — (state == FIELD_CELL_WATER)){setState (FIELD_CELL_MISSED);}}return BattleField. SHUT_MISSED;}}3.

19. Модуль PlayerBattleFieldPanel. javaimport java.awt.Color;public class PlayerBattleFieldPanel extends BattleFieldPanel{public PlayerBattleFieldPanel (BattleField pBattleField){super (pBattleField);}@Overrideprotected Color getColorByStateElement (int state) {switch (state) {case FieldCell. FIELD_CELL_BORDER:return new Color (215, 215, 255);case FieldCell. FIELD_CELL_WATER:return new Color (225, 225, 255);case FieldCell. FIELD_CELL_WELL:return Color. green;case FieldCell. FIELD_CELL_INJURED:return Color. red;case FieldCell. FIELD_CELL_KILLED:return Color. gray;case FieldCell. FIELD_CELL_MISSED:return Color. black;}return Color. blue;}}3.

20. Модуль ScoreBattleFieldPanel. javaimport java.awt.Color;import java.awt.Graphics;import javax.swing.JPanel;public class ScoreBattleFieldPanel extends JPanel implements BattleListener {private BattleModel battleModel;public ScoreBattleFieldPanel (BattleModel pBattleModel){battleModel = pBattleModel;}@Overrideprotected void paintComponent (Graphics pGraphics){super.paintComponent (pGraphics);int shipsCount = battleModel. getComputerBattleField ().getMaxShipsCount ();int[] m = new int[shipsCount]; for (int i = 0; i < 0; i++){m[i] = 0;}for (BattleShip battleShip: battleModel. getComputerBattleField ().getShips ())if (battleShip.getState () ≠ BattleShip. BATTLE_SHIP_KILLED)m[battleShip.getDeckCount () — 1]++;for (int i = 0; i < shipsCount; i++){for (int j = 0; j < (i+1); j++){pGraphics.setColor (Color.gray);pGraphics.fillRect (j * 10 + 8, i * 10 + 5, 8, 8);}pGraphics.setColor (Color.black);pGraphics.drawString (String.valueOf (m[i]), 78, i * 10 + 12);}int compShipsCount = battleModel. getComputerBattleField ().getAliveShipsCount ();int userShipsCount = battleModel. getPlayerBattleField ().getAliveShipsCount ();pGraphics.drawString («Кораблей игрока: «.concat (String.valueOf (userShipsCount)), 15, 100);pGraphics.drawString («Кораблей противника: «.concat (String.valueOf (compShipsCount)), 15, 120);if (userShipsCount == 0) pGraphics. drawString («ВЫ ПРОИГРАЛИ!», 20, 140);if (compShipsCount == 0) pGraphics. drawString («ВЫ ВЫИГРАЛИ!», 20, 140);}//@Overridepublic void update (){repaint ();}}Заключение.

Список литературы

1Бадд Т. Объектно-Ориентированное программирование. — СПб.: Питер, 2007.

2Иванова.

Г. С., Ничушкина.

Т.Н., Пугачев.

Е.К. Объектно-ориентированное программирование Под редакцией Г. С. Ивановой. — М.: Издательство МГТУ имени Н. Э. Баумана, 2001.

3Портянкин И. SwingЭффективные пользовательские интерфейсы. — СПб.: Питер, 2005.

4Хорстманн К., Корнелл Г. Java 2. Библиотека профессионала, том 1. Основы. 7-изд: Пер. с англ. — М.: Вильямс, 2007.

5Хорстманн К., Корнелл Г. Java 2. Библиотека профессионала, том 2. Тонкости программирования 7-изд: Пер. с англ. — М.: Вильямс, 2007.

http://docs.oracle.com/javase/7/docs/api/7www.intuit.ru8www.wikipedia.org.

Показать весь текст

Список литературы

  1. Т. Объектно-Ориентированное программирование. — СПб.: Питер, 2007.
  2. ИвановаГ.С., НичушкинаТ.Н., ПугачевЕ.К. Объектно-ориентированное программирование Под редакцией Г. С. Ивановой. — М.: Издательство МГТУ имени Н. Э. Баумана, 2001.
  3. Портянкин И. SwingЭффективные пользовательские интерфейсы. — СПб.: Питер, 2005.
  4. К., Корнелл Г. Java 2. Библиотека профессионала, том 1. Основы. 7-изд: Пер. с англ. — М.: Вильямс, 2007.
  5. К., Корнелл Г. Java 2. Библиотека профессионала, том 2. Тонкости программирования 7-изд: Пер. с англ. — М.: Вильямс, 2007.
  6. http://docs.oracle.com/javase/7/docs/api/
  7. www.intuit.ru
  8. www.wikipedia.org
Заполнить форму текущей работой
Купить готовую работу

ИЛИ