Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.72 KB | None | 0 0
  1. from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QSlider, QVBoxLayout, QComboBox, QHBoxLayout, \
  2. QWidget, QLabel, QGroupBox, QDialog, QWhatsThis
  3. import sys, os
  4. from PyQt5 import QtGui, QtCore
  5. from PyQt5.QtCore import QRect, Qt
  6.  
  7.  
  8. class Plateau(QMainWindow):
  9. def __init__(self):
  10. super().__init__()
  11.  
  12. self.start1= False
  13.  
  14. self.menu()
  15. self.haut()
  16. self.start()
  17. self.window()
  18.  
  19.  
  20. self.tour = 1
  21. self.coup_prec = None
  22. self.decalage = [0] * 4
  23. self.buttons = [[0] * 4 for i in range(4)]
  24. self.plat = [[0] * 4 for i in range(4)]
  25. self.flechesG = [0] * 4
  26. self.flechesD = [0] * 4
  27.  
  28. acfleches = [self.acflechG0, self.acflechG1, self.acflechG2, self.acflechG3, self.acflechD0, self.acflechD1,
  29. self.acflechD2, self.acflechD3]
  30. actcases = [self.actcase00, self.actcase01, self.actcase02, self.actcase03, self.actcase10, self.actcase11,
  31. self.actcase12, self.actcase13,
  32. self.actcase20, self.actcase21, self.actcase22, self.actcase23, self.actcase30, self.actcase31,
  33. self.actcase32, self.actcase33]
  34. for i in range(4):
  35. for j in range(4):
  36. self.buttons[i][j] = QPushButton("", self)
  37. self.buttons[i][j].setGeometry(QRect(285 + 60 * j, 100 + 60 * i, 60, 60))
  38. self.buttons[i][j].clicked.connect(actcases[4 * i + j])
  39. self.buttons[i][j].setIcon(QtGui.QIcon("rondbase.jpg"))
  40. self.buttons[i][j].setIconSize(QtCore.QSize(60,60))
  41. self.flechesG[i] = QPushButton("<", self)
  42. self.flechesG[i].setGeometry(QRect(10, 100 + i * 60, 25, 25))
  43. self.flechesG[i].clicked.connect(acfleches[i])
  44. self.flechesD[i] = QPushButton(">", self)
  45. self.flechesD[i].setGeometry(QRect(770, 100 + i * 60, 25, 25))
  46. self.flechesD[i].clicked.connect(acfleches[4 + i])
  47.  
  48. self.show()
  49.  
  50. def acflechG0(self):
  51. self.activation_fleche(0, -1)
  52.  
  53. def acflechG1(self):
  54. self.activation_fleche(1, -1)
  55.  
  56. def acflechG2(self):
  57. self.activation_fleche(2, -1)
  58.  
  59. def acflechG3(self):
  60. self.activation_fleche(3, -1)
  61.  
  62. def acflechD0(self):
  63. self.activation_fleche(0, 1)
  64.  
  65. def acflechD1(self):
  66. self.activation_fleche(1, 1)
  67.  
  68. def acflechD2(self):
  69. self.activation_fleche(2, 1)
  70.  
  71. def acflechD3(self):
  72. self.activation_fleche(3, 1)
  73.  
  74. def actcase00(self):
  75. self.activation_case(0, 0)
  76.  
  77. def actcase01(self):
  78. self.activation_case(0, 1)
  79.  
  80. def actcase02(self):
  81. self.activation_case(0, 2)
  82.  
  83. def actcase03(self):
  84. self.activation_case(0, 3)
  85.  
  86. def actcase10(self):
  87. self.activation_case(1, 0)
  88.  
  89. def actcase11(self):
  90. self.activation_case(1, 1)
  91.  
  92. def actcase12(self):
  93. self.activation_case(1, 2)
  94.  
  95. def actcase13(self):
  96. self.activation_case(1, 3)
  97.  
  98. def actcase20(self):
  99. self.activation_case(2, 0)
  100.  
  101. def actcase21(self):
  102. self.activation_case(2, 1)
  103.  
  104. def actcase22(self):
  105. self.activation_case(2, 2)
  106.  
  107. def actcase23(self):
  108. self.activation_case(2, 3)
  109.  
  110. def actcase30(self):
  111. self.activation_case(3, 0)
  112.  
  113. def actcase31(self):
  114. self.activation_case(3, 1)
  115.  
  116. def actcase32(self):
  117. self.activation_case(3, 2)
  118.  
  119. def actcase33(self):
  120. self.activation_case(3, 3)
  121.  
  122. def activation_fleche(self, num, direction):
  123. if self.start1:
  124. if self.coup_prec == -(num + 1) * direction:
  125. print('tu peux pas annuler le coup prec')
  126. elif abs(self.decalage[num] + direction) > 3:
  127. print('tu peux pas decaler plus que 3')
  128. else:
  129. self.decalage[num] += direction
  130. for i in range(4):
  131. self.buttons[num][i].setGeometry(QRect(285 + 60 * (i + self.decalage[num]), 100 + 60 * num, 60, 60))
  132. self.tour = self.tour % 2 + 1
  133. self.coup_prec = (num + 1) * direction
  134. else:
  135. pass
  136.  
  137. def activation_case(self, i, j):
  138. if self.start1:
  139. if self.plat[i][j] == self.tour:
  140. print('c ta case fdp')
  141. elif self.coup_prec == (i, j):
  142. print('tu peux pas annuler le coup prec')
  143. else:
  144. self.plat[i][j] = self.tour
  145. if self.tour == 1:
  146. self.buttons[i][j].setIcon(QtGui.QIcon("rond1.jpg"))
  147. self.buttons[i][j].setIconSize(QtCore.QSize(60, 60))
  148. else:
  149. self.buttons[i][j].setIcon(QtGui.QIcon("rond2.jpg"))
  150. self.buttons[i][j].setIconSize(QtCore.QSize(60, 60))
  151.  
  152. self.tour = self.tour % 2 + 1
  153. self.coup_prec = i, j
  154. else:
  155. pass
  156.  
  157. def window(self):
  158. title = "le jeu"
  159. left = 500
  160. top = 200
  161. width = 800
  162. height = 600
  163. iconName = "icon.png"
  164. self.setWindowTitle(title)
  165. self.setWindowIcon(QtGui.QIcon(iconName))
  166. self.setGeometry(left, top, width, height)
  167. self.setStyleSheet("QMainWindow {background: 'black';}")
  168.  
  169. def haut(self):
  170. button = QPushButton("Valider vitess", self)
  171. button.setGeometry(QRect(710, 48, 80, 38))
  172. mySlider = QSlider(Qt.Horizontal, self)
  173. mySlider.setGeometry(105, 60, 600, 15)
  174. mySlider.valueChanged[int].connect(self.changeValue)
  175. combo = QComboBox(self)
  176. combo.setGeometry(QRect(105, 30, 600, 22))
  177. combo.addItem("Joueur1")
  178. combo.addItem("AI")
  179. self.qlabel = QLabel(self)
  180. self.qlabel.move(50, 16)
  181. combo.activated[str].connect(self.comboChanged)
  182. combo2 = QComboBox(self)
  183. combo2.setGeometry(QRect(105, 5, 600, 22))
  184. combo2.addItem("Joueur1")
  185. combo2.addItem("AI")
  186. self.qlabel = QLabel(self)
  187. self.qlabel.move(50, 16)
  188. combo.activated[str].connect(self.comboChanged)
  189.  
  190. def menu(self):
  191. label = QLabel('Vitesse IA:', self)
  192. label.setStyleSheet("color: white;")
  193. label.move(47, 50)
  194. label = QLabel('Combattant 1:', self)
  195. label.setStyleSheet("color: white;")
  196. label.move(31, 0)
  197. label = QLabel('Combattant 2:', self)
  198. label.setStyleSheet("color: white;")
  199. label.move(31, 25)
  200.  
  201.  
  202.  
  203. def changedValue(self):
  204. size = self.slider.value()
  205. self.label.setText(str(size))
  206.  
  207. def changeValue(self, value):
  208. print(value)
  209.  
  210. def comboChanged(self):
  211. print("ui")
  212. def start(self):
  213. if self.start1:
  214. button = QPushButton("restart", self)
  215. button.setGeometry(QRect(105, 540, 600, 22))
  216. Plateau()
  217.  
  218. else:
  219. self.buttonS = QPushButton("Start", self)
  220. self.buttonS.setGeometry(QRect(105, 540, 600, 22))
  221. self.buttonS.clicked.connect(self.startconnect)
  222. '''def restart(self):
  223. buttonS = QPushButton("Restart", self)
  224. buttonS.setGeometry(QRect(105, 540, 600, 22))
  225. buttonS.clicked.connect(self.restartconnect)'''
  226.  
  227. def startconnect(self):
  228. self.start1= True
  229. print('ui')
  230. self.buttonS.setText('Restart')
  231. self.buttonS.clicked.connect(self.restartconnect)
  232.  
  233. def restartconnect(self):
  234.  
  235. python = sys.executable
  236. os.execl(python, python, *sys.argv)
  237.  
  238. restart_program()
  239.  
  240.  
  241. if __name__ == "__main__":
  242. App = QApplication(sys.argv)
  243. plateau = Plateau()
  244. sys.exit(App.exec())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement