Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Технические требования




 

Для проведения испытаний программы необходимы следующие ресурсы:

- процессор: Intel(R) Celeron(R) SPU и выше;

- объем оперативной памяти: 2038 Мбайт и выше.

- 32 разрядная операционная система;

- монитор жидкокристаллический для качественного и безопасного для зрения зрительного восприятия отображаемой информации;

- видео карта на 64 Мб и выше.

Для нормальной работы программы должны быть предоставлены следующие условия:

- 5 МБ памяти на жёстком или локальном диске;

- 29336 КБ оперативной памяти;

- разрешение экрана 1280х800;

- качество цветопередачи 32бита и выше.

Программа может использоваться в OC Windows XP и Windows 7. В ОС Windows Vista программа будет работать только в аудио режиме, поэтому для использования на данной операционной системе она не подходит, так как теряется её основная функция – воспроизведение видео.

 

Полное тестирование

ПРИМЕНЕНИЕ

Назначение программы

Как было выше сказано назначение данной программы разнообразить досуг и скоротать время, по сути, у неё нет полезных функций. Однако, то что на первый взгляд может казаться бесполезными на самом деле играет большую роль для общества. Ведь когда человек играет, он отвлекается от мира и конечно же от повседневных рутинных проблем, тем самым сберегает свои нервы и успокаивается. Таким образом, человек способен уберечь своё здоровье.

Условия применения

Справочная система

Справочная система содержит три раздела, которые подразделяются на подразделы.

Раздел 1 содержит:

А) общую информацию о программе, такую как:

- номер версии,

- категория пользователей для которой он передназначен,

- поддерживаемые форматы,

- режимы;

Б) Требования к аппаратным и операционным ресурсам:

- занимаемое место на диске,

- количество оперативной памяти,

- места для установки,

- для каких ос предназначен.

Раздел 2 содержит:

А) Интерфейсную часть, которая включает в себя краткое описание пользовательского интерфейса

Б) Меню

Раздел 3 содержит руководство по использованию, в котором говорится о том, чего не следует делать.

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

 

 

ЗАКЛЮЧЕНИЕ

Листинг программы

#define INITGUID

#include <windows.h>

#include "mDirectX.h"

#include "camera.h"

#include "gui.h"

int score=0;

void NextToFild();

void Shadow()

{

int v=0,nn=20;

// сброс тени

for (int x=0;x<FV;x++)

{

for (int yy=0;yy<FS;yy++)

{

if (fild[x][yy]==3)

fild[x][yy]=0;

}

}

// visota figuri

for (int x=20;x>=0;x--)

{

for (int yy=0;yy<10;yy++)

{

if (fild[x][yy]==2 && v==0)

{

v=x;

break;

}

}

}

//niz teni

for (int ii=0;ii<=2;ii++)

{

for (int xx=v+1;xx<nn;xx++)

{

for (int yy=0;yy<FS;yy++)

{

{

if (fild[v-ii][yy]==2 && fild[xx][yy]==1)

{

nn=xx-1+ii;

}

}

}

}

}

if (nn==20)

nn=19;

//otrisovka teni

for (int st=3;v>=0||st>=0;v--,nn--,st--)

{

for (int yy=0;yy<FS;yy++)

{

if (fild[v][yy]==2 && fild[nn][yy]==0)

fild[nn][yy]=3;

}

}

}

void ResetFild()

{

for (int aa=0;aa<FV-1;aa++)

{

for (int b=0;b<FS;b++)

{

fild[aa][b]=0;

}

}

}

 

void Destroy()

{

int line=0;

for (int x=0;x<20;x++)

{

int sum=0;

for (int y=0;y<10;y++)

{

sum+=fild[x][y];

}

if (sum==10)

{

line++;

for (int v=x;v>=0;v--)

{

for (int s=0;s<10;s++)

{

if (v==0)

{

fild[v][s]=0;

}

else

{

fild[v][s]=fild[v-1][s];

}

}

}

}

 

}

if (line)

{

score+=(line*line)*100;

int speed_old=speed_;

speed_=speed=score/1000;

 

if (speed<1)

speed_=speed=1;

strcpy(scorel,"Очки ");

char str[10];

strcat(scorel,_itoa(score,str,10)); //konvert int to str

D3DXCreateText(pDirect3DDevice, hdc,scorel,0,0.1f,&pText[0],0,0);

strcpy(speedl,"Скорость ");

strcat(speedl,_itoa(speed,str,10)); //konvert int to str

D3DXCreateText(pDirect3DDevice, hdc,speedl,0,0.1f,&pText[1],0,0);

if (speed_>speed_old)

{

PlayMusic(4);

}

else

{

PlayMusic(3);

}

}

 

}

