Changeset 15 for chess


Ignore:
Timestamp:
02/03/09 15:05:02 (13 years ago)
Author:
BegemoT
Message:

something different

Location:
chess
Files:
9 edited
1 moved

Legend:

Unmodified
Added
Removed
  • chess/chess.jad

    r14 r15  
    1 MIDlet-Jar-Size: 849333 
     1MIDlet-Jar-Size: 849833 
    22MIDlet-Jar-URL: chess.jar 
    33MIDlet-Name: chess 
  • chess/src/chess/control/BaseController.java

    r14 r15  
    55import javax.microedition.lcdui.Command; 
    66import javax.microedition.lcdui.Displayable; 
     7import javax.microedition.lcdui.Alert; 
    78 
    89import chess.game.*; 
     
    1011import chess.ui.GameCanvas; 
    1112import chess.ui.IUIListener; 
     13import chess.ui.ChessMIDlet; 
    1214 
    1315 
     
    2426    public static final int WAITING_CONNECT = 3; 
    2527 
    26     protected final App app; 
    27     protected final GameCanvas ui; 
    28     protected final IGame game; 
    29     protected Player player; 
    30     protected final IRemoteNode node; 
     28    private final App app; 
     29    private final GameCanvas ui; 
     30    private final IGame game; 
     31    private final IRemoteNode node; 
     32    private Player player; 
    3133 
    3234    private final boolean master; 
    3335 
    34     protected int status; 
     36    private int status; 
    3537 
    3638    private BaseController( final App app, 
     
    5153 
    5254        ui.setUIListener( this ); 
     55        ui.setStatus( GameCanvas.WAITING_FOR_NETWORK ); 
    5356        if ( master ) { 
    5457            sendLog( game, player, node ); 
     
    6568    } 
    6669 
    67     private static void sendLog( final IGame game, 
    68                                  final Player player, 
    69                                  final IRemoteNode node ) { 
     70    private void sendLog( final IGame game, 
     71                          final Player player, 
     72                          final IRemoteNode node ) { 
    7073        //ïðè ñîåäèíåíèè â ïåðâóþ î÷åðåäü ïåðåäàåì ïàðòíåðó ñîñòîÿíèå èãðû 
    7174        final Vector log = game.getActionsLog(); 
     
    8083        if ( log.isEmpty() ) {//íà÷àëî èãðû - õîäÿò áåëûå 
    8184            if ( player.isWhite() ) { 
    82                 //todo enable ui 
     85                ui.setStatus( GameCanvas.ACTIVE ); 
    8386            } else { 
    8487                node.send( new SystemAction( SystemAction.YOUR_TURN, player.opponent() ) ); 
     
    8790            final Action lastAction = ( Action )log.elementAt( log.size() - 1 ); 
    8891            if ( lastAction.getPlayer() == player ) { 
    89                 //todo enable ui 
     92                ui.setStatus( GameCanvas.ACTIVE ); 
    9093            } else { 
    9194                node.send( new SystemAction( SystemAction.YOUR_TURN, player.opponent() ) ); 
     
    125128            } 
    126129            setStatus( WAITING_FOR_LOCAL ); 
     130        } else if ( sa.type() == SystemAction.SURRENDER ) { 
     131            final ChessMIDlet midlet = app.getMidlet(); 
     132            midlet.display.setCurrent( 
     133                    new Alert( "Opponent surrenders. You win." ), 
     134                    midlet.startForm 
     135            ); 
     136        } else if ( sa.type() == SystemAction.ASK_FOR_DRAW ) { 
     137            //todo implement 
    127138        } 
    128139    } 
  • chess/src/chess/game/BitSet64.java

    r4 r15  
    2222    public void clear( final int i ) { 
    2323        bits &= ~getMask( i ); 
    24         //todo 
    2524    } 
    2625 
  • chess/src/chess/remote/IServerListener.java

    r9 r15  
    1212         * Èíôîðìàöèÿ î çàïðîñå íà ïîäêëþ÷åíèå îò êëèåíòà. 
    1313         * <p/> 
    14          * fixme ñäåëàòü âîçìîæíîñòü ïðèíÿòü íåñêîëüêî ñîåäèíåíèé îò êëèåíòîâ? 
     14         * todo ñäåëàòü âîçìîæíîñòü ïðèíÿòü íåñêîëüêî ñîåäèíåíèé îò êëèåíòîâ? 
    1515         * 
    1616         * @return true åñëè çàïðîñ ïðèíÿò, è ïðîñëóøèâàíèå äîëæíî áûòü ïðåêðàùåíî 
  • chess/src/chess/remote/impl/Remote.java

    r14 r15  
    1010import chess.Util; 
    1111import chess.remote.*; 
     12import chess.remote.impl.debug.DebugRemote; 
    1213 
    1314 
     
    6162                                       final IClientListener l ) { 
    6263        if ( refresh ) { 
    63             //todo 
    6464            try { 
    6565                final DiscoveryAgent agent = localDevice.getDiscoveryAgent(); 
     
    9696 
    9797    public static IRemote create() throws Exception { 
    98         return new Remote(); 
     98        //return new Remote(); 
    9999//        return new DummyRemote(); 
    100 //        return new DebugRemote( 500, 500 ); 
     100        return new DebugRemote( 500, 500 ); 
    101101    } 
    102102 
  • chess/src/chess/remote/impl/debug/DebugRemote.java

    r14 r15  
    4848 
    4949            putAction( player, out, 20 * userLatency, 4, yPawnLine + dir, 4, yPawnLine + 2 * dir ); 
     50 
     51            //new GenericDatagram( 
     52            //        new SystemAction( 
     53            //                SystemAction.SURRENDER, 
     54            //                player 
     55            //        ) 
     56            //).write( out ); 
    5057        } catch ( IOException e ) { 
    5158            e.printStackTrace(); 
     
    158165                                    if ( sa.type() == SystemAction.YOUR_TURN ) { 
    159166                                        try { 
    160                                             final GenericDatagram aPacket = new GenericDatagram( ClientRemoteNode.this.is ); 
    161                                             final GenericDatagram saPacket = new GenericDatagram( ClientRemoteNode.this.is ); 
    162                                             Thread.sleep( 5 * networkLatency ); 
    163                                             TIMER.schedule( 
    164                                                     new TimerTask() { 
    165                                                         public void run() { 
    166                                                             Util.log.println( "recv: emulate" ); 
    167  
    168                                                             Util.log.println( "recv: " + aPacket.wrapped ); 
    169                                                             listener.received( aPacket.wrapped ); 
    170  
    171                                                             Util.log.println( "recv: " + saPacket.wrapped ); 
    172                                                             listener.received( saPacket.wrapped ); 
    173                                                         } 
    174                                                     }, 
    175                                                     ( ( Action )aPacket.wrapped ).duration() 
    176                                             ); 
     167                                            if ( is.available() > 0 ) { 
     168                                                final GenericDatagram aPacket = new GenericDatagram( ClientRemoteNode.this.is ); 
     169                                                final GenericDatagram saPacket = new GenericDatagram( ClientRemoteNode.this.is ); 
     170                                                Thread.sleep( 5 * networkLatency ); 
     171                                                TIMER.schedule( 
     172                                                        new TimerTask() { 
     173                                                            public void run() { 
     174                                                                Util.log.println( "recv: emulate" ); 
     175 
     176                                                                Util.log.println( "recv: " + aPacket.wrapped ); 
     177                                                                listener.received( aPacket.wrapped ); 
     178 
     179                                                                Util.log.println( "recv: " + saPacket.wrapped ); 
     180                                                                listener.received( saPacket.wrapped ); 
     181                                                            } 
     182                                                        }, 
     183                                                        ( ( Action )aPacket.wrapped ).duration() 
     184                                                ); 
     185                                            } else { 
     186                                                listener.received( new SystemAction( SystemAction.SURRENDER, player ) ); 
     187                                            } 
    177188                                        } catch ( Exception e ) { 
    178189                                            e.printStackTrace(); 
     
    268279        private void packet() { 
    269280            try { 
    270                 final GenericDatagram aPacket = new GenericDatagram( is ); 
    271                 final GenericDatagram saPacket = new GenericDatagram( is ); 
    272                 Thread.sleep( 5 * networkLatency ); 
    273                 TIMER.schedule( 
    274                         new TimerTask() { 
    275                             public void run() { 
    276                                 Util.log.println( name + ":recv emulation..." ); 
    277  
    278                                 Util.log.println( name + ":recv " + aPacket.wrapped ); 
    279                                 listener.received( aPacket.wrapped ); 
    280  
    281                                 Util.log.println( name + ":recv " + saPacket.wrapped ); 
    282                                 listener.received( saPacket.wrapped ); 
    283                             } 
    284                         }, 
    285                         ( ( Action )aPacket.wrapped ).duration() 
    286                 ); 
     281                if ( is.available() > 0 ) { 
     282                    final GenericDatagram aPacket = new GenericDatagram( is ); 
     283                    final GenericDatagram saPacket = new GenericDatagram( is ); 
     284                    Thread.sleep( 5 * networkLatency ); 
     285                    TIMER.schedule( 
     286                            new TimerTask() { 
     287                                public void run() { 
     288                                    Util.log.println( name + ":recv emulation..." ); 
     289 
     290                                    Util.log.println( name + ":recv " + aPacket.wrapped ); 
     291                                    listener.received( aPacket.wrapped ); 
     292 
     293                                    Util.log.println( name + ":recv " + saPacket.wrapped ); 
     294                                    listener.received( saPacket.wrapped ); 
     295                                } 
     296                            }, 
     297                            ( ( Action )aPacket.wrapped ).duration() 
     298                    ); 
     299                } else { 
     300                    listener.received( new SystemAction( SystemAction.SURRENDER, player ) ); 
     301                } 
    287302            } catch ( Exception e ) { 
    288303                e.printStackTrace(); 
  • chess/src/chess/ui/ChessMIDlet.java

    r14 r15  
    11package chess.ui; 
    22 
    3 import java.io.IOException; 
    43import javax.microedition.lcdui.*; 
    54import javax.microedition.midlet.MIDlet; 
     
    4039    public final Display display; 
    4140 
    42     private final Screen startForm = new StartMenuScreen2( this ); 
     41    public final Screen startForm = new StartMenuScreen( this ); 
    4342    private final Screen choosePlayerForm = new ChoosePlayerForm( this ); 
    4443    private final GameCanvas gameCanvas = new GameCanvas( this ); 
  • chess/src/chess/ui/GameCanvas.java

    r14 r15  
    318318    protected void keyPressed( final int keyCode ) { 
    319319        super.keyPressed( keyCode ); 
    320         if ( listener != null ) { 
     320        if ( listener != null && isActive() ) { 
    321321            listener.keyPressed( keyCode ); 
    322322        } 
     
    329329        } else if ( command == midlet.closeCommand ) { 
    330330            midlet.showStartScreen(); 
    331         } else if ( listener != null ) { 
     331        } else if ( listener != null && isActive() ) { 
    332332            listener.commandAction( command, displayable ); 
    333333        } 
     
    340340    } 
    341341 
    342     public void setStatus( final int status ) { 
     342    public synchronized void setStatus( final int status ) { 
    343343        this.status = status; 
    344         //todo move it to ChessMIDlet? 
    345         if ( status != ACTIVE ) { 
    346             if ( midlet.display.getCurrent() != waitScreen ) { 
    347                 midlet.display.setCurrent( waitScreen ); 
    348             } 
    349             switch ( status ) { 
    350                 case WAITING_FOR_NETWORK: 
    351                     waitScreen.setText( MSG.getMessage( "wait.for-network" ) ); 
    352                 case WAITING_FOR_OPPONENT: 
    353                     waitScreen.setText( MSG.getMessage( "wait.for-opponent" ) ); 
    354             } 
    355         } else { 
    356             midlet.display.setCurrent( this ); 
    357         } 
    358     } 
    359  
    360     public int getStatus() { 
     344        switch ( status ) { 
     345            case ACTIVE: 
     346                midlet.display.setCurrent( this ); 
     347                break; 
     348            case WAITING_FOR_NETWORK: 
     349                if ( midlet.display.getCurrent() != waitScreen ) { 
     350                    midlet.display.setCurrent( waitScreen ); 
     351                } 
     352                waitScreen.setText( MSG.getMessage( "wait.for-network" ) ); 
     353                break; 
     354            case WAITING_FOR_OPPONENT: 
     355                if ( midlet.display.getCurrent() != waitScreen ) { 
     356                    midlet.display.setCurrent( waitScreen ); 
     357                } 
     358                waitScreen.setText( MSG.getMessage( "wait.for-opponent" ) ); 
     359                break; 
     360            case DISCONNECTED: 
     361                //todo implement 
     362        } 
     363    } 
     364 
     365    public synchronized int getStatus() { 
    361366        return status; 
     367    } 
     368 
     369    public boolean isActive() { 
     370        return getStatus() == ACTIVE; 
    362371    } 
    363372 
  • chess/src/chess/ui/JoinGameScreen.java

    r14 r15  
    109109            } 
    110110        } else if ( command == midlet.refreshCommand ) { 
    111             //todo wait screen 
    112111            refresh( true ); 
    113112        } 
  • chess/src/chess/ui/StartMenuScreen.java

    r14 r15  
    1111 * Time: 15:20:49<br/> 
    1212 */ 
    13 public class StartMenuScreen2 extends Form implements /*CommandListener, */ItemCommandListener { 
     13public class StartMenuScreen extends Form implements /*CommandListener, */ItemCommandListener { 
    1414    private final ChessMIDlet midlet; 
    1515 
     
    3535    ); 
    3636 
    37     public StartMenuScreen2( final ChessMIDlet midlet ) { 
     37    public StartMenuScreen( final ChessMIDlet midlet ) { 
    3838        super( MSG.getMessage( "start-menu.title" ) ); 
    3939        this.midlet = midlet; 
Note: See TracChangeset for help on using the changeset viewer.