qq聊天室登录、注册、退出、查找好友、私聊、群聊的代码
时间: 2023-09-19 13:06:14 浏览: 46
以下是一个简单的 QQ 聊天室的登录、注册、退出、查找好友、私聊、群聊的 Python 代码示例:
```python
import random
class User:
def __init__(self, username, password):
self.username = username
self.password = password
self.friends = []
self.groups = []
def add_friend(self, friend):
self.friends.append(friend)
def add_group(self, group):
self.groups.append(group)
class Group:
def __init__(self, name):
self.name = name
self.members = []
def add_member(self, member):
self.members.append(member)
class ChatRoom:
def __init__(self):
self.users = []
self.groups = []
def register(self, username, password):
for user in self.users:
if user.username == username:
return False
self.users.append(User(username, password))
return True
def login(self, username, password):
for user in self.users:
if user.username == username and user.password == password:
return user
return None
def logout(self, user):
self.users.remove(user)
def search_user(self, username):
for user in self.users:
if user.username == username:
return user
return None
def create_group(self, name, owner):
for group in self.groups:
if group.name == name:
return False
group = Group(name)
group.add_member(owner)
owner.add_group(group)
self.groups.append(group)
return True
def join_group(self, name, member):
for group in self.groups:
if group.name == name:
group.add_member(member)
member.add_group(group)
return True
return False
def leave_group(self, name, member):
for group in self.groups:
if group.name == name and member in group.members:
group.members.remove(member)
member.groups.remove(group)
return True
return False
def private_chat(self, sender, receiver, message):
if receiver in sender.friends:
print("{} -> {}: {}".format(sender.username, receiver.username, message))
else:
print("You are not friend with {}".format(receiver.username))
def group_chat(self, sender, group, message):
if group in sender.groups:
print("{} -> {}: {}".format(sender.username, group.name, message))
for member in group.members:
if member != sender:
print("{} -> {}: {}".format(sender.username, member.username, message))
else:
print("You are not member of group {}".format(group.name))
# 测试代码
chat_room = ChatRoom()
# 用户注册
chat_room.register("user1", "password1")
chat_room.register("user2", "password2")
chat_room.register("user3", "password3")
# 用户登录
user1 = chat_room.login("user1", "password1")
user2 = chat_room.login("user2", "password2")
user3 = chat_room.login("user3", "password3")
# 创建群组
chat_room.create_group("group1", user1)
chat_room.create_group("group2", user2)
# 加入群组
chat_room.join_group("group1", user2)
chat_room.join_group("group1", user3)
# 私聊
chat_room.private_chat(user1, user2, "Hello!")
chat_room.private_chat(user1, user3, "Hello!")
# 群聊
chat_room.group_chat(user1, chat_room.groups[0], "Hello, group1!")
chat_room.group_chat(user2, chat_room.groups[0], "Hello, group1!")
chat_room.group_chat(user3, chat_room.groups[0], "Hello, group1!")
# 用户退出
chat_room.logout(user1)
chat_room.logout(user2)
chat_room.logout(user3)
```
注意:这只是一个简单的示例代码,实际应用中可能需要更加完善的代码和功能。