示例#1
0
 def __init__(self, client, statusbar):
     super().__init__()
     self.signals = WorkerSignals()
     self.client = client
     self.statusbar = statusbar
     self.setBackground()
     label = QLabel('Current User: '******'background-color:white')
     self.userName = QLabel()
     self.userName.setStyleSheet('background-color:white')
     name = self.client.getUserName()
     if name:
         self.userName.setText(name[:-1])
     else:
         self.statusbar.showMessage('Set User in the Options')
     userBox = QWidget()
     layout = QHBoxLayout(userBox)
     layout.addWidget(label)
     layout.addWidget(self.userName)
     startNewBut = QPushButton('Start New Game')
     startNewBut.clicked.connect(self.startNewGame)
     resumeBut = QPushButton('Resume Game')
     resumeBut.clicked.connect(self.resumeGame)
     loadGameBut = QPushButton('Load Game')
     loadGameBut.clicked.connect(self.loadGame)
     invites = self.client.getInvites()
     self.inviteBut = QPushButton('No invites :(')
     self.inviteBut.clicked.connect(self.viewInvites)
     self.playerList = QListWidget()
     layout = QGridLayout(self)
     layout.setRowStretch(0, 2)
     layout.setRowStretch(8, 2)
     layout.setColumnStretch(0, 2)
     layout.setColumnStretch(2, 2)
     layout.addWidget(QLabel('\t'), 0, 0, 1, 2)
     layout.addWidget(userBox, 1, 1)
     layout.addWidget(startNewBut, 2, 1)
     layout.addWidget(resumeBut, 3, 1)
     layout.addWidget(loadGameBut, 4, 1)
     layout.addWidget(self.inviteBut, 5, 1)
     label = QLabel('Online Players')
     label.setStyleSheet('background-color:white')
     layout.addWidget(label, 6, 1)
     layout.addWidget(self.playerList, 7, 1)
     layout.addWidget(QLabel('\t'), 8, 0, 1, 3)
示例#2
0
 def __init__(self, client, gamemodel, statusbar):
     super().__init__()
     self.threadpool = QThreadPool()
     self.client = client
     self.gamemodel = gamemodel
     self.statusbar = statusbar
     print(self.gamemodel.getCurrentPlayer())
     self.gameMonitor = GameMonitor(
         self.client,
         self.gamemodel.getCurrentPlayer() != self.client.getUserName())
     self.gameMonitor.signals.notify.connect(self.reloadGame)
     self.gameMonitor.signals.getchat.connect(self.updateChat)
     self.threadpool.start(self.gameMonitor)
     player1 = QLabel(self.gamemodel.getPlayerOne()[:-1])
     player1.setAlignment(Qt.AlignCenter)
     vslabel = QLabel('vs')
     vslabel.setAlignment(Qt.AlignCenter)
     player2 = QLabel(self.gamemodel.getPlayerTwo()[:-1])
     player2.setAlignment(Qt.AlignCenter)
     vsbox = QWidget()
     layout = QHBoxLayout(vsbox)
     layout.addWidget(player1)
     layout.addWidget(vslabel)
     layout.addWidget(player2)
     self.signals = WorkerSignals()
     self.passTurnBut = QPushButton('Accept and Pass Turn')
     self.passTurnBut.setEnabled(False)
     self.passTurnBut.clicked.connect(self.passTurn)
     self.returnToMainBut = QPushButton('Return To Main')
     self.returnToMainBut.clicked.connect(self.returnToMain)
     #Chat and button window
     self.chatWindow = QTextEdit()
     self.chatWindow.setReadOnly(True)
     self.sendWindow = QLineEdit()
     self.sendWindow.returnPressed.connect(self.sendMessage)
     msgArea = QWidget()
     layout = QVBoxLayout(msgArea)
     layout.addWidget(QLabel('Chat'))
     layout.addWidget(self.chatWindow)
     layout.addWidget(self.sendWindow)
     #Development
     gameArea = QWidget()
     layout = QGridLayout(gameArea)
     #Make the outer layer of Squares
     self.squares = []
     self.cubes = np.ndarray(shape=(8, 8), dtype=object)
     maxrows = self.gamemodel.maxwidth
     maxcols = self.gamemodel.maxwidth
     for idx, row in enumerate(self.gamemodel.getCubes()):
         for idy, gamecube in enumerate(row):
             if gamecube is not None:
                 newCube = CubeWidget(self.client, self.gamemodel, gamecube)
                 newCube.signals.pickedUp.connect(self.pickedUp)
                 newCube.signals.cancelSelection.connect(self.cancelMove)
                 self.cubes[idx][idy] = newCube
                 layout.addWidget(newCube, gamecube.x, gamecube.y)
             else:
                 if idx == 0 and idy == 0:
                     continue
                 elif idx == maxrows + 1 and idy == 0:
                     continue
                 elif idx == 0 and idy == maxcols + 1:
                     continue
                 elif idx == maxrows + 1 and idy == maxcols + 1:
                     continue
                 else:
                     newSquare = SquareWidget(self.client, self.gamemodel,
                                              idx, idy, maxrows + 1,
                                              maxcols + 1)
                     newSquare.signals.receievedCube.connect(self.queueDrop)
                     newSquare.signals.pickedUp.connect(self.pickedUp)
                     self.squares.append(newSquare)
                     layout.addWidget(newSquare, idx, idy)
     layout = QGridLayout(self)
     layout.setRowStretch(1, 2)
     layout.addWidget(vsbox, 0, 0)
     layout.addWidget(gameArea, 1, 0)
     layout.addWidget(msgArea, 0, 1, 2, 1)
     layout.addWidget(self.passTurnBut, 2, 0)
     layout.addWidget(self.returnToMainBut, 2, 1)
     self.setAcceptDrops(True)
     self.refresh()