void Next()

{

if (gameOver)

return;

rnd=rand()%9;

switch(rnd)

{

case 0: {

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

next_fild[v][s]=f[v][s];

}

}

break;}

case 1:

case 6: {

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

next_fild[v][s]=f1[v][s];

}

}

break;}

case 2:

case 7: {

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

next_fild[v][s]=f2[v][s];

}

}

break;}

 

case 3:

case 8: {

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

next_fild[v][s]=f3[v][s];

}

}

break;}

 

case 4:

case 9: {

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

next_fild[v][s]=f4[v][s];

}

}

break;}

 

case 5: {

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

next_fild[v][s]=f5[v][s];

}

}

break;}

}

if (rnd>9 || rnd<0)

Next();

 

}

void Start()

{

gameOver=0;

srand(time(0));

// Next;

ResetFild();

NextToFild();

PlayMusic(1);

gomus=1;

}

 

void NextToFild()

{

if (gameOver)

return;

for (int x=0;x<4;x++)

{

for (int y=0;y<4;y++)

{

if (fild[x][y+3] && next_fild[x][y])

//Start();

{

for (int aa=0;aa<FV;aa++)

{

for (int b=0;b<FS;b++)

{

if (fild[aa][b]==2)

fild[aa][b]=1;

}

}

gameOver=1;

speed=speed_=1;

score=0;

}

}

}

for (int x=0;x<4;x++)

{

for (int y=0;y<4;y++)

{

if (next_fild[x][y])

fild[x][y+3]=next_fild[x][y];

}

}

fpos.v=0;

fpos.s=3;

rnd_=rnd;

// if (!UI)

Shadow();

}

void Colision()

{

for (int aa=0;aa<FV;aa++)

{

for (int b=0;b<FS;b++)

{

if (fild[aa][b]==2)

fild[aa][b]=1;

}

}

Destroy();

NextToFild();

Next();

d=0;

speed=speed_;

PlayMusic(5);

}

 

 

void Rotate()

{

if (gameOver)

return;

if (fpos.s<0)

{

if (rnd_==5)

return;

fpos.s=0;

}

if (fpos.s>6)

{

if (rnd_==5)

return;

fpos.s=6;

}

int old_figure[4][4];

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

old_figure[v][s]=fild[v+fpos.v][s+fpos.s];

cur_figure[v][s]=fild[v+fpos.v][s+fpos.s];

}

}

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

if (old_figure[v][s]==2 && old_figure[s][-(v-3)]==1)

{

return;

}

}

}

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

cur_figure[s][-(v-3)]=old_figure[v][s];

}

}

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

if (old_figure[v][s]==2)

old_figure[v][s]=0;

}

}

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

if (cur_figure[v][s]==2)

old_figure[v][s]=cur_figure[v][s];

}

}

for (int v=0;v<4;v++)

{

for (int s=0;s<4;s++)

{

fild[v+fpos.v][s+fpos.s]=old_figure[v][s];

}

}

// if (!UI)

Shadow();

PlayMusic(2);

}

 

 

void FildDown()

{

if(!pause)

if (!UI)

{

{

plav=0;

for (int x=19;x>=0;x--)

{

for (int y=0;y<10;y++)

{

if (fild[x][y]==2)

{

if(x==19 || fild[x+1][y]==1)

{

Colision();

return;

}

}

 

}

}

for (int x=19;x>=0;x--)

{

for (int y=0;y<10;y++)

{

if (fild[x][y]==2)

{

fild[x+1][y]=fild[x][y];

fild[x][y]=0;

}

}

}

fpos.v++;

//PlayMusic(2);

}

}

}

void FildLeft()

{

if (gameOver)

return;

 

for (int x=19;x>=0;x--)

{

for (int y=0;y<10;y++)

{

if (fild[x][y]==2)

{

if(y==0 || fild[x][y-1]==1)

return;

}

}

}

if(plav>1)

{ for (int x=19;x>=0;x--)

{

for (int y=9;y>=0;y--)

{

if (fild[x][y]==2)

{

if(fild[x+1][y-1]==1)

return;

}

}

}

}

for (int x=19;x>=0;x--)

{

for (int y=0;y<10;y++)

{

if (fild[x][y]==2)

{

fild[x][y-1]=fild[x][y];

fild[x][y]=0;

}

}

}

fpos.s--;

// if (!UI)

Shadow();

// PlayMusic(3);

}

