Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.09 KB | None | 0 0
  1. from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton,QSlider, QVBoxLayout,QComboBox,QHBoxLayout,QWidget, QLabel, QGroupBox, QDialog, QWhatsThis
  2. import sys
  3. from PyQt5 import QtGui, QtCore
  4. from PyQt5.QtCore import QRect, Qt
  5.  
  6.  
  7. class Plateau(QMainWindow):
  8. def __init__(self):
  9. super().__init__()
  10. self.menu()
  11. self.haut()
  12. self.window()
  13. self.tour = 1
  14. self.coup_prec = None
  15. self.decalage=[0]*4
  16. self.buttons=[[0]*4 for i in range(4)]
  17. self.plat = [[0]*4 for i in range(4)]
  18. self.flechesG=[0]*4
  19. self.flechesD=[0]*4
  20.  
  21. acfleches = [self.acflechG0, self.acflechG1, self.acflechG2, self.acflechG3, self.acflechD0, self.acflechD1, self.acflechD2, self.acflechD3]
  22. actcases = [self.actcase00, self.actcase01, self.actcase02, self.actcase03, self.actcase10, self.actcase11, self.actcase12, self.actcase13,
  23. self.actcase20, self.actcase21, self.actcase22, self.actcase23, self.actcase30, self.actcase31, self.actcase32, self.actcase33]
  24. for i in range(4):
  25. for j in range(4):
  26. self.buttons[i][j]=QPushButton("_", self)
  27. self.buttons[i][j].setGeometry(QRect(285 + 60*j, 100+60*i , 60, 60))
  28. self.buttons[i][j].clicked.connect(actcases[4*i+j])
  29. self.flechesG[i]=QPushButton("<", self)
  30. self.flechesG[i].setGeometry(QRect(10, 100 + i*60, 25, 25))
  31. self.flechesG[i].clicked.connect(acfleches[i])
  32. self.flechesD[i]=QPushButton(">", self)
  33. self.flechesD[i].setGeometry(QRect(770, 100 + i*60, 25, 25))
  34. self.flechesD[i].clicked.connect(acfleches[4+i])
  35.  
  36. self.show()
  37.  
  38. def acflechG0(self):
  39. self.activation_fleche(0, -1)
  40. def acflechG1(self):
  41. self.activation_fleche(1, -1)
  42. def acflechG2(self):
  43. self.activation_fleche(2, -1)
  44. def acflechG3(self):
  45. self.activation_fleche(3, -1)
  46.  
  47. def acflechD0(self):
  48. self.activation_fleche(0, 1)
  49. def acflechD1(self):
  50. self.activation_fleche(1, 1)
  51. def acflechD2(self):
  52. self.activation_fleche(2, 1)
  53. def acflechD3(self):
  54. self.activation_fleche(3, 1)
  55.  
  56. def actcase00(self):
  57. self.activation_case(0, 0)
  58. def actcase01(self):
  59. self.activation_case(0, 1)
  60. def actcase02(self):
  61. self.activation_case(0, 2)
  62. def actcase03(self):
  63. self.activation_case(0, 3)
  64. def actcase10(self):
  65. self.activation_case(1, 0)
  66. def actcase11(self):
  67. self.activation_case(1, 1)
  68. def actcase12(self):
  69. self.activation_case(1, 2)
  70. def actcase13(self):
  71. self.activation_case(1, 3)
  72. def actcase20(self):
  73. self.activation_case(2, 0)
  74. def actcase21(self):
  75. self.activation_case(2, 1)
  76. def actcase22(self):
  77. self.activation_case(2, 2)
  78. def actcase23(self):
  79. self.activation_case(2, 3)
  80. def actcase30(self):
  81. self.activation_case(3, 0)
  82. def actcase31(self):
  83. self.activation_case(3, 1)
  84. def actcase32(self):
  85. self.activation_case(3, 2)
  86. def actcase33(self):
  87. self.activation_case(3, 3)
  88.  
  89. def activation_fleche(self, num, direction):
  90. if self.coup_prec==-(num+1)*direction:
  91. print('tu peux pas annuler le coup prec')
  92. elif abs(self.decalage[num]+direction)>3:
  93. print('tu peux pas decaler plus que 3')
  94. else:
  95. self.decalage[num]+=direction
  96. for i in range(4):
  97. self.buttons[num][i].setGeometry(QRect(285 + 60*(i+self.decalage[num]), 100+60*num , 60, 60))
  98. self.tour = self.tour%2+1
  99.  
  100. def activation_case(self, i, j):
  101. if self.plat[i][j]==self.tour:
  102. print('c ta case fdp')
  103. elif self.coup_prec==(i, j):
  104. print('tu peux pas annuler le coup prec')
  105. else:
  106. self.plat[i][j]=self.tour
  107. self.buttons[i][j].setText("X" if self.tour==1 else "O")
  108. self.tour = self.tour%2+1
  109. self.coup_prec=i,j
  110.  
  111. def window(self):
  112. title = "le jeu"
  113. left = 500
  114. top = 200
  115. width = 800
  116. height = 600
  117. iconName = "icon.png"
  118. self.setWindowTitle(title)
  119. self.setWindowIcon(QtGui.QIcon(iconName))
  120. self.setGeometry(left, top, width, height)
  121.  
  122. def haut(self):
  123. button = QPushButton("Valider vitess", self)
  124. button.setGeometry(QRect(710, 48, 80, 38))
  125. mySlider = QSlider(Qt.Horizontal, self)
  126. mySlider.setGeometry(105, 60, 600, 15)
  127. mySlider.valueChanged[int].connect(self.changeValue)
  128. combo = QComboBox(self)
  129. combo.setGeometry(QRect(105, 30, 600, 22))
  130. combo.addItem("Joueur1")
  131. combo.addItem("AI")
  132. self.qlabel = QLabel(self)
  133. self.qlabel.move(50, 16)
  134. combo.activated[str].connect(self.comboChanged)
  135. combo2 = QComboBox(self)
  136. combo2.setGeometry(QRect(105, 5, 600, 22))
  137. combo2.addItem("Joueur1")
  138. combo2.addItem("AI")
  139. self.qlabel = QLabel(self)
  140. self.qlabel.move(50, 16)
  141. combo.activated[str].connect(self.comboChanged)
  142.  
  143. def menu(self):
  144. label = QLabel('Vitesse IA:', self)
  145. label.move(47, 50)
  146. label = QLabel('Combattant 1:', self)
  147. label.move(31, 0)
  148. label = QLabel('Combattant 2:', self)
  149. label.move(31, 25)
  150.  
  151. def box(self):
  152. combo = QComboBox(self)
  153. combo.setGeometry(QRect(100, 295, 500, 25))
  154. combo.addItem("Apple")
  155. combo.addItem("Pear")
  156. combo.addItem("Lemon")
  157. self.qlabel = QLabel(self)
  158. self.qlabel.move(50, 16)
  159. combo.activated[str].connect(self.comboChanged)
  160.  
  161. def changedValue(self):
  162. size = self.slider.value()
  163. self.label.setText(str(size))
  164.  
  165. def changeValue(self, value):
  166. print(value)
  167.  
  168. def comboChanged(self):
  169. print("ui")
  170.  
  171.  
  172. if __name__ == "__main__":
  173. App = QApplication(sys.argv)
  174. plateau=Plateau()
  175. sys.exit(App.exec())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement