// 10 minutes //import SDL; #include int main() { SDL_Init(SDL_INIT_VIDEO); SDL_Surface* s = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE); int x1, y1, x2, y2, bx, by, bsx, bsy; int i, j; int running = 1; int winner = 0; y2 = y1 = 240; bx = 320; by = 240; bsx = 5; bsy = 5; while (running) { SDL_Event e; SDL_PumpEvents(); Uint8* ks = SDL_GetKeyState(0); if (ks[SDLK_ESCAPE]) { running = 0; } if (ks[SDLK_UP]) { y1 -= 3; } else if (ks[SDLK_DOWN]) { y1 += 3; } if (ks[SDLK_k]) { y2 -= 3; } else if (ks[SDLK_j]) { y2 += 3; } // MOVE bx += bsx; by += bsy; if (bx < 0) { int d = by - y1; if (d > 20 || d < -20) { running = 0; winner = 2; } else { bsx = -bsx; bx += bsx; } } if (bx > 640) { int d = by - y2; if (d > 20 || d < -20) { running = 0; winner = 1; } else { bsx = -bsx; bx += bsx; } } if (by < 0 || by > 480) { bsy = -bsy; by += bsy; } // draw SDL_Rect r; r.w = 640; r.h = 480; r.x = 0; r.y = 0; SDL_FillRect(s, &r, SDL_MapRGB(s->format, 0, 0, 0)); r.w = 10; r.h = 40; r.x = 0; r.y = y1-20; SDL_FillRect(s, &r, SDL_MapRGB(s->format, 255, 255, 255)); r.w = 10; r.h = 40; r.x = 630; r.y = y2-20; SDL_FillRect(s, &r, SDL_MapRGB(s->format, 255, 255, 255)); r.w = 6; r.h = 6; r.x = bx-3; r.y = by-3; SDL_FillRect(s, &r, SDL_MapRGB(s->format, 255, 255, 255)); SDL_Flip(s); SDL_Delay(16); } SDL_Quit(); return 0; }