index — aboutMe @ e9f35797d1da4f41a91293d3f0b16e397311b128

Little GUI that generates small minesweeper fields, ready to be copied in a Discord-syntax

visualize.py (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QTextBrowser, QVBoxLayout
import sys
from PyQt6.QtGui import QIcon
from pyperclip import copy
from num2words import num2words

import generate

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Minesweeper About Me")
        self.setWindowIcon(QIcon("banan.jpg"))
        self.setGeometry(500,300,400,300)

        stylesheet = (
            'background-color:rgb(29, 29, 38); color:rgb(179, 179, 212)'
        )
        self.setStyleSheet(stylesheet)
        
        self.create()

    def create(self):
        self.tb = QTextBrowser(self)
        self.btn = QPushButton('generate new field', self)
        self.btn.clicked.connect(self.visualize)
        vbox = QVBoxLayout(self)
        vbox.addWidget(self.tb)
        vbox.addWidget(self.btn)
        
        self.setLayout(vbox)
        
        self.show()
        
        self.visualize()
        
    def visualize(self):
        generatedField = generate.generate(4)

        self.tb.clear()
        field = ''
        for i in range(0, len(generatedField)):
            for j in generatedField[i]:
                if j == -1:
                    field = field + '💣'
                if -1 < j < 9:
                    field = field + str(j) + ' '
            field = field + '\n'
        text = ''
        for i in range(0, len(generatedField)):
            for j in generatedField[i]:
                if j == -1:
                    text = f'{text}||:bomb:||'
                if -1 < j < 9:
                    text = f'{text}||:{num2words(j)}:||'
            text = text + '\n'
        copy(text)
        self.tb.append(field)

if __name__ == "__main__":
    app = QApplication([])
    window = Window()
    window.show()
    sys.exit(app.exec())