"""
- 定义:
1. 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外 保存这个状态.
2. 可以恢复原来保存的状态
3. 如果保存的状态过多,可以通过备忘录管理者角色来管理备忘录
- 场景:
撤销场景,事务回滚的应用,副本监控场景
"""
import random
class Memenot:
vitality = 0
attack = 0
defense = 0
def __init__(self, vitality, attack, defense):
self.vitality = vitality
self.attack = attack
self.defense = defense
class GameCharacter():
vitality = 0
attack = 0
defense = 0
def disPlayState(self):
print('Current Values:')
print(f'Life:{self.vitality}')
print(f'Attack:{self.attack}')
print(f'Defence:{self.defense}')
def initState(self, vitality, attack, defense):
self.vitality = vitality
self.attack = attack
self.defense = defense
def saveState(self):
return Memenot(self.vitality, self.attack, self.defense)
def recoverState(self, memeto):
self.vitality = memeto.vitality
self.attack = memeto.attack
self.defense = memeto.defense
class FightCharactor(GameCharacter):
def fight(self):
"""
# 攻击
:return:
"""
self.vitality -= random.randint(1, 10)
if __name__ == '__main__':
game_chrctr = FightCharactor()
game_chrctr.initState(100, 79, 60)
game_chrctr.disPlayState()
memeto = game_chrctr.saveState()
game_chrctr.fight()
game_chrctr.disPlayState()
game_chrctr.recoverState(memeto)
game_chrctr.disPlayState()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?