int main(int argc, char **argv) { if (argc == 1) { LApp Life(150, 150, "23/3"); return Life.Execute(); } else if (argc == 4) { int x = atoi(argv[1]); int y = atoi(argv[2]); LApp Life(x, y, argv[3]); return Life.Execute(); } else { LApp Life(150, 150, argv[1]); return Life.Execute(); } }
int main(int argc,char *argv[]) { FILE *f; if(argc>=2) { f=fopen(argv[1],"r"); if(f==NULL) { perror(argv[1]); return(1); } Load(f); fclose(f); } else { f=fopen("field.lif","r"); if(f!=NULL) { Load(f); fclose(f); } } OpenInterface(); OwInitialize(root_pal); ShowMouse(TRUE); SetEventMask(KEYBOARD_EVENTS|MOUSE_EVENTS); OwCreate(&StatusWin,0,DOWN,1,1,status_pal); OwCreate(&ReadLine,MIDDLE,MIDDLE+5,60,4,readline_pal); Life(); OwExit(); CloseInterface(); return(0); }
// ------------------------------------------------------------------------------------------------ Uint32 ProjectileBase :: WriteToPacket(Uint32 dataWritePos, Uint8 data[]) { Uint32 sendId = Id(); ProjectileType sendType = Type(); Vector2df sendPos = Pos(); Uint32 sendHeadingDeg = HeadingDeg(); float sendSpeed = Speed(); Uint32 sendOwnerPlayerId = OwnerPlayerId(); float sendLife = Life(); Uint32 sendHealth = Health(); bool sendIsMoving = IsMoving(); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_ID], &sendId, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_TYPE], &sendType, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_POSX], &sendPos.x, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_POSY], &sendPos.y, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_HEADING], &sendHeadingDeg, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_SPEED], &sendSpeed, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_LIFE], &sendLife, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_HEALTH], &sendHealth, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_PLAYER_ID], &sendOwnerPlayerId, 4); memcpy(&data[dataWritePos + PACKET_WRITE_PROJECTILE_ISMOVING], &sendIsMoving, 1); return PACKET_WRITE_PROJECTILE_LENGTH; } // ----------------------------------------------------------------------------------------------
int main() { //Sets window sfw::initContext(scrnWidth, scrnHeight, "Pong"); while (sfw::stepContext()) { Collision(); Life(); //player one sfw::drawLine(5, plrOneP, 5, plrOneP + plrHeight); if (sfw::getKey('q')) plrOneP -= plrSpeed * sfw::getDeltaTime(); if (sfw::getKey('a')) plrOneP += plrSpeed * sfw::getDeltaTime(); if (plrOneP < 0) plrOneP = 0; if (plrOneP > scrnHeight - plrHeight) plrOneP = scrnHeight - plrHeight; //player two sfw::drawLine(795, plrTwoP, 795, plrTwoP + plrHeight); if (sfw::getKey('p')) plrTwoP -= plrSpeed * sfw::getDeltaTime(); if (sfw::getKey(';')) plrTwoP += plrSpeed * sfw::getDeltaTime(); if (plrTwoP < 0) plrTwoP = 0; if (plrTwoP > scrnHeight - plrHeight) plrTwoP = scrnHeight - plrHeight; //ball xpos += xvel * sfw::getDeltaTime(); ypos += yvel * sfw::getDeltaTime(); sfw::drawCircle(xpos, ypos, radius); delay--; if (delay == 0) { xvel = speed; yvel = speed + 50; } } sfw::termContext(); }
//----------------------------------------------------------------------------- // CGameApp Member Functions //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Name : CGameApp () (Constructor) // Desc : CGameApp Class Constructor //----------------------------------------------------------------------------- CGameApp::CGameApp() { // Reset / Clear all required values m_hWnd = NULL; m_hIcon = NULL; m_hMenu = NULL; m_pBBuffer = NULL; m_LastFrameRate = 0; m_fTimer = 0; countGameOver = 0; FollowPlayer = true; GameOver = false; BricksExist = false; UnstoppableBall = false; LevelChange = false; MouseOrKeyboard = false; StickyBar = false; ShrinkBar = false; MoveBall = false; StartLoad = false; SlowMouse = false; Score(); Life(); }
int main(int argc, char **argv) { int rank, size, m, n, local_m, local_n, last_add; int play; char file[20]; int Recv_size, Send_size;//размеры принимаемых и отправляемых сообщений int Gens;//количество поколений int dst, src, tag; int *Local_World, *Global_World, *Tmp_Buf; int i,j,k,l; MPI_Status status; // подключение mpi MPI_Init(&argc, &argv); // Узнаем ранк процессора и количество процессоров MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); Get_Data(&m,&n,&Gens,rank);//считываем входные данные (размеры игрового поля m - количество строк, n - столбцы) if(rank==0) { Global_World=Mem_Alloc(m+2,n+2);//выделение памяти под всю таблицу Init_World(Global_World,"input.txt", m, n);//заполнение таблицы //Draw_World("test1.txt",Global_World,m+2,n+2); Distrib(Global_World,m,n,size);//рассылка каждому процессору своей рабочей области (кроме нулевого естественно) local_n=n/size+2; local_m=m+2; Local_World=Mem_Alloc(local_m,local_n); for(i=0;i<local_m;i++) for(j=0;j<local_n;j++) Local_World[i*local_n+j]=Global_World[i*(n+2)+j]; //Draw_World("test2.txt",Local_World,local_m,local_n); for(k=0;k<Gens;k++) { play=1; for(l=1;l<size;l++) MPI_Send(&play,1,MPI_INT,l,l,MPI_COMM_WORLD); Life(Local_World,local_m,local_n); //Draw_World("test3.txt",Local_World,local_m,local_n); Tmp_Buf=Mem_Alloc(local_m,1);//выделение памяти под массив для обменов Send_size=local_m; Recv_size=local_m; /* прием последнего столбца с последнего процессора на 0 */ Receive(&src,&tag,size-1,0); MPI_Recv(Tmp_Buf,Recv_size,MPI_INT,src,tag,MPI_COMM_WORLD,&status); for(i=0;i<local_m;i++) Local_World[i*local_n]=Tmp_Buf[i]; /* -------------------------------------------------------- */ /* отправка последнего столбца из 0 процессора на 1 */ for(i=0;i<local_m;i++) Tmp_Buf[i]=Local_World[i*local_n+local_n-2]; Send(&dst,&tag,1,0); MPI_Send(Tmp_Buf,Send_size,MPI_INT,dst,tag,MPI_COMM_WORLD); /* -------------------------------------------------------- */ /* прием первого столбца с 1 процессора на 0 */ Receive(&src,&tag,1,0); MPI_Recv(Tmp_Buf,Recv_size,MPI_INT,src,tag,MPI_COMM_WORLD,&status); for(i=0;i<local_m;i++) Local_World[i*local_n+local_n-1]=Tmp_Buf[i]; /* -------------------------------------------------------- */ /* отправка 1 столбца в 0 процессоре на последний процессор */ for(i=0;i<local_m;i++) Tmp_Buf[i]=Local_World[i*local_n+1]; Tmp_Buf[0]=Local_World[0]; //возьня с уголками Tmp_Buf[local_m-1]=Local_World[(local_m-1)*local_n]; Send(&dst,&tag,size-1,0); MPI_Send(Tmp_Buf,Send_size,MPI_INT,dst,tag,MPI_COMM_WORLD); /* -------------------------------------------------------- */ free(Tmp_Buf); } play=0; for(l=1;l<size;l++)//рассылка этого флага остальным процессорам { Send(&dst,&tag,l,l); MPI_Send(&play,1,MPI_INT,dst,tag,MPI_COMM_WORLD); } for(i=0;i<local_m;i++) for(j=0;j<local_n;j++) Global_World[i*(n+2)+j]=Local_World[i*local_n+j]; free(Local_World); //Draw_World("test_f.txt",Global_World,m+2,n+2); for(k=1;k<size;k++)//прием с каждого процессора соответствуещей части от всего игрового поля { if(k==size-1) last_add=n%size; else last_add=0; local_n+=last_add; Local_World=Mem_Alloc(local_m,local_n); Recv_size=local_m*local_n; Receive(&src,&tag,k,k+1); MPI_Recv(Local_World,Recv_size,MPI_INT,src,tag,MPI_COMM_WORLD,&status); for(i=0;i<local_m;i++) for(j=0;j<local_n;j++) Global_World[i*(n+2)+(j+(local_n-2)*k)]=Local_World[i*local_n+j]; free(Local_World); } Draw_World("test_final.txt",Global_World,m+2,n+2); free(Global_World); } else { local_m=m+2; if(rank!=size-1) local_n=n/size+2; else local_n=n/size+2+n%size; Recv_size=local_m*local_n; Local_World=Mem_Alloc(local_m,local_n); Receive(&src,&tag,0,rank); MPI_Recv(Local_World,Recv_size,MPI_INT,src,tag,MPI_COMM_WORLD,&status);//прием соответствующей части от всего игрового поля //Draw_World("testiyuiasdfhjas.txt",Local_World,local_m,local_n); Tmp_Buf=Mem_Alloc(local_m,1); Recv_size=local_m; Send_size=local_m; Receive(&src,&tag,0,rank); MPI_Recv(&play,1,MPI_INT,src,tag,MPI_COMM_WORLD,&status);//прием флага play while(play) { Life(Local_World,local_m,local_n); //myprint("test4.txt",play); if(rank>0 && rank<size-1) { /* прием последнего столбца с предыдущего процессора на текущий */ Receive(&src,&tag,rank-1,0); MPI_Recv(Tmp_Buf,Recv_size,MPI_INT,src,tag,MPI_COMM_WORLD,&status); for(i=0;i<local_m;i++) Local_World[i*local_n]=Tmp_Buf[i]; /* -------------------------------------------------------- */ /* отправка последнего столбца из текущего процессора на следующий */ for(i=0;i<local_m;i++) Tmp_Buf[i]=Local_World[i*local_n+local_n-2]; Send(&dst,&tag,rank+1,0); MPI_Send(Tmp_Buf,Send_size,MPI_INT,dst,tag,MPI_COMM_WORLD); /* -------------------------------------------------------- */ /* прием первого столбца со следующего процессора на текущий */ Receive(&src,&tag,rank+1,0); MPI_Recv(Tmp_Buf,Recv_size,MPI_INT,src,tag,MPI_COMM_WORLD,&status); for(i=0;i<local_m;i++) Local_World[i*local_n+local_n-1]=Tmp_Buf[i]; /* -------------------------------------------------------- */ /* отправка первого столбца из текущего процессора на предыдущий */ for(i=0;i<local_m;i++) Tmp_Buf[i]=Local_World[i*local_n+1]; Send(&dst,&tag,rank-1,0); MPI_Send(Tmp_Buf,Send_size,MPI_INT,dst,tag,MPI_COMM_WORLD); /* -------------------------------------------------------- */ } if(rank==size-1) { /* отправка последнего столбца из последнего процессора на 0 */ for(i=0;i<local_m;i++) Tmp_Buf[i]=Local_World[i*local_n+local_n-2]; Tmp_Buf[0]=Local_World[local_n-1]; Tmp_Buf[local_m-1]=Local_World[(local_m-1)*local_n+(local_n-1)]; Send(&dst,&tag,0,0); MPI_Send(Tmp_Buf,Send_size,MPI_INT,dst,tag,MPI_COMM_WORLD); /* -------------------------------------------------------- */ /* прием последнего столбца с предпоследнего процессора на последний (текущий) */ Receive(&src,&tag,rank-1,0); MPI_Recv(Tmp_Buf,Recv_size,MPI_INT,src,tag,MPI_COMM_WORLD,&status); for(i=0;i<local_m;i++) Local_World[i*local_n]=Tmp_Buf[i]; /* -------------------------------------------------------- */ /* отправка первого столбца из последнего процессора на предпоследний */ for(i=0;i<local_m;i++) Tmp_Buf[i]=Local_World[i*local_n+1]; Send(&dst,&tag,rank-1,0); MPI_Send(Tmp_Buf,Send_size,MPI_INT,dst,tag,MPI_COMM_WORLD); /* -------------------------------------------------------- */ /* прием первого столбца с 0 процессора на последний */ Receive(&src,&tag,0,0); MPI_Recv(Tmp_Buf,Recv_size,MPI_INT,src,tag,MPI_COMM_WORLD,&status); for(i=0;i<local_m;i++) Local_World[i*local_n+local_n-1]=Tmp_Buf[i]; /* -------------------------------------------------------- */ } Receive(&src,&tag,0,rank); MPI_Recv(&play,1,MPI_INT,src,tag,MPI_COMM_WORLD,&status);//прием флага play } //Draw_World("test_piska.txt",Local_World,local_m,local_n); Send_size=local_n*local_m; Send(&dst,&tag,0,rank+1); MPI_Send(Local_World,Send_size,MPI_INT,dst,tag,MPI_COMM_WORLD);//отправка соответствующей части на 0 процессор free(Tmp_Buf); } MPI_Finalize(); return 0; }
int main(int argc, char *argv[]) { SDL_Event event; bool done = false; float lastFrameTicks = 0.0f; float ball_angle = 0.0f; srand(time(NULL)); Matrix projectionMatrix; Matrix viewMatrix; Setup(&displayWindow, &projectionMatrix); std::vector<Entity*> entities; std::vector<DrawSpriteText> text; std::vector<Entity*> enemy_bullets; std::vector<DrawSpriteText> title_text; GLuint space_sheet = LoadTexture("sheet.png", GL_RGBA); GLuint fontsheet = LoadTexture("font1.png", GL_RGBA); GLuint bg = LoadTexture("darkPurple.png", GL_RGB); Entity* newEnt; for (size_t x = 0; x < 11; ++x){ for (size_t y = 0; y < 4; ++y){ switch (y){ case 0: newEnt = new Entity(space_sheet, 1024.0f, 423.0f, 728.0f, 93.0f, 84.0f, 0.5f); break; case 1: newEnt = new Entity(space_sheet, 1024.0f, 425.0f, 468.0f, 93.0f, 84.0f, 0.5f); break; default: newEnt = new Entity(space_sheet, 1024.0f, 425.0f, 384.0f, 93.0f, 84.0f, 0.5f); break; } newEnt->x = (-6.22 + newEnt->width/2 * 11) + (x * (newEnt->width + 0.15)); newEnt->y = ((3.5 - newEnt->height * 2) - newEnt->height/2 ) - (y * (newEnt->height + 0.2)); entities.push_back(newEnt); } } for (size_t i = 0; i < entities.size(); ++i){ points.push_back(std::make_pair(entities[i]->x, entities[i]->y)); } Entity player(space_sheet, 1024.0f, 211.0f, 941.0f, 99.0f, 75.0f, 0.5); player.y = -3.5 + 0.1 + player.height/2; Entity player_bullet(space_sheet, 1024.0f, 843.0f, 789.0f, 13.0f, 57.0f, 0.5); player_bullet.x = 7.0; for (size_t i = 0; i < ENEMY_BULLETS; ++i){ newEnt = new Entity(space_sheet, 1024.0f, 843.0f, 789.0f, 13.0f, 57.0f, 0.5); newEnt->x = 7.0; enemy_bullets.push_back(newEnt); } Entity explosion(space_sheet, 1024.0f, 737.0f, 613.0f, 37.0f, 37.0f, 0.5); explosion.x = 7.0; DrawSpriteText Life(fontsheet, "LIFE", 0.5, 0); Life.y = 3.0f; Life.x = 1.0f; text.push_back(Life); for (size_t i = 0; i < MAX_LIVES; ++i){ newEnt = new Entity(space_sheet, 1024.0f, 211.0f, 941.0f, 99.0f, 75.0f, 0.5); newEnt->y = 3.0f; newEnt->x = 1.2f + newEnt->width*3 + ((newEnt->width + 0.1)*i); entities.push_back(newEnt); } DrawSpriteText Title(fontsheet, "Press Enter to Start", 0.5, 0); Title.x = -4.7; title_text.push_back(Title); ShaderProgram program(RESOURCE_FOLDER"vertex_textured.glsl", RESOURCE_FOLDER"fragment_textured.glsl"); glUseProgram(program.programID); while (!done) { float ticks = (float)SDL_GetTicks() / 1000.0f; float elapsed = ticks - lastFrameTicks; lastFrameTicks = ticks; float fixedElapsed = elapsed; program.setProjectionMatrix(projectionMatrix); program.setViewMatrix(viewMatrix); switch (state){ case(STATE_TITLE) : TitleProcessEvents(&event,&done); TitleRender(&program,title_text); break; case(STATE_GAME): GameProcessEvents(&event, &done, elapsed, entities, player_bullet, player); if (fixedElapsed > FIXED_TIMESTEP * MAX_TIMESTEPS){ fixedElapsed = FIXED_TIMESTEP * MAX_TIMESTEPS; } while (fixedElapsed >= FIXED_TIMESTEP){ fixedElapsed -= FIXED_TIMESTEP; GameUpdate(FIXED_TIMESTEP, entities, enemy_bullets, player_bullet, explosion, player); } GameUpdate(fixedElapsed, entities, enemy_bullets, player_bullet, explosion, player); GameRender(&program, entities, enemy_bullets, text, player_bullet, explosion, player); break; } } for (size_t i = 0; i < entities.size(); ++i){ delete entities[i]; } SDL_Quit(); return 0; }
void ShootPlant::ShowDetailsAndEffects(std::ostream& os) const { os << Name() << " $" << Cost() << " HP: " << Life() << " - gives " << damage_ << " damage points"; }
void ShootPlant::Print(std::ostream& os) const { os << Name() << " HP: " << Life(); }