void Changer::turn_impl( const Abstract::Params* params, int bacterium_index ) { int n = 1; RepeaterParams rp( bacterium_index, n, remaining_pseudo_actions_, &LogicalChanger::turn ); repeater(&rp); penalize(bacterium_index); }
void Changer::j_impl( const Abstract::Params* params, int bacterium_index ) { int instruction = params->p1; if ((instruction >= 0) && (instruction < instructions_)) { model_->setInstruction(team_, bacterium_index, instruction); } else { throw Exception("Invalid instruction in j command."); } remainingActionsDecrement( remaining_pseudo_actions_, bacterium_index ); penalize(bacterium_index); }
void Changer::right_impl( const Abstract::Params* params, int bacterium_index ) { int n = 1; if (params->p1 != -1) { n = checkCommandsNumber(params->p1); } RepeaterParams rp( bacterium_index, n, remaining_pseudo_actions_, &LogicalChanger::right ); repeater(&rp); penalize(bacterium_index); }
void Changer::jl_impl( const Abstract::Params* params, int bacterium_index ) { int mass = model_->getMass(team_, bacterium_index); if (mass < params->p1) { int instruction = params->p2; if ((instruction >= 0) && instruction < instructions_) { model_->setInstruction(team_, bacterium_index, instruction); } else { throw Exception("Invalid instruction in jl command."); } } else { updateInstruction(bacterium_index); } remainingActionsDecrement( remaining_pseudo_actions_, bacterium_index ); penalize(bacterium_index); }
void Changer::je_impl( const Abstract::Params* params, int bacterium_index ) { Abstract::Point en; bool enemy = logical_changer_.roundEnemySearch(bacterium_index, &en); if (enemy) { int instruction = params->p1; if ((instruction >= 0) && instruction < instructions_) { model_->setInstruction(team_, bacterium_index, instruction); } else { throw Exception("Invalid instruction in je command."); } } else { updateInstruction(bacterium_index); } remainingActionsDecrement( remaining_pseudo_actions_, bacterium_index ); penalize(bacterium_index); }
static void test_penalize_0(CuTest *testCase) { stList *observedList = stList_construct3(0, free); stList *expectedList = stList_construct3(0, free); stHash *observedHash = createBlockHashFromString("a score=0\n" "s reference.chr0 0 13 + 158545518 gcagctgaaaaca\n" "s name.chr1 0 10 + 100 ATGT---ATGCCG\n" "s name2.chr1 0 10 + 100 ATGT---ATGCCG\n", observedList); stHash *expectedHash = createBlockHashFromString("a score=0\n" "s reference.chr0 0 13 + 158545518 gcagctgaaaaca-----\n" "s name.chr1 0 15 + 100 ATGT---ATGCCGNNNNN\n" "s name2.chr1 0 10 + 100 ATGT---ATGCCG-----\n", expectedList); penalize(observedHash, "name.chr1", 5); CuAssertTrue(testCase, hashesAreEqual(observedHash, expectedHash)); CuAssertTrue(testCase, listsAreEqual(observedList, expectedList)); // clean up stHash_destruct(observedHash); stHash_destruct(expectedHash); stList_destruct(observedList); stList_destruct(expectedList); }
SimControlWidget::SimControlWidget(QWidget* parent) : QWidget(parent) { setupUi(this); simulation_ = NULL; connect(flipButton, SIGNAL(clicked()), this, SLOT(flip())); connect(penalizeButton, SIGNAL(clicked()), this, SLOT(penalize())); }