$this->_strategy = $strategy; } public function __get($object) { return $this->{$object}; } public function cost() { return $this->_strategy->cost($this); } public function type() { return $this->_strategy->type($this); } } class Arts extends Lesson { protected $discount = 0.75; protected $type = "文科"; } class Science extends Lesson { protected $discount = 0.5; protected $type = "理科"; } //应用 $arts = new Arts(6, new Math()); echo $arts->type() . $arts->cost(); echo "<br>"; $science = new Science(6, new Math()); echo $science->type() . $science->cost();
$ret = Resource::satisfy(array($clay), array($caravanr, $caravanl), 10); test(count($ret) == 2); $ret = Resource::satisfy(array($clay), array(ResourceOption::left($clay), ResourceOption::right($clay)), 10); test(count($ret) == 2); $ret = Resource::satisfy(array($stone, $stone, $ore), array(ResourceOption::me($stone), ResourceOption::me($ore), ResourceOption::me($glass), ResourceOption::me($paper), ResourceOption::left($stone, 2), ResourceOption::left($ore, 2), ResourceOption::left($glass, 2), ResourceOption::left($paper, 2), ResourceOption::right($stone, 2), ResourceOption::right($ore, 2), ResourceOption::right($glass, 2), ResourceOption::right($paper, 2)), 100); test(count($ret) == 2); $wo = new Resource(true, false); $wo->add(Resource::WOOD); $wo->add(Resource::ORE); $wb = new Resource(true, false); $wb->add(Resource::CLAY); $wb->add(Resource::WOOD); $ret = Resource::satisfy(array($clay, $clay, $linen), array(ResourceOption::me($paper), ResourceOption::me($linen), ResourceOption::me($wo), ResourceOption::me($wb), ResourceOption::left($paper, 2), ResourceOption::left($linen, 2), ResourceOption::left($wo, 2), ResourceOption::left($wb, 2), ResourceOption::right($paper, 2), ResourceOption::right($linen, 2), ResourceOption::right($wo, 2), ResourceOption::right($wb, 2)), 100); test(count($ret) == 2); // Test science scoring $s1 = new Science(); test($s1->points() == 0); $s1->add(Science::GEAR); test($s1->points() == 1); $s1->add(Science::GEAR); test($s1->points() == 4); $s1->add(Science::COMPASS); test($s1->points() == 5); $s1->add(Science::ANY); test($s1->points() == 13); $s1->add(Science::ANY); test($s1->points() == 18); $s1->add(Science::TABLET); test($s1->points() == 26); // Test playing cards function card($csv, $age = 1)