Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.81 KB | None | 0 0
  1. import sys
  2. from PyQt5 import QtWidgets
  3. from PyQt5.QtWidgets import QApplication, QMainWindow
  4. import time
  5.  
  6. class MyWindow(QMainWindow):
  7.  
  8.     def __init__(self):
  9.         super(MyWindow, self).__init__()
  10.         self.setGeometry(50, 50, 500, 500)
  11.         self.setWindowTitle("Tic Tac Toe")
  12.         self.initUI()
  13.         self.turns()
  14.  
  15.     def initUI(self):
  16.         self.label = QtWidgets.QLabel(self)
  17.         self.label.setText(" ")
  18.         self.label.move(0, 0)
  19.  
  20.         self.btn1 = QtWidgets.QPushButton(self)
  21.         self.btn2 = QtWidgets.QPushButton(self)
  22.         self.btn3 = QtWidgets.QPushButton(self)
  23.         self.btn4 = QtWidgets.QPushButton(self)
  24.         self.btn5 = QtWidgets.QPushButton(self)
  25.         self.btn6 = QtWidgets.QPushButton(self)
  26.         self.btn7 = QtWidgets.QPushButton(self)
  27.         self.btn8 = QtWidgets.QPushButton(self)
  28.         self.btn9 = QtWidgets.QPushButton(self)
  29.  
  30.         self.btn1.setText("  ")
  31.         self.btn2.setText("  ")
  32.         self.btn3.setText("  ")
  33.         self.btn4.setText("  ")
  34.         self.btn5.setText("  ")
  35.         self.btn6.setText("  ")
  36.         self.btn7.setText("  ")
  37.         self.btn8.setText("  ")
  38.         self.btn9.setText("  ")
  39.  
  40.         #20 -> top, 50 -> middle, 80 -> bottom
  41.         self.btn1.move(0, 20)
  42.         self.btn2.move(0, 50)
  43.         self.btn3.move(0, 80)
  44.         self.btn4.move(100, 20)
  45.         self.btn5.move(100, 50)
  46.         self.btn6.move(100, 80)
  47.         self.btn7.move(200, 20)
  48.         self.btn8.move(200, 50)
  49.         self.btn9.move(200, 80)
  50.  
  51.         self.btn1.clicked.connect(self.clicked1)
  52.         self.btn2.clicked.connect(self.clicked2)
  53.         self.btn3.clicked.connect(self.clicked3)
  54.         self.btn4.clicked.connect(self.clicked4)
  55.         self.btn5.clicked.connect(self.clicked5)
  56.         self.btn6.clicked.connect(self.clicked6)
  57.         self.btn7.clicked.connect(self.clicked7)
  58.         self.btn8.clicked.connect(self.clicked8)
  59.         self.btn9.clicked.connect(self.clicked9)
  60.  
  61.     #assign each button a task upon clicking
  62.     def clicked1(self):
  63.         self.btn1.setText("X")
  64.     def clicked2(self):
  65.         self.btn2.setText("X")
  66.     def clicked3(self):
  67.         self.btn3.setText("X")
  68.     def clicked4(self):
  69.         self.btn4.setText("X")
  70.     def clicked5(self):
  71.         self.btn5.setText("X")
  72.     def clicked6(self):
  73.         self.btn6.setText("X")
  74.     def clicked7(self):
  75.         self.btn7.setText("X")
  76.     def clicked8(self):
  77.         self.btn8.setText("X")
  78.     def clicked9(self):
  79.         self.btn9.setText("X")
  80.  
  81.  
  82.     #def a winner
  83.     def winner_player(self):
  84.         #top horiz
  85.         if self.btn1.text() and self.btn4.text() and self.btn7.text() == "X":
  86.             self.label.setText("Player Wins")
  87.         #mid horiz
  88.         if self.btn2.text() and self.btn5.text() and self.btn8.text() == "X":
  89.             self.label.setText("Player Wins")
  90.         #bot horiz
  91.         if self.btn3.text() and self.btn6.text() and self.btn9.text() == "X":
  92.             self.label.setText("Player Wins")
  93.         #left vert
  94.         if self.btn1.text() and self.btn2.text() and self.btn3.text() == "X":
  95.             self.label.setText("Player Wins")
  96.         #mid vert
  97.         if self.btn4.text() and self.btn5.text() and self.btn6.text() == "X":
  98.             self.label.setText("Player Wins")
  99.         #right vert
  100.         if self.btn2.text() and self.btn2.text() and self.btn2.text() == "X":
  101.             self.label.setText("Player Wins")
  102.         #left -> right diag
  103.         if self.btn1.text() and self.btn5.text() and self.btn9.text() == "X":
  104.             self.label.setText("Player Wins")
  105.         #right -> left diag
  106.         if self.btn3.text() and self.btn5.text() and self.btn7.text() == "X":
  107.             self.label.setText("Player Wins")
  108.  
  109.  
  110.  
  111.     def winner_cpu(self):
  112.         #top horiz
  113.         if self.btn1.text() and self.btn4.text() and self.btn7.text() == "O":
  114.             self.label.setText("CPU Wins")
  115.         #mid horiz
  116.         if self.btn2.text() and self.btn5.text() and self.btn8.text() == "O":
  117.             self.label.setText("CPU Wins")
  118.         #bot horiz
  119.         if self.btn3.text() and self.btn6.text() and self.btn9.text() == "O":
  120.             self.label.setText("CPU Wins")
  121.         #left vert
  122.         if self.btn1.text() and self.btn2.text() and self.btn3.text() == "O":
  123.             self.label.setText("CPU Wins")
  124.         #mid vert
  125.         if self.btn4.text() and self.btn5.text() and self.btn6.text() == "O":
  126.             self.label.setText("CPU Wins")
  127.         #right vert
  128.         if self.btn2.text() and self.btn2.text() and self.btn2.text() == "O":
  129.             self.label.setText("CPU Wins")
  130.         #left -> right diag
  131.         if self.btn1.text() and self.btn5.text() and self.btn9.text() == "O":
  132.             self.label.setText("CPU Wins")
  133.         #right -> left diag
  134.         if self.btn3.text() and self.btn5.text() and self.btn7.text() == "O":
  135.             self.label.setText("CPU Wins")
  136.  
  137.  
  138.     def turns(self):
  139.         player_turn = True
  140.  
  141.         if player_turn == True:
  142.             self.label_turn = QtWdigets.QLabel(self)
  143.             self.label_turn.setText("Pick a box")
  144.             self.label_turn.move(0, 0)
  145.  
  146.             time.sleep(3)
  147.  
  148.             self.winner_player()
  149.  
  150.             player_turn = False
  151.             cpu_turn = True
  152.  
  153.         if cpu_turn == True:
  154.             self.label_turn = QtWdigets.QLabel(self)
  155.             self.label_turn.setText("Pick a box")
  156.             self.label.move(0, 0)
  157.  
  158.             time.sleep(3)
  159.  
  160.             self.winner_cpu()
  161.  
  162.             player_turn = True
  163.             cpu_turn = False
  164.  
  165. def window():
  166.     app = QApplication(sys.argv)
  167.     win = MyWindow()
  168.     win.show()
  169.     sys.exit(app.exec_())
  170. window()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement