Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QSlider, QVBoxLayout, QComboBox, QHBoxLayout, \
- QWidget, QLabel, QGroupBox, QDialog, QWhatsThis
- import sys, os
- from PyQt5 import QtGui, QtCore
- from PyQt5.QtCore import QRect, Qt
- class Plateau(QMainWindow):
- def __init__(self):
- super().__init__()
- self.start1= False
- self.menu()
- self.haut()
- self.start()
- self.window()
- self.tour = 1
- self.coup_prec = None
- self.decalage = [0] * 4
- self.buttons = [[0] * 4 for i in range(4)]
- self.plat = [[0] * 4 for i in range(4)]
- self.flechesG = [0] * 4
- self.flechesD = [0] * 4
- acfleches = [self.acflechG0, self.acflechG1, self.acflechG2, self.acflechG3, self.acflechD0, self.acflechD1,
- self.acflechD2, self.acflechD3]
- actcases = [self.actcase00, self.actcase01, self.actcase02, self.actcase03, self.actcase10, self.actcase11,
- self.actcase12, self.actcase13,
- self.actcase20, self.actcase21, self.actcase22, self.actcase23, self.actcase30, self.actcase31,
- self.actcase32, self.actcase33]
- for i in range(4):
- for j in range(4):
- self.buttons[i][j] = QPushButton("", self)
- self.buttons[i][j].setGeometry(QRect(285 + 60 * j, 100 + 60 * i, 60, 60))
- self.buttons[i][j].clicked.connect(actcases[4 * i + j])
- self.buttons[i][j].setIcon(QtGui.QIcon("rondbase.jpg"))
- self.buttons[i][j].setIconSize(QtCore.QSize(60,60))
- self.flechesG[i] = QPushButton("<", self)
- self.flechesG[i].setGeometry(QRect(10, 100 + i * 60, 25, 25))
- self.flechesG[i].clicked.connect(acfleches[i])
- self.flechesD[i] = QPushButton(">", self)
- self.flechesD[i].setGeometry(QRect(770, 100 + i * 60, 25, 25))
- self.flechesD[i].clicked.connect(acfleches[4 + i])
- self.show()
- def acflechG0(self):
- self.activation_fleche(0, -1)
- def acflechG1(self):
- self.activation_fleche(1, -1)
- def acflechG2(self):
- self.activation_fleche(2, -1)
- def acflechG3(self):
- self.activation_fleche(3, -1)
- def acflechD0(self):
- self.activation_fleche(0, 1)
- def acflechD1(self):
- self.activation_fleche(1, 1)
- def acflechD2(self):
- self.activation_fleche(2, 1)
- def acflechD3(self):
- self.activation_fleche(3, 1)
- def actcase00(self):
- self.activation_case(0, 0)
- def actcase01(self):
- self.activation_case(0, 1)
- def actcase02(self):
- self.activation_case(0, 2)
- def actcase03(self):
- self.activation_case(0, 3)
- def actcase10(self):
- self.activation_case(1, 0)
- def actcase11(self):
- self.activation_case(1, 1)
- def actcase12(self):
- self.activation_case(1, 2)
- def actcase13(self):
- self.activation_case(1, 3)
- def actcase20(self):
- self.activation_case(2, 0)
- def actcase21(self):
- self.activation_case(2, 1)
- def actcase22(self):
- self.activation_case(2, 2)
- def actcase23(self):
- self.activation_case(2, 3)
- def actcase30(self):
- self.activation_case(3, 0)
- def actcase31(self):
- self.activation_case(3, 1)
- def actcase32(self):
- self.activation_case(3, 2)
- def actcase33(self):
- self.activation_case(3, 3)
- def activation_fleche(self, num, direction):
- if self.start1:
- if self.coup_prec == -(num + 1) * direction:
- print('tu peux pas annuler le coup prec')
- elif abs(self.decalage[num] + direction) > 3:
- print('tu peux pas decaler plus que 3')
- else:
- self.decalage[num] += direction
- for i in range(4):
- self.buttons[num][i].setGeometry(QRect(285 + 60 * (i + self.decalage[num]), 100 + 60 * num, 60, 60))
- self.tour = self.tour % 2 + 1
- self.coup_prec = (num + 1) * direction
- else:
- pass
- def activation_case(self, i, j):
- if self.start1:
- if self.plat[i][j] == self.tour:
- print('c ta case fdp')
- elif self.coup_prec == (i, j):
- print('tu peux pas annuler le coup prec')
- else:
- self.plat[i][j] = self.tour
- if self.tour == 1:
- self.buttons[i][j].setIcon(QtGui.QIcon("rond1.jpg"))
- self.buttons[i][j].setIconSize(QtCore.QSize(60, 60))
- else:
- self.buttons[i][j].setIcon(QtGui.QIcon("rond2.jpg"))
- self.buttons[i][j].setIconSize(QtCore.QSize(60, 60))
- self.tour = self.tour % 2 + 1
- self.coup_prec = i, j
- else:
- pass
- def window(self):
- title = "le jeu"
- left = 500
- top = 200
- width = 800
- height = 600
- iconName = "icon.png"
- self.setWindowTitle(title)
- self.setWindowIcon(QtGui.QIcon(iconName))
- self.setGeometry(left, top, width, height)
- self.setStyleSheet("QMainWindow {background: 'black';}")
- def haut(self):
- button = QPushButton("Valider vitess", self)
- button.setGeometry(QRect(710, 48, 80, 38))
- mySlider = QSlider(Qt.Horizontal, self)
- mySlider.setGeometry(105, 60, 600, 15)
- mySlider.valueChanged[int].connect(self.changeValue)
- combo = QComboBox(self)
- combo.setGeometry(QRect(105, 30, 600, 22))
- combo.addItem("Joueur1")
- combo.addItem("AI")
- self.qlabel = QLabel(self)
- self.qlabel.move(50, 16)
- combo.activated[str].connect(self.comboChanged)
- combo2 = QComboBox(self)
- combo2.setGeometry(QRect(105, 5, 600, 22))
- combo2.addItem("Joueur1")
- combo2.addItem("AI")
- self.qlabel = QLabel(self)
- self.qlabel.move(50, 16)
- combo.activated[str].connect(self.comboChanged)
- def menu(self):
- label = QLabel('Vitesse IA:', self)
- label.setStyleSheet("color: white;")
- label.move(47, 50)
- label = QLabel('Combattant 1:', self)
- label.setStyleSheet("color: white;")
- label.move(31, 0)
- label = QLabel('Combattant 2:', self)
- label.setStyleSheet("color: white;")
- label.move(31, 25)
- def changedValue(self):
- size = self.slider.value()
- self.label.setText(str(size))
- def changeValue(self, value):
- print(value)
- def comboChanged(self):
- print("ui")
- def start(self):
- if self.start1:
- button = QPushButton("restart", self)
- button.setGeometry(QRect(105, 540, 600, 22))
- Plateau()
- else:
- self.buttonS = QPushButton("Start", self)
- self.buttonS.setGeometry(QRect(105, 540, 600, 22))
- self.buttonS.clicked.connect(self.startconnect)
- '''def restart(self):
- buttonS = QPushButton("Restart", self)
- buttonS.setGeometry(QRect(105, 540, 600, 22))
- buttonS.clicked.connect(self.restartconnect)'''
- def startconnect(self):
- self.start1= True
- print('ui')
- self.buttonS.setText('Restart')
- self.buttonS.clicked.connect(self.restartconnect)
- def restartconnect(self):
- python = sys.executable
- os.execl(python, python, *sys.argv)
- restart_program()
- if __name__ == "__main__":
- App = QApplication(sys.argv)
- plateau = Plateau()
- sys.exit(App.exec())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement