Kontakt

Fakturační údaje

IČ: 87189224, BÚ: 1958653063/0800

Contact info in QR code

Siege (Obkličovačka)

Informace

Stáhni a hraj!

  • Spustitelný soubor hry si stáhnou oba hráči
  • Zakladatel hry
    • V nabídce "Game > Create" vytvoří novou hru
    • Pošle protihráči svou IP adresu (zjistí ji v levém dolním rohu okna)
  • Protihráč
    • Jakmile obdrží IP adresu zakladatele hry, v nabídce "Game > Join" se připojí ke hře
  • Cílem je zabrat co nejvíce soupeřových polí.
  • Pozn.: Síťové spojení funguje na LAN (lokální) síťi a na počítačích s veřejnou IP adresou.

Zdrojové kódy (zip)

Zdrojové kódy (prohlížení)

  1: package siege.gui.views;
  2: 
  3: import siege.gui.dialogs.DialogJoinGame;
  4: import siege.gui.dialogs.DialogCreateGame;
  5: import java.awt.event.ActionEvent;
  6: import java.awt.event.ActionListener;
  7: import java.util.Observable;
  8: import java.util.Observer;
  9: import javax.swing.JMenu;
 10: import javax.swing.JMenuBar;
 11: import javax.swing.JMenuItem;
 12: import siege.FrontController;
 13: import siege.core.Game;
 14: 
 15: /**
 16:  * Main menu view
 17:  *
 18:  * @author Ondrej Macoszek, ondra@macoszek.cz
 19:  */
 20: public class MainMenuView extends JMenuBar implements Observer
 21: {
 22:     /**
 23:      * Menu items
 24:      */
 25:     public JMenuItem itemGameCreate;
 26:     public JMenuItem itemGameJoin;
 27:     public JMenuItem itemGameQuit;
 28:     public JMenuItem itemGameExitProgram;
 29: 
 30:     /**
 31:      * Constructor
 32:      */
 33:     public MainMenuView ()
 34:     {
 35:         // create items
 36:         itemGameCreate = new JMenuItem("Create");
 37:         itemGameJoin = new JMenuItem("Join");
 38:         itemGameQuit = new JMenuItem("Quit");
 39:         itemGameExitProgram = new JMenuItem("Exit Program");
 40: 
 41:         // create menu
 42:         JMenu menuGame = new JMenu("Game");
 43:         menuGame.add(itemGameCreate);
 44:         menuGame.add(itemGameJoin);
 45:         menuGame.addSeparator();
 46:         menuGame.add(itemGameQuit);
 47:         menuGame.addSeparator();
 48:         menuGame.addSeparator();
 49:         menuGame.add(itemGameExitProgram);
 50:         add(menuGame);
 51: 
 52:         // attach listeners
 53: 
 54:         itemGameCreate.addActionListener(new ActionListener() {
 55:             public void actionPerformed(ActionEvent e) {
 56:                 FrontController.getInstance().initialize();
 57:                 new DialogCreateGame();
 58:             }
 59:         });
 60: 
 61:         itemGameJoin.addActionListener(new ActionListener() {
 62:             public void actionPerformed(ActionEvent e) {
 63:                 FrontController.getInstance().initialize();
 64:                 new DialogJoinGame();
 65:             }
 66:         });
 67: 
 68:         itemGameQuit.addActionListener(new ActionListener() {
 69:             public void actionPerformed(ActionEvent e) {
 70:                 Game game = Game.getInstance();
 71:                 game.retreat(game.getLocalPlayer());
 72:             }
 73:         });
 74: 
 75:         itemGameExitProgram.addActionListener(new ActionListener() {
 76:             public void actionPerformed(ActionEvent e) {
 77:                 Game game = Game.getInstance();
 78:                 game.retreat(game.getLocalPlayer());
 79:                 System.exit(0);
 80:             }
 81:         });
 82: 
 83:     }
 84: 
 85:     /**
 86:      * Operations depending on Game object
 87:      */
 88:     public void initialize()
 89:     {
 90:         // set default item status
 91:         itemGameCreate.setEnabled(true);
 92:         itemGameJoin.setEnabled(true);
 93:         itemGameQuit.setEnabled(false);
 94:         itemGameExitProgram.setEnabled(true);
 95: 
 96:         // add observer to game object
 97:         Game.getInstance().addObserver(this);
 98:     }
 99: 
100:     /**
101:      * Update on change of game status
102:      */
103:     public void update(Observable o, Object arg) {
104:         if(o instanceof Game) {
105:             Game game = (Game)o;
106:             switch(game.getStatus()) {
107:                 case CONNECTING:
108:                     itemGameQuit.setEnabled(true);
109:                     itemGameJoin.setEnabled(false);
110:                     itemGameCreate.setEnabled(false);
111:                     break;
112:                 case END:
113:                     itemGameQuit.setEnabled(false);
114:                     break;
115:             }
116:         }
117:     }
118: }
119: