Position::Position (const unsigned int board_size) : bitb(board_size) { // default position, unused. correct only for 7x7. turn = 0; for(unsigned int i=0; i<11; i++){ tower[ i] = Tower("o"); tower[24-i] = Tower("x"); } init (board_size); }
void Tower(int n,char src,char dest,char temp) { if (n==1) print(src,dest); else { Tower(n-1,src,temp,dest); Tower(1,src,dest,temp); Tower(n-1,temp,dest,src); } }
void GA_BuildTower::Init(const vector<Vec2>& cand_grid, const vector<int>& level, const vector<int>& type) { populations.clear(); GenoType species; for (int i = 0; i < pop_size; ++i) { species.fitness = 0; species.rfitness = 0; species.cfitness = 0; species.gene.clear(); for (int j = 0; j < gene_cnt; ++j) species.gene.push_back(Tower(level[j], type[j], cand_grid[j].x, cand_grid[j].y)); populations.push_back(species); } CalFitness(); double best_fitness = 0; for (int i = 0; i < pop_size; ++i) if (populations[i].fitness > best_fitness) { best_fitness = populations[i].fitness; best = populations[i]; } }
int main() { Tower tower = Tower(); tower.display(); system("Pause"); return 0; }
int main() { int n; char src[3]; printf("\nEnter the number of stacks which you want to move\n"); scanf("%d",&n); printf("\nEnter source name destination name and spare name (only single character per name with no spaces in between eg.abc)\n"); scanf("%s",src); printf("\n\n"); Tower(n,src[0],src[1],src[2]); return 0; }
// Function: main() int main(int argc, char ** argv) { PA_Init(); // Initializes PA_Lib PA_InitVBL(); // Initializes a standard VBL PA_InitText(1,1); Drawable cursor(0,0,0); cursor.Load(0, 0, (void*)pal_cursor, (void*)gfx_cursor, OBJ_SIZE_16X16, 1); setupRotations(); u8 c = 0; u8 x = 0; u8 y = 0; for (y = 0; y != 8; ++y) { for (x = 0; x != 8; ++x) { u16 i = y*8+x; if (grid[i] == 1) { Tower tower = Tower(SPRITE_TOWER_BASE+c, x*16, y*16); tower.Load(0, 1, (void*)pal_tower, (void*)gfx_tower, OBJ_SIZE_16X16, 1); tower_list.push_back(tower); PA_SetSpriteRotEnable(0, tower.sprite, c); ++c; } } } s16 angle = 0; // Infinite loop to keep the program running while (1) { u8 i = 0; for (tlist_it it = tower_list.begin(); it != tower_list.end(); ++it) { angle = (*it).GetAngleTo(cursor); PA_SetRotsetNoZoom(0, i, angle); ++i; } PA_OutputText(1, 0, 0, "Angle: %03d", angle); PA_OutputText(1, 0, 1, "Angle2: %03d", angle); PA_OutputText(1, 0, 2, "Cursor: %03d,%03d", cursor.position.x, cursor.position.y); if (Stylus.Held) { cursor.position.x = Stylus.X; cursor.position.y = Stylus.Y; } else { cursor.position.x += (Pad.Held.Right - Pad.Held.Left); cursor.position.y += (Pad.Held.Down - Pad.Held.Up); } cursor.Draw(); PA_WaitForVBL(); } return 0; } // End of main()
void Position::setPosition (std::string pos) { // convert string to internal representation turn = 0; // clear relevant data bitb.clear(); for(unsigned int i=0; i<squares; i++) { tower[i].clear(); } if (pos != "") { // parse string unsigned int c = 0; unsigned int start = 0; if (pos[0] == '|' || pos[0] == ' ' || pos[0] == '.') { start = 1; c = 1;} // first square empty ? std::string s = ""; for (unsigned int i = start; i < pos.length(); ++i) { if (pos[i] == '|' || pos[i] == ' ' || pos[i] == '.') { if (s.length()) { tower[c] = Tower (s); bitb.bits[tower[c].color()] |= (1<<c); if (tower[c].isOfficer()) bitb.promote(c, tower[c].color()); s = ""; } c ++; if (c>24) { // # squares not jet known :/ todo std::cerr << "Position: \"" << pos << "\" has more than " << squares << " squares " << std::endl; break; } } else { s += pos[i]; } } if (s.length()) { // last square not empty ? tower[c] = Tower (s); bitb.bits[tower[c].color()] |= (1<<c); if (tower[c].isOfficer()) bitb.promote(c, tower[c].color()); } } }
std::string Battle::Tower::GetInfo(const Castle & cstl) { const char* tmpl = _("The %{name} fires with the strength of %{count} Archers"); const char* addn = _("each with a +%{attack} bonus to their attack skill."); std::vector<int> towers; std::string msg; if(cstl.isBuild(BUILD_CASTLE)) { towers.push_back(TWR_CENTER); if(cstl.isBuild(BUILD_LEFTTURRET)) towers.push_back(TWR_LEFT); if(cstl.isBuild(BUILD_RIGHTTURRET)) towers.push_back(TWR_RIGHT); for(std::vector<int>::const_iterator it = towers.begin(); it != towers.end(); ++it) { Tower twr = Tower(cstl, *it); msg.append(tmpl); StringReplace(msg, "%{name}", twr.GetName()); StringReplace(msg, "%{count}", twr.GetCount()); if(twr.GetBonus()) { msg.append(", "); msg.append(addn); StringReplace(msg, "%{attack}", twr.GetBonus()); } else msg.append("."); if((it + 1) != towers.end()) msg.append("\n \n"); } } return msg; }
int main(void) { uchar i; wdt_enable(WDTO_1S); /* If you don't use the watchdog, replace the call above with a wdt_disable(). * On newer devices, the status of the watchdog (on/off, period) is PRESERVED * OVER RESET! */ /* RESET status: all port bits are inputs without pull-up. * That's the way we need D+ and D-. Therefore we don't need any * additional hardware initialization. */ odDebugInit(); DBG1(0x00, 0, 0); /* debug output: main starts */ usbInit(); usbDeviceDisconnect(); /* enforce re-enumeration, do this while interrupts are disabled! */ i = 0; while (--i) { /* fake USB disconnect for > 250 ms */ wdt_reset(); _delay_ms(1); } usbDeviceConnect(); sei(); DBG1(0x01, 0, 0); /* debug output: main loop starts */ InitTower(); for (;;) { /* main event loop */ DBG1(0x02, 0, 0); /* debug output: main loop iterates */ wdt_reset(); usbPoll(); USBDATA = Tower(); } return 0; }
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { POINT mousePos; int dx = 0; int dy = 0; switch( msg ) { case WM_LBUTTONDOWN: if( wParam & MK_LBUTTON ) { SetCapture(hwnd); mOldMousePos.x = ( short )LOWORD(lParam); mOldMousePos.y = ( short )HIWORD(lParam); gui.UpdateMouse(mOldMousePos.x,mOldMousePos.y,true); } return 0; case WM_LBUTTONUP: ReleaseCapture(); return 0; case WM_RBUTTONDOWN: if( wParam & MK_RBUTTON ) { SetCapture(hwnd); mOldMousePos.x = ( short )LOWORD(lParam); mOldMousePos.y = ( short )HIWORD(lParam); POINT d; d.x = ( short )LOWORD(lParam); d.y = ( short )HIWORD(lParam); //qtc.TEST(vp, d, qtc.getBLS(), 5, md3dDevice); if(gui.GetButton(PLACE_TOWER)->GetPressed()) { D3DXVECTOR3 res = qtc.PlaceATower(vp, d); if (res != D3DXVECTOR3(-99,-99,-99)) { mTowers.push_back(Tower()); mTowers.back().init(md3dDevice, D3DXVECTOR3(7.5f, 7.5f, 7.5f), res); newCube = true; nrOfTowers.resize(mTowers.size()); currentTower = (int)nrOfTowers.size()-1; gui.GetButton(PLACE_TOWER)->SetPressed(false); } } //cam.setLens(0.30f*(gameTime.getDeltaTime()*20), (float)SCREEN_WIDTH/SCREEN_HEIGHT, 1.0f, 1000.0f); } return 0; case WM_RBUTTONUP: GetCamera().setLens(0.30f*pi, (float)SCREEN_WIDTH/SCREEN_HEIGHT, 1.0f, 1000.0f); ReleaseCapture(); return 0; case WM_MOUSEMOVE: if( wParam & MK_LBUTTON || wParam & MK_RBUTTON ) { mousePos.x = ( short )LOWORD(lParam); mousePos.y = ( short )HIWORD(lParam); dx = mousePos.x - mOldMousePos.x; dy = mousePos.y - mOldMousePos.y; GetCamera().rotateY( dx * 0.0087266f ); GetCamera().pitch( dy * 0.0087266f ); mOldMousePos = mousePos; } return 0; case WM_KEYDOWN: if(wParam == VK_CONTROL) GetCamera().crouch(); if(wParam == VK_SPACE) { if (!jumping) GetCamera().setJump(GetTime().getGameTime()); jumping = true; } if (GetAsyncKeyState('F') & 0x8000) { if (funRot) funRot = false; else funRot = true; } if (GetAsyncKeyState('R') & 0x8000) { if (grid) grid = false; else grid = true; } if (GetAsyncKeyState('O') & 0x8000) { if(!newCube) { Tower c; mTowers.push_back(c); mTowers.back().init(md3dDevice, D3DXVECTOR3(1.0f, 1.0f, 1.0f), GetCamera().getPos()); newCube = true; nrOfTowers.resize(mTowers.size()); currentTower = (int)nrOfTowers.size()-1; } else newCube = false; } if (GetAsyncKeyState('Z') & 0x8000) { if(newCube) nrOfTowers[currentTower] = 0; else nrOfTowers[0] = 0; } if (GetAsyncKeyState('X') & 0x8000) { if(newCube) nrOfTowers[currentTower] = 3; else nrOfTowers[0] = 3; } if (GetAsyncKeyState('C') & 0x8000) { if(newCube) nrOfTowers[currentTower] = 6; else nrOfTowers[0] = 6; } if (GetAsyncKeyState('Q') & 0x8000) { pWave->CalldmgCalc(1,10000,"Fire"); pWave->CalldmgCalc(0,10000,"Fire"); } return 0; // WM_DESTROY is sent when the window is being destroyed. case WM_DESTROY: DestroyWindow(g_Hwnd); PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, msg, wParam, lParam); }