-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
59 lines (55 loc) · 2.26 KB
/
Copy pathmain.py
File metadata and controls
59 lines (55 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from tkinter import *
import numpy as np
import math
import tkinter.messagebox
root = Tk()
root.title("○×ゲーム")
f1=Frame(root)
f1.pack()
w1 = Canvas(f1, width=580,height=580,background='lightcyan')
w1.pack()
for i in range(0, 4):
w1.create_line(i * 180 + 20, 20, i * 180 + 20, 560)
w1.create_line(20, i * 180 + 20, 560, i * 180 + 20)
num = 0
A = np.full((3, 3), 0)
def dawn(event):
global w1
global num, A
for i in range(0, 3):
for j in range(0, 3):
if 20 + j * 180 < event.y and event.y <= 20 + (j+1) * 180:
break
if 20 + i * 180 <= event.x and event.x <= 20 + (i+1) * 180:
break
if num % 2 == 0 and A[i][j] == 0:
A[i][j] = 1
w1.create_line(110 + 180 * i - 45 * math.sqrt(2), 110 + 180 * j - 45 * math.sqrt(2),
110 + 180 * i + 45 * math.sqrt(2), 110 + 180 * j + 45 * math.sqrt(2))
w1.create_line(110 + 180 * i + 45 * math.sqrt(2), 110 + 180 * j - 45 * math.sqrt(2),
110 + 180 * i - 45 * math.sqrt(2), 110 + 180 * j + 45 * math.sqrt(2))
num += 1
if num % 2 != 0 and A[i][j] == 0:
A[i][j] = 2
w1.create_oval(20 + 180 * i, 20 + 180 * j, 20 + 180 * (i + 1), 20 + 180 * (j + 1))
num += 1
if A[0][0] == A[0][1] == A[0][2] == 2 or A[1][0] == A[1][1] == A[1][2] == 2 or A[2][0] == A[2][1] == A[2][
2] == 2 or \
A[0][0] == A[1][0] == A[2][0] == 2 or A[0][1] == A[1][1] == A[2][1] == 2 or A[0][2] == A[1][2] == \
A[2][
2] == 2 or \
A[0][0] == A[1][1] == A[2][2] == 2 or A[2][0] == A[1][1] == A[0][2] == 2:
tkinter.messagebox.showinfo('結果', '○勝つ')
elif A[0][0] == A[0][1] == A[0][2] == 1 or A[1][0] == A[1][1] == A[1][2] == 1 or A[2][0] == A[2][1] == A[2][
2] == 1 or \
A[0][0] == A[1][0] == A[2][0] == 1 or A[0][1] == A[1][1] == A[2][1] == 1 or A[0][2] == A[1][2] == \
A[2][
2] == 1 or \
A[0][0] == A[1][1] == A[2][2] == 1 or A[2][0] == A[1][1] == A[0][2] == 1:
tkinter.messagebox.showinfo('結果', '×勝つ')
w1.bind("<Button -1>", dawn)
def quit():
root.quit()
button1 = Button(root, text="提出", font=('楷体', 20), command=quit)
button1.pack()
root.mainloop()