Пример #1
0
    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()
Пример #2
0
    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.')