コード例 #1
0
ファイル: AnimalStandard.cs プロジェクト: perl-easj/OOProg
 public AnimalStandard(
     string whatAmI,
     AnimalState initialState,
     IAnimalBehavior aggressiveBehavior,
     IAnimalBehavior fearfulBehavior,
     IAnimalBehavior idleBehavior)
     : base(whatAmI, initialState)
 {
     SetBehavior(AnimalState.aggressive, aggressiveBehavior);
     SetBehavior(AnimalState.fearful, fearfulBehavior);
     SetBehavior(AnimalState.idle, idleBehavior);
 }
コード例 #2
0
ファイル: AnimalBehavior.cs プロジェクト: perl-easj/OOProg
 public AnimalBehavior(AnimalBase animal, Action behavior, Func <bool> criterion, IAnimalBehavior next)
 {
     Behavior  = behavior;
     Criterion = criterion;
     Next      = next;
 }
コード例 #3
0
ファイル: Animal.cs プロジェクト: perl-easj/OOProg
 public Animal(string description, IAnimalBehavior behavior)
 {
     Behavior    = behavior ?? throw new ArgumentException("Null for initial behavior not allowed...");
     Description = description;
 }
コード例 #4
0
ファイル: AnimalBase.cs プロジェクト: perl-easj/OOProg
 /// <summary>
 /// Setting a behavior will always overwrite any existing
 /// behavior for the given state.
 /// </summary>
 public void SetBehavior(AnimalState state, IAnimalBehavior behavior)
 {
     Behaviors[state] = behavior;
 }