使用tkinter设计一个登陆页面和一个围棋小游戏,登陆成功后可跳转到围棋小游戏
时间: 2024-02-03 17:04:41 浏览: 26
好的,我会尽力回答你的问题。首先,让我们来看看如何使用Tkinter设计一个简单的登录页面。以下是一个示例代码:
```python
import tkinter as tk
def login():
username = entry_username.get()
password = entry_password.get()
if username == "admin" and password == "123456":
# 登录成功,跳转到围棋小游戏
print("登录成功")
else:
# 登录失败,弹出提示框
print("登录失败")
root = tk.Tk()
root.title("登录页面")
root.geometry("300x150")
label_username = tk.Label(root, text="用户名:")
label_username.pack()
entry_username = tk.Entry(root)
entry_username.pack()
label_password = tk.Label(root, text="密码:")
label_password.pack()
entry_password = tk.Entry(root, show="*")
entry_password.pack()
button_login = tk.Button(root, text="登录", command=login)
button_login.pack()
root.mainloop()
```
这个代码创建了一个300x150的窗口,包含一个用户名输入框、一个密码输入框和一个登录按钮。当用户点击登录按钮时,程序会获取输入框中的用户名和密码,并进行简单的认证。如果认证成功,程序会打印“登录成功”的信息,否则会打印“登录失败”的信息。
接下来,让我们来看看如何设计围棋小游戏。以下是一个示例代码:
```python
import tkinter as tk
class GoGame:
def __init__(self, root):
self.root = root
self.canvas = tk.Canvas(root, width=400, height=400)
self.canvas.pack()
self.canvas.bind("<Button-1>", self.place_stone)
self.board = [[0]*19 for i in range(19)]
self.current_player = 1
def place_stone(self, event):
x = event.x // 20
y = event.y // 20
if self.board[x][y] == 0:
self.board[x][y] = self.current_player
if self.current_player == 1:
color = "black"
self.current_player = 2
else:
color = "white"
self.current_player = 1
self.canvas.create_oval(x*20+2, y*20+2, x*20+18, y*20+18, fill=color)
root = tk.Tk()
root.title("围棋小游戏")
game = GoGame(root)
root.mainloop()
```
这个代码创建了一个400x400的画布,并在画布上绘制了一个19x19的棋盘。当用户点击画布上的某个位置时,程序会根据当前玩家在该位置放置一个棋子,并切换到下一个玩家。
最后,将两个程序结合起来。在登录成功后,我们可以通过destroy()方法销毁登录窗口,并创建一个新的窗口来显示围棋小游戏。以下是一个示例代码:
```python
import tkinter as tk
def login():
username = entry_username.get()
password = entry_password.get()
if username == "admin" and password == "123456":
# 登录成功,销毁登录窗口并显示围棋小游戏
print("登录成功")
root_login.destroy()
root_game = tk.Tk()
root_game.title("围棋小游戏")
game = GoGame(root_game)
root_game.mainloop()
else:
# 登录失败,弹出提示框
print("登录失败")
class GoGame:
def __init__(self, root):
self.root = root
self.canvas = tk.Canvas(root, width=400, height=400)
self.canvas.pack()
self.canvas.bind("<Button-1>", self.place_stone)
self.board = [[0]*19 for i in range(19)]
self.current_player = 1
def place_stone(self, event):
x = event.x // 20
y = event.y // 20
if self.board[x][y] == 0:
self.board[x][y] = self.current_player
if self.current_player == 1:
color = "black"
self.current_player = 2
else:
color = "white"
self.current_player = 1
self.canvas.create_oval(x*20+2, y*20+2, x*20+18, y*20+18, fill=color)
# 创建登录窗口
root_login = tk.Tk()
root_login.title("登录页面")
root_login.geometry("300x150")
label_username = tk.Label(root_login, text="用户名:")
label_username.pack()
entry_username = tk.Entry(root_login)
entry_username.pack()
label_password = tk.Label(root_login, text="密码:")
label_password.pack()
entry_password = tk.Entry(root_login, show="*")
entry_password.pack()
button_login = tk.Button(root_login, text="登录", command=login)
button_login.pack()
root_login.mainloop()
```
这个代码会创建一个登录窗口,当用户输入正确的用户名和密码后,会销毁登录窗口并显示围棋小游戏窗口。在围棋小游戏窗口中,用户可以进行围棋游戏,并可以通过关闭窗口来退出游戏。