用python写一份代码,内容为“石头剪刀布”的游戏,要求用户注册功能,加个文件读写,把用户的信息和猜数次数,成功失败次数都记录下来,
时间: 2023-12-01 14:02:27 浏览: 30
好的,以下是代码:
```python
import random
class Game:
def __init__(self):
self.user_data = {}
self.load_data() # 加载已有数据
def load_data(self):
try:
with open('user_data.txt', 'r') as f:
lines = f.readlines()
for line in lines:
user, wins, loses, draws, guesses = line.strip().split(',')
self.user_data[user] = {'wins': int(wins), 'loses': int(loses), 'draws': int(draws), 'guesses': int(guesses)}
except:
pass
def save_data(self):
with open('user_data.txt', 'w') as f:
for user, data in self.user_data.items():
f.write(f"{user},{data['wins']},{data['loses']},{data['draws']},{data['guesses']}\n")
def register(self):
while True:
user = input('请输入用户名: ')
if user in self.user_data:
print('该用户已存在,请重新输入')
else:
self.user_data[user] = {'wins': 0, 'loses': 0, 'draws': 0, 'guesses': 0}
print(f"用户 {user} 注册成功")
break
def play(self):
while True:
user = input('请输入用户名: ')
if user not in self.user_data:
print('该用户不存在,请注册后再进行游戏')
continue
guess = input('请输入你的选择(石头/剪刀/布): ')
if guess not in ['石头', '剪刀', '布']:
print('输入有误,请重新输入')
continue
computer_guess = random.choice(['石头', '剪刀', '布'])
print(f"电脑出招: {computer_guess}")
if guess == computer_guess:
print('平局')
self.user_data[user]['draws'] += 1
elif (guess == '石头' and computer_guess == '剪刀') or (guess == '剪刀' and computer_guess == '布') or (guess == '布' and computer_guess == '石头'):
print('你赢了')
self.user_data[user]['wins'] += 1
else:
print('你输了')
self.user_data[user]['loses'] += 1
self.user_data[user]['guesses'] += 1
self.save_data()
play_again = input('是否继续游戏(y/n): ')
if play_again.lower() == 'n':
break
if __name__ == '__main__':
game = Game()
while True:
choice = input('请选择功能(1.注册,2.游戏,3.退出): ')
if choice == '1':
game.register()
elif choice == '2':
game.play()
elif choice == '3':
break
else:
print('输入有误,请重新输入')
```
这个版本的游戏包含了注册和猜拳功能。用户数据保存在 `user_data.txt` 文件中,每个用户对应一行,格式为 `用户名,胜利次数,失败次数,平局次数,猜数次数`。每次进行游戏后,用户数据将被更新并保存到文件中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)