Компьютерная реализация настольного тенниса

Автор: Пользователь скрыл имя, 18 Октября 2011 в 21:04, курсовая работа

Описание работы

Целью данного проекта является создание абстрактной версии настольного тенниса. Эта программа предназначена для отдыха, расслабления и хорошего времяпровождения. Данная работа отражает процесс разработки программного продукта и состоит из пяти разделов, содержащих необходимую и достаточную информацию по организации и эксплуатации программного приложения.

Работа содержит 1 файл

ПЗ.doc

— 282.50 Кб (Скачать)

hdcMem1 = CreateCompatibleDC(hdc);

hbmMem1 = CreateCompatibleBitmap(hdc, rect.right, rect.bottom);

hOld1   = SelectObject(hdcMem1, hbmMem1);

static int i,j;

LoadSkin(hdcMem, "Поле.bmp",0,0,SRCCOPY);

LoadSkin(hdcMem1, "Поле.bmp",0,0,SRCCOPY);   

case WM_MOUSEMOVE :  

brdx = LOWORD (lParam);

return 0;

case WM_TIMER :

hdc = GetDC (hwnd) ;  

SelectObject(hdcMem,GetStockObject(BLACK_BRUSH));

SelectObject(hdcMem,GetStockObject(BLACK_PEN));

Rectangle(hdcMem,ball.xold,ball.yold,ball.xold+25,ball.yold+25);

LoadSkin(hdcMem, "Поле.bmp",0,0,SRCCOPY);

BitBlt(hdcMem,ball.xold,ball.yold,ball.d,ball.d,hdcMem1,ball.xold,ball.yold,SRCCOPY);

NewBrush = CreateSolidBrush(RGB(255, 255, 0));

SelectObject(hdcMem, NewBrush);

Ellipse(hdcMem,ball.x,ball.y,ball.x+ball.d,ball.y+ball.d);

ball.xold = ball.x;

ball.yold = ball.y;

ball.x+=ball.spx;

ball.y+=ball.spy;

srand(time(NULL));

brdxC = ball.x+40-rand()%170;

LoadSkin(hdcMem, "Ракетка.bmp",brdxC,0,SRCCOPY);

LoadSkin(hdcMem, "Ракетка.bmp",brdx,rect.bottom-20,SRCCOPY);

GetClientRect (hwnd, &rect) ;

if ((ball.y+ball.spy+ball.d>=rect.bottom-20)&&(ball.x+ball.d>brdx)&&(ball.x<brdx+130))

{  

ball.spx = ((ball.x+ball.d/2-brdx-75)/10);

ball.spy*=-1;

ball.y = rect.bottom-21-ball.d;

};

if ((ball.y+ball.spy<=20)&&(ball.x+ball.d>brdxC)&&(ball.x<brdxC+130))

{  

ball.spx = ((ball.x+ball.d/2-brdxC-75)/10);

ball.spy*=-1;

ball.y = 21;

};  

if ((ball.x+ball.d+ball.spx>rect.right)||(ball.x+ball.spx<0))

{

ball.spx*=-1;

}

if (ball.y+ball.spy<rect.top)

{  

++n;

int i,j;

char b[3];

char s[11]="Счёт";

itoa(k,b,10);

s[4] = ' ';

for(i=5,j=0;i<7,j<2;i++,j++)

s[i]=b[j];

s[6] = ' ';

s[7]=':';

s[8] = ' ';

itoa(n,b,10);

for(i=8,j=0;i<10,j<2;i++,j++)

s[i]=b[j];

s[10]='\0';

SetWindowText(hwnd,s);

ball.x = 100;

ball.y = 100;

ball.spx=3;

ball.spy=3;

if(n>=5)

{

KillTimer(hwnd,TIMER_);

SelectObject(hdcMem, hOld); 

DeleteObject(hbmMem);

DeleteObject(hbmMem1);

DeleteDC    (hdcMem);

DeleteDC    (hdcMem1);

MessageBox(hwnd,"ВЫ ВЫИГРАЛИ","ВЫ ВЫИГРАЛИ",NULL);

DestroyWindow(hwnd);

return 0;

}

}

if (ball.y+ball.d>=rect.bottom)    {  

k++;

int i,j;

char b[3];

char s[11]="Счёт";

itoa(k,b,10);

s[4] = ' ';

for(i=5,j=0;i<7,j<2;i++,j++)

s[i]=b[j];

s[6] = ' ';

s[7]=':';

s[8] = ' ';

itoa(n,b,10);

for(i=8,j=0;i<10,j<2;i++,j++)

s[i]=b[j];

s[10]='\0';

SetWindowText(hwnd,s);

ball.x = 100;

ball.y = 100; 

if(k>=5)

{

KillTimer(hwnd,TIMER_);

SelectObject(hdcMem, hOld); 

DeleteObject(hbmMem);

DeleteObject(hbmMem1);

DeleteDC    (hdcMem);

DeleteDC    (hdcMem1);

MessageBox(hwnd,"ВЫ  ПРОИГРАЛИ","ВЫ ПРОИГРАЛИ",NULL);

DestroyWindow(hwnd);

return 0;

}

}

BitBlt(hdc, 0,0, rect.right, rect.bottom, hdcMem, 0, 0, SRCCOPY);

DeleteDC    (hdc);

return 0;

case WM_PAINT :

hdc = BeginPaint (hwnd, &ps) ;

EndPaint (hwnd, &ps) ;

return 0 ;

case WM_DESTROY :

SelectObject(hdcMem, hOld); 

DeleteObject(hbmMem);

DeleteObject(hbmMem1);

DeleteDC    (hdcMem);

DeleteDC    (hdcMem1); 

PostQuitMessage (0) ;

return 0 ; 

} 

return DefWindowProc (hwnd, iMsg, wParam, lParam) ;

     } 
 
 
 
 
 
 
 
 

Приложение  Б

Диаграмма деятельности 
 
 
 

 
 
 
 
 
 
 
 
 
 

Приложение  В

Диаграмма вариантов использования 
 
 

Информация о работе Компьютерная реализация настольного тенниса