Example #1
0
 def update(self, ctx):
   x = ctx.getServerMsg().getX()
   y = ctx.getServerMsg().getY()
   ws = ctx.getServerMsg().getWhiteScore()
   bs = ctx.getServerMsg().getBlackScore()
   sendersays = ctx.getServerMsg().getSendersays()
   
   if x == -1 and y == -1: # First move of this client or illegal move of this client
     if ctx.getBoard().getOldSquare() == None: # First move
       ctx.getBoard().getPlayer().setPieceColor("* { background-color: rgb(255,255,255) }") # white
       ctx.getBoard().getOpponent().setPieceColor("* { background-color: rgb(0,0,0) }") # black
       ctx.setState(WF_USER())
       ctx.getSignalEmitter().emitStatusBarText(sendersays)
     else: # Illegal move
       ctx.setState(WF_USER())
       if ctx.getBoard().getOldSquare().getPiece() != None: # If there was a piece on the square
         ctx.getBoard().getSquare(ctx.getBoard().getOldSquare().getX(), ctx.getBoard().getOldSquare().getY()).setPiece(ctx.getBoard().getOldSquare().getPiece())
         ctx.getSignalEmitter().emitMove(ctx.getBoard().getOldSquare().getX(), ctx.getBoard().getOldSquare().getY(), ctx.getBoard().getOldSquare().getPiece().getColor())
       else:
         ctx.getBoard().getSquare(ctx.getBoard().getOldSquare().getX(), ctx.getBoard().getOldSquare().getY()).setPiece(ctx.getBoard().getOldSquare().getPiece())
         ctx.getSignalEmitter().emitMove(ctx.getBoard().getOldSquare().getX(), ctx.getBoard().getOldSquare().getY(), "* { background-color: rgb(232,192,134) }")
       ctx.getSignalEmitter().emitStatusBarText(sendersays)
   else: # Legal move of opponent
     if ctx.getBoard().getOldSquare() == None: # The client sets the colors of players' pieces
       ctx.getBoard().getPlayer().setPieceColor("* { background-color: rgb(0,0,0) }") # black
       ctx.getBoard().getOpponent().setPieceColor("* { background-color: rgb(255,255,255) }") # white
     piece = Piece(ctx.getBoard().getOpponent().getPieceColor())
     ctx.getBoard().addPiece(piece, x, y)
     ctx.setState(WF_USER())
     ctx.getSignalEmitter().emitMove(x, y, piece.getColor())
     ctx.getSignalEmitter().emitStatusBarText(sendersays)
     ctx.getSignalEmitter().emitWhiteScore(ws)
     ctx.getSignalEmitter().emitBlackScore(bs)
     ctx.getSignalEmitter().emitLastMove("(" + str(x) + ", " + str(y) + ")")
Example #2
0
 def move(self, ctx, x, y):
   piece = Piece(ctx.getBoard().getPlayer().getPieceColor())
   ctx.getBoard().addPiece(piece, x, y)
   movepdu = MovePDU()
   movepdu.setX(x)
   movepdu.setY(y)
   ctx.fgpclient.send(movepdu)
   ctx.getSignalEmitter().emitMove(x, y, piece.getColor())
   ctx.getSignalEmitter().emitStatusBarText("Waiting for move confirmation.")
   ctx.setState(WF_MOVE_CONFIRM())
   ctx.fgpclient.listen()
Example #3
0
 def gameover(self, ctx):
   x = ctx.getServerMsg().getX()
   y = ctx.getServerMsg().getY()
   ws = ctx.getServerMsg().getWhiteScore()
   bs = ctx.getServerMsg().getBlackScore()
   sendersays = ctx.getServerMsg().getSendersays()
   if ctx.getBoard().isBoardFull() == False:
     piece = Piece(ctx.getBoard().getOpponent().getPieceColor())
     ctx.getBoard().addPiece(piece, x, y)
     ctx.getSignalEmitter().emitMove(x, y, piece.getColor())
   ctx.setState(IDLE())
   ctx.getSignalEmitter().emitStatusBarText(sendersays)
   ctx.getSignalEmitter().emitWhiteScore(ws)
   ctx.getSignalEmitter().emitBlackScore(bs)
   ctx.getSignalEmitter().emitLastMove("(" + str(x) + ", " + str(y) + ")")