from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.config import Config
Config.set("graphics","resizable","0")
Config.set("graphics","width","300")
Config.set("graphics","height","300")
class MainApp(App):
def __init__(self):
super().__init__()
self.switch = True
def tic_tac_toe(self, arg):
arg.disabled = True
arg.text = 'X' if self.switch else 'O'
self.switch = not self.switch
coordinate = (
(0,1,2), (3,4,5), (6,7,8), # X
(0,3,6), (1,4,7), (2,5,8), # Y
(0,4,8), (2,4,6), # D
)
vector = lambda item: [self.buttons[x].text for x in item]
color = [0,1,0,1]
for item in coordinate:
if vector(item).count('X') == 3 or vector(item).count('O') == 3:
win = True
for i in item:
self.buttons[i].color = color
for button in self.buttons:
button.disabled = True
break
def restart(self, arg):
self.switch = True
for button in self.buttons:
button.color = [0,0,0,1]
button.text = ""
button.disabled = False
def build(self):
self.title = "Крестики-нолики"
root = BoxLayout(orientation="vertical", padding=5)
grid = GridLayout(cols=3)
self.buttons = []
for _ in range(9):
button = Button(
color = [0,0,0,1],
font_size = 24,
disabled = False,
on_press = self.tic_tac_toe
)
self.buttons.append(button)
grid.add_widget(button)
root.add_widget(grid)
root.add_widget(
Button(
text = "Restart",
size_hint = [1,.1],
on_press = self.restart
)
)
return root
if __name__ == "__main__":
MainApp().run()
RAW Paste Data
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.config import Config
Config.set("graphics","resizable","0")
Config.set("graphics","width","300")
Config.set("graphics","height","300")
class MainApp(App):
def __init__(self):
super().__init__()
self.switch = True
def tic_tac_toe(self, arg):
arg.disabled = True
arg.text = 'X' if self.switch else 'O'
self.switch = not self.switch
coordinate = (
(0,1,2), (3,4,5), (6,7,8), # X
(0,3,6), (1,4,7), (2,5,8), # Y
(0,4,8), (2,4,6), # D
)
vector = lambda item: [self.buttons[x].text for x in item]
color = [0,1,0,1]
for item in coordinate:
if vector(item).count('X') == 3 or vector(item).count('O') == 3:
win = True
for i in item:
self.buttons[i].color = color
for button in self.buttons:
button.disabled = True
break
def restart(self, arg):
self.switch = True
for button in self.buttons:
button.color = [0,0,0,1]
button.text = ""
button.disabled = False
def build(self):
self.title = "Крестики-нолики"
root = BoxLayout(orientation="vertical", padding=5)
grid = GridLayout(cols=3)
self.buttons = []
for _ in range(9):
button = Button(
color = [0,0,0,1],
font_size = 24,
disabled = False,
on_press = self.tic_tac_toe
)
self.buttons.append(button)
grid.add_widget(button)
root.add_widget(grid)
root.add_widget(
Button(
text = "Restart",
size_hint = [1,.1],
on_press = self.restart
)
)
return root
if __name__ == "__main__":
MainApp().run()


















