c++ 实现狼人游戏

题目

Task

实现一个简单的“狼人游戏”通知机制

Details

角色有:村民,狼人,预言家,女巫,猎人(Uninitialized只用于默认构造函数)
法官呼叫“狼人/预言家/女巫/猎人”,相应角色进行回答
法官呼叫“村民”,全体角色回答

Hints

objA.on(objB)表示将objB作为objA的监听者(事件订阅者)
知识点:

观察者模式
类与类的关系:关联
C++ enum
类静态变量
One more step

将构造函数和初始化操作(Player();和void init(std::string name, Role role);)分离出来有何优缺点?
judge.hpp中const Player*能改为const Player&吗?为什么?
enum类型Role定义在Player类的public部分有何好处?
Role为什么定义成enum类型?定义成string数组合适吗?
kMaxCountOfPlayers为什么要作为类静态变量?如果类静态变量为double类型,还能在类定义中初始化吗?


代码实现

//main.cpp

#include "judge.hpp"
#include "player.hpp"
#include <cassert>
#include <iostream>
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值