def __init__(self, parent, app): super(GameField, self).__init__(parent) self.parent = parent self.app = app self.moves = 0 self.messy = False self.width = 30 self.height = 20 self.mines = 70 self.remainingMines = 0 self.movesHistory = [] # Time counters # self.s = 0 self.m = 0 self.h = 0 self.timeSpeed = 1 gameStructure = DataStructures.GameStructures(self.width, self.height, self.mines) self.gameStructure = gameStructure self.dataList = gameStructure.matrix self.visibleList = gameStructure.visibleMatrix self.VP = gameStructure.virtualPlayer self.setWindowTitle("Fair minesweeper") sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) self.setSizePolicy(sizePolicy) self.initiateWidgets() self.loadTopResults()
def start(self, load=False): try: self.width, self.height = int(self.columnsWidget.text()), int( self.rowsWidget.text()) self.mines = int(self.minesWidget.text()) if self.width > 50 or self.height > 30: QtWidgets.QMessageBox.warning( self, "Too big field", "Cannot set width > 50 or height > 30.", QtWidgets.QMessageBox.Ok, QtWidgets.QMessageBox.NoButton) return if self.mines >= self.width * self.height: QtWidgets.QMessageBox.warning( self, "Too many mines", "Cannot set mines >= width*height.", QtWidgets.QMessageBox.Ok, QtWidgets.QMessageBox.NoButton) return else: self.moves = 0 if not load: gameStructure = DataStructures.GameStructures( self.width, self.height, self.mines) self.gameStructure = gameStructure self.remaining.setText(str(self.mines)) self.resetTiming() else: self.remaining.setText(self.remainingMines) self.dataList = self.gameStructure.matrix self.visibleList = self.gameStructure.visibleMatrix self.VP = self.gameStructure.virtualPlayer self.initiateGameField() except Exception as e: print(e) print('Cannot set given field dimension.')