void FildRight()

{

if (gameOver)

return;

 

for (int x=19;x>=0;x--)

{

for (int y=9;y>=0;y--)

{

if (fild[x][y]==2)

{

if(y==9 || fild[x][y+1]==1)

return;

}

}

}

if(plav>1)

{ for (int x=19;x>=0;x--)

{

for (int y=9;y>=0;y--)

{

if (fild[x][y]==2)

{

if(fild[x+1][y+1]==1)

return;

}

}

}

}

for (int x=19;x>=0;x--)

{

for (int y=9;y>=0;y--)

{

if (fild[x][y]==2)

{

fild[x][y+1]=fild[x][y];

fild[x][y]=0;

}

}

}

fpos.s++;

// if (!UI)

Shadow();

// PlayMusic(3);

}

 

void Game()

{

if(!pause)

if (!UI)

{

{

temp=clock()-start;

if (clock()-start>CLOCKS_PER_SEC/speed)

{

FildDown();

start =clock();

 

}

if (clock()-start<=CLOCKS_PER_SEC/speed && clock()-start!=0)

{

plav=(clock()-start)/(CLOCKS_PER_SEC/speed/11);

for (int x=19;x>=0;x--)

{

for (int y=0;y<10;y++)

{

if (fild[x][y]==2)

{

if(x==19 || fild[x+1][y]==1)

{

plav=0;

return;

}

}

}

}

}

}

}

}

void RenderingDirect3D()

{

pDirect3DDevice->Clear(0,NULL,D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,D3DCOLOR_XRGB(0,0,255),1.0f,0);

pDirect3DDevice->BeginScene();

if(!gameOver)

Game();

Matrix();

DrawMyMesh();

DrawMyText();

DrawUI();

pDirect3DDevice->EndScene();

pDirect3DDevice->Present(NULL,NULL,NULL,NULL);

 

}

 

LRESULT CALLBACK MainWinProc(HWND hWnd,UINT msg,WPARAM wparam,LPARAM lparam)//функция обработки сообщений

{

switch(msg)

{

case WM_PAINT: //перерисовка окна

{

RenderingDirect3D();

ValidateRect(hWnd,NULL);

break;

}

case WM_DESTROY: // закрытие окна

{

DeleteDirect3D();

PostQuitMessage(0);

return 0;

}

}

return (DefWindowProc(hWnd,msg,wparam,lparam));

}

 

 

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)

{

WNDCLASSEX windowsclass;

 

 

// инициализация класа окна

windowsclass.cbClsExtra = 0;

windowsclass.cbSize = sizeof(windowsclass);

windowsclass.cbWndExtra = 0;

windowsclass.hbrBackground = (HBRUSH)GetStockObject(HOLLOW_BRUSH);

windowsclass.hCursor = LoadCursor(NULL, IDC_ARROW);

windowsclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

windowsclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

windowsclass.hInstance = hInstance;

windowsclass.lpfnWndProc = MainWinProc;

windowsclass.lpszClassName = "windowsclass";

windowsclass.lpszMenuName = NULL;

windowsclass.style = CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;

//Регистрация класа окна

RegisterClassEx(&windowsclass);

//задание стиля окна

hWnd = CreateWindow("windowsclass","iceTetris",WS_OVERLAPPEDWINDOW|WS_VISIBLE,

100,100,608,634,NULL,NULL,hInstance,NULL);

hWndMain=hWnd;

hInstanceMain=hInstance;

GetClientRect(hWnd,&Client);

int nx=608+(600-Client.right);

int ny=634+(600-Client.bottom);

SetWindowPos(hWnd, 0,100,100,nx,ny,NULL);

// показ окна

if (SUCCEEDED(InitialDirect3D(hWnd)))

{

srand(time(0));

// ResetFild();

Next();

// Colision();

// InitialDirectDraw(hWnd, 600, 600);

InitialText();

InitialInput();

InitMusic();

InitialMesh();

IniGUI();

ShowWindow(hWnd, nShowCmd);

UpdateWindow(hWnd);

ZeroMemory(&msg,sizeof(msg));

while(msg.message!=WM_QUIT)

{

 

if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

else

 

RenderingDirect3D();

}

}

 

}


Поделиться:

Дата добавления: 2015-08-05; просмотров: 56; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты