写一个有界面的python小游戏
时间: 2023-06-27 21:06:08 浏览: 125
使用Python写一个小游戏
好的,我可以为您编写一个简单的Python小游戏,名为“打地鼠”。
首先,我们需要导入必要的模块。我将使用Tkinter和random。Tkinter用于创建游戏窗口,而random用于生成随机数来控制地鼠的出现。
```python
from tkinter import *
import random
```
接下来,我们将创建游戏窗口,并设置窗口大小和标题。
```python
root = Tk()
root.title("打地鼠")
root.geometry("400x400")
```
然后,我们将创建一个Label来显示分数,并将分数初始化为0。我们还将创建一个List来存储地鼠的位置,并将其全部初始化为0。
```python
score = 0
score_label = Label(root, text="分数:" + str(score))
score_label.pack()
mole_list = [0] * 9
```
接下来,我们将创建一个函数来让地鼠出现。该函数将在随机的位置创建一个Button,并将其添加到窗口中。当玩家点击该Button时,将调用另一个函数来更新分数并让地鼠消失。
```python
def appear_mole():
global score
mole_index = random.randint(0, 8)
if mole_list[mole_index] == 0:
mole_list[mole_index] = 1
mole_button = Button(root, text="打我", width=6, height=3, command=lambda: whack_mole(mole_index))
mole_button.grid(row=mole_index // 3 + 1, column=mole_index % 3)
score_label.config(text="分数:" + str(score))
```
现在,我们需要编写whack_mole函数来更新分数并消除地鼠。
```python
def whack_mole(index):
global score
if mole_list[index] == 1:
score += 10
mole_list[index] = 0
score_label.config(text="分数:" + str(score))
root.grid_slaves(row=index // 3 + 1, column=index % 3)[0].destroy()
```
最后,我们将创建一个while循环来让游戏持续进行。该循环每隔1秒钟调用一次appear_mole函数。
```python
while True:
root.update()
time.sleep(1)
appear_mole()
```
完整代码如下:
```python
from tkinter import *
import random
import time
root = Tk()
root.title("打地鼠")
root.geometry("400x400")
score = 0
score_label = Label(root, text="分数:" + str(score))
score_label.pack()
mole_list = [0] * 9
def appear_mole():
global score
mole_index = random.randint(0, 8)
if mole_list[mole_index] == 0:
mole_list[mole_index] = 1
mole_button = Button(root, text="打我", width=6, height=3, command=lambda: whack_mole(mole_index))
mole_button.grid(row=mole_index // 3 + 1, column=mole_index % 3)
score_label.config(text="分数:" + str(score))
def whack_mole(index):
global score
if mole_list[index] == 1:
score += 10
mole_list[index] = 0
score_label.config(text="分数:" + str(score))
root.grid_slaves(row=index // 3 + 1, column=index % 3)[0].destroy()
while True:
root.update()
time.sleep(1)
appear_mole()
```
现在,您可以保存这个代码并运行它,就可以开始玩“打地鼠”游戏啦!
阅读全文