void compute_chest_cilk(task *taskX) { symbol_data *symbolData = taskX->symbolData; int rx = taskX->rx; int layer = taskX->layer; int res_power[4]; mf(&symbolData->data->in_data[symbolData->slot][3][rx][symbolData->startSc], &symbolData->data->in_rs[symbolData->slot][symbolData->startSc][layer], symbolData->nmbSc, symbolData->layer_data[layer][rx], &symbolData->pow[rx]); ifft(symbolData->layer_data[layer][rx], symbolData->nmbSc, symbolData->data->fftw[symbolData->slot]); chest(symbolData->layer_data[layer][rx], symbolData->pow[rx], symbolData->nmbSc, symbolData->layer_data[layer][rx], &res_power[rx]); symbolData->R[layer][rx] = cmake(res_power[rx],0); fft(symbolData->layer_data[layer][rx], symbolData->nmbSc, symbolData->data->fftw[symbolData->slot]); }
inline void compute_chest(task *task) { symbol_data *symbolData = task->symbolData; int rx = task->rx; int layer = task->layer; int res_power[4] = {0, 0, 0, 0}; mf(&symbolData->data->in_data[symbolData->slot][3][rx][symbolData->startSc], &symbolData->data->in_rs[symbolData->slot][symbolData->startSc][layer], symbolData->nmbSc, symbolData->layer_data[layer][rx], &symbolData->pow[rx]); ifft(symbolData->layer_data[layer][rx], symbolData->nmbSc, symbolData->data->fftw[symbolData->slot]); chest(symbolData->layer_data[layer][rx], symbolData->pow[rx], symbolData->nmbSc, symbolData->layer_data[layer][rx], &res_power[rx]); /* Put power values in the R matrix */ symbolData->R[layer][rx] = cmake(res_power[rx],0); fft(symbolData->layer_data[layer][rx], symbolData->nmbSc, symbolData->data->fftw[symbolData->slot]); /* Mark the task as computed */ mem_fence(); task->computed = true; }
void camping(void) { char i, encre, a; char *ptr; while(1) { text();cls(); ptr = (char*)0x26a; *ptr = *ptr & 254; // Vire le curseur ink(eencre[ville-1]); printFrame(15); printTitle(8,2, A_BGRED, "< ++ CAMPEMENT ++ >", 21); printAtXY(9,6, "1. Inspecter un heros"); printAtXY(9,8, "2. Visualiser l'equipe"); if (ca>20 && ca<29) printAtXY(9,10, "3. Ouvrir un coffre"); printAtXY(9,12,"4. Se reposer"); printAtXY(13,16,"5. Lever le camp"); // affichage équipe printTeam(); a = get(); switch(a) { case '1': inspect(); break; case '2': printTeamFull(); break; case '3': if (ca>20 && ca<29) chest(); break; case '4': sleep(); break; case '5': cls(); printAtXY(8,10, "Bon voyage !"); wait(150); return; break; default: ping(); break; } //attribAtXY(3,0,a); } }
int main(int /*argc*/, char* /*argv*/[]) { srand(time(nullptr)); Logger::get().setLevel(LogLevel::DEBUG); CLOG_DEBUG("starting crawler"); Input input; Renderer r; auto& simulator = Simulator::get(); auto& windowManager = WindowManager::get(); WorldSharedPtr world(new World()); // Possibility: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096... world->generate(128); simulator.setWorld(world); HeroSharedPtr hero(new Hero()); hero->setMapHp(100); hero->heal(); hero->setName("Jacob"); hero->equip(ItemFactory::create(ItemTemplates::PUNCH())); simulator.spawn(hero); CharacterTemplateSharedPtrs creatureTemplates; creatureTemplates.push_back(CharacterTemplates::DEMON()); creatureTemplates.push_back(CharacterTemplates::VILLAGER()); creatureTemplates.push_back(CharacterTemplates::KID()); creatureTemplates.push_back(CharacterTemplates::BAT()); int worldArea = world->getWidth() * world->getHeight(); for (int i = 0; i < 10; i++) { ObjectSharedPtr room = RoomFactory::create(RoomTemplates::INN()); simulator.spawn(room); } float creatureDensity = 100 / (float)(64*64); int numCreature = (int)(worldArea * creatureDensity); for (int i = 0; i < numCreature; i++) { int idx = Math::ceilRandom(creatureTemplates.size()); ObjectSharedPtr creature(CharacterFactory::create(creatureTemplates[idx])); simulator.spawn(creature); } float chestDensity = 2 / (float)(64*64); int numChest = (int)(worldArea * chestDensity); for (int i = 0; i < numChest; i++) { ObjectSharedPtr chest(ChestFactory::create()); simulator.spawn(chest); } Debugger& debugger = Debugger::get(); Timer timer; while (!input.quit()) { debugger.incFrameId(); float dt = timer.elapsed(); timer.reset(); CDEBUG_LOW(debugger.tick(dt)); simulator.tick(dt); windowManager.tick(dt); // control camera around hero int centerX = hero->getX() - r.getWidth() / 2; int centerY = hero->getY() - r.getHeight() / 2; /* int ox = r.getOriginX(); int oy = r.getOriginY(); int errX = (int)fabs((float)centerX - ox) - r.getWidth() / 6; int errY = (int)fabs((float)centerY - oy) - r.getHeight() / 6; if (errX > 0) { ox += (centerX > ox) ? errX : -errX; } if (errY > 0) { oy += (centerY > oy) ? errY : -errY; } r.setOrigin(ox, oy); */ r.setOrigin(centerX, centerY, hero->getZ()); r.clear(); simulator.draw(&r); windowManager.draw(&r); CDEBUG_LOW(debugger.draw(&r)); r.flip(); int sleepTime = (int)(33333.3f - timer.elapsed() * 1000000.0f); if (sleepTime > 0) { usleep(sleepTime); } } return 0; }
void MainWindow::on_btn_Roll_clicked() { if(ui->btn_Roll->text() == "Next player") { NextPlayer(); ui->btn_Roll->setText("Roll"); return; } int oldPos = players[cPlayer]->getPos(); if(spaces[oldPos]->is2XSpeed()) ui->txt_Log->appendPlainText("2XSpeed, hurry up!!!!\nYour roll dive result is: " + QString::number(players[cPlayer]->rollDice(spaces[oldPos]->is2XSpeed()))); else ui->txt_Log->appendPlainText("Your roll dive result is: " + QString::number(players[cPlayer]->rollDice(spaces[oldPos]->is2XSpeed()))); int newPos = players[cPlayer]->getPos(); if (newPos < oldPos) { ui->txt_Log->appendPlainText(players[cPlayer]->getPiece() + " complete new round, take new 350$"); players[cPlayer]->setMoney(players[cPlayer]->getMoney() + 350); } if (spaces[newPos]->isChance()) { chance(&cPlayer); } else if (spaces[newPos]->isChest()) { chest(&cPlayer); } else if (spaces[newPos]->isPrison()) { if (players[cPlayer]->getMoney() >= 50) { ui->txt_Log->appendPlainText(players[cPlayer]->getPiece() + " fall in prison, you have to pay 50$"); players[cPlayer]->setMoney(players[cPlayer]->getMoney() - 50); } else { ui->txt_Log->appendPlainText(players[cPlayer]->getPiece() + " fall in prison, you lost the next turn"); players[cPlayer]->setLostTurn(players[cPlayer]->getLostTurn() + 1); } } else if (!spaces[newPos]->isPark()) { if (spaces[newPos]->isFree() && players[cPlayer]->getMoney() >= spaces[newPos]->getPrice()) { if (QMessageBox::question(this,"Buy a park", "Would you like to buy " + spaces[newPos]->getName(), QMessageBox::Yes,QMessageBox::No) == QMessageBox::Yes) { spaces[newPos]->setOwner(players[cPlayer]->getPiece()); players[cPlayer]->setMoney( players[cPlayer]->getMoney() - spaces[newPos]->getPrice()); if (!spaces[newPos]->isUp() && players[cPlayer]->getMoney() >= spaces[newPos]->getPrice()) { if (QMessageBox::question(this,"Upgrade", "Would you like to upgrade " + spaces[newPos]->getName() + ", it'll double price and fees too", QMessageBox::Yes,QMessageBox::No) == QMessageBox::Yes) { players[cPlayer]->setMoney( players[cPlayer]->getMoney() - spaces[newPos]->getPrice()); spaces[newPos]->upgrade(); } } } } else { if (spaces[newPos]->getOwner().compare( players[cPlayer]->getPiece()) == 0) { if (!spaces[newPos]->isUp() && players[cPlayer]->getMoney() >= spaces[newPos]->getPrice()) { if (QMessageBox::question(this,"Upgrade", "Would you like to upgrade " + spaces[newPos]->getName() + ", it'll double price and fees too", QMessageBox::Yes,QMessageBox::No) == QMessageBox::Yes) { players[cPlayer]->setMoney( players[cPlayer]->getMoney() - spaces[newPos]->getPrice()); spaces[newPos]->upgrade(); } } if (QMessageBox::question(this,"Sell", "Would you like to sell " + spaces[newPos]->getName() + ", to bank", QMessageBox::Yes,QMessageBox::No) == QMessageBox::Yes) { players[cPlayer]->setMoney( players[cPlayer]->getMoney() + spaces[newPos]->getPrice()); spaces[newPos]->setOwner("No One"); } } else { for (int l = 0; l < players.size(); ++l) { if (l != cPlayer) { if (players[l]->getPiece().compare( spaces[newPos]->getOwner()) == 0) { QMessageBox::information(this,"Notice", "You have to pay " + (QString::number(spaces[newPos]->getPrice()/ 10)) + "$ to " + players[l]->getPiece() + "player\n",QMessageBox::Ok); if (players[cPlayer]->getMoney() >= spaces[newPos]->getPrice() / 10) { players[cPlayer]->setMoney( players[cPlayer]->getMoney() - (spaces[newPos]->getPrice() / 10)); players[l]->setMoney( players[l]->getMoney() + (spaces[newPos]->getPrice() / 10)); } else { return PlayerLeft(); } } } } } } } NextPlayer(); }