}
void ShowPlayer (int x, int y) //рисование игрока
{
setcolor (7);
ellipse (x,y-6,20,20,10,14);
line (x-10,y-6,x-5,y+15);
line (x+8,y-4,x+5,y+15);
line (x-5,y+15,x-3,y+10);
line (x+5,y+15,x+3,y+10);
line (x-3,y+10,x,y+20);
line (x+3,y+10,x,y+20);
setfillstyle (1,7);
floodfill (x,y-6,7);
floodfill (x,y+10,7);
setcolor (14);
ellipse (x-4,y-11,20,20,3,4);
ellipse (x+4,y-11,20,20,3,4);
setfillstyle (1,14);
floodfill (x-4,y-11,14);
floodfill (x+4,y-11,14);
setcolor (12);
circle (x-4,y-10,1);
circle (x+4,y-10,1);
setfillstyle (1,12);
floodfill (x-4,y-10,12);
floodfill (x+4,y-10,12);
setcolor (6);
arc (x,y-6,210,330,7);
line (x-7,y-2,x+7,y-2);
}
void HidePlayer (int x, int y) //закрашивание игро
{
setcolor (0);
ellipse (x,y-6,20,20,10,14);
line (x-10,y-6,x-5,y+15);
line (x+8,y-4,x+5,y+15);
line (x-5,y+15,x-3,y+10);
line (x+5,y+15,x+3,y+10);
line (x-3,y+10,x,y+20);
line (x+3,y+10,x,y+20);
setfillstyle (1,0);
floodfill (x,y-6,0);
floodfill (x,y+10,0);
setcolor (0);
ellipse (x-4,y-11,20,20,3,4);
ellipse (x+4,y-11,20,20,3,4);
setfillstyle (1,0);
floodfill (x-4,y-11,0);
floodfill (x+4,y-11,0);
setcolor (0);
circle (x-4,y-10,1);
circle (x+4,y-10,1);
setfillstyle (1,0);
floodfill (x-4,y-10,0);
floodfill (x+4,y-10,0);
setcolor (0);
arc (x,y-6,210,330,7);
line (x-7,y-2,x+7,y-2);
}
#include "graphics.h"
#include<stdio.h>
#include "function.h"
#include<time.h>
#include<string.h>
#include<stdlib.h>
#include <process.h>
class User_Menu //описание пользователького меню
{
public:
int yc, xc, key;
User_Menu ()
{
yc=110; xc=205;
key=0;
}
int UserMenu ()
{
while (1)
{
CurShow (xc,yc);
if (kbhit())
{
key=getch();
switch (key)
{
case KEY_UP:
CurHide (xc,yc);
yc-=90;
if (yc<110)
yc=380;
CurShow(xc,yc);
break;
case KEY_DOWN:
CurHide (xc,yc);
yc+=90;
if (yc>380)
yc=110;
CurShow (xc, yc);
break;
case 13:
if (yc==110)
{
cleardevice();
return 0;
}
if (yc==200)
{
cleardevice();
return 1;
}
if (yc==290)
{
cleardevice();
return 2;
}
if (yc==380)
exit (0);
break;
default: break;
}
}
}
}
};
class Best //создание таблицы лучших игроков
{
public:
struct Rank
{
char Name[10];
float Time;
}
Spisok[10], tmp, rex;
int key;
FILE *fin;
Best()
{
key=0;
}
void OpenFileRank(char ch[4]) //открытие файла, если его нет, то создаем
{
int j=0;
fin=fopen("Result.dat",ch);
if(fin==NULL)
{
CreateFileRank();
}
else
{
while(j<10)
{
fread(&Spisok[j],sizeof(Rank),1,fin);
j++;
}
}
}
void ReadFileRank(void) //показывать список лучших
{
int i=9, y=105, j=0, count=1;
char str[20]="", buff[20]="";
OpenFileRank("rb");
cleardevice();
setcolor (3);
settextstyle( DEFAULT_FONT, HORIZ_DIR, 30 );
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy( 320, 20, "Таблица рекордов" );
settextstyle( DEFAULT_FONT, HORIZ_DIR, 20 );
outtextxy( 155, 70, "Место" );
outtextxy( 300, 70, "Имя игрока" );
outtextxy( 470, 70, "Время" );
setcolor (13);
rectangle (120,50,520,420);
line (190,50,190,420);
line (430,50,430,420);
for (int i=0; i<10; i++)
{
line (120,90+33*i,520,90+33*i);
}
while(j<10)
{
fread(&Spisok[j],sizeof(Rank),1,fin);
outtextxy(155,y,itoa(count,str,10));
outtextxy(300,y,Spisok[j].Name);
outtextxy(470,y,itoa(Spisok[j].Time,str,10));
i--;
y+=33;
j++;
count++;
}
key=0;
while(key!=27)
key=getch();
fclose(fin);
}
void AddFileRank(void) //записывает в файл список лучших
{
int i=0;
OpenFileRank("wb");
while(i<10)
{
fwrite(&Spisok[i],sizeof(Rank),1,fin);
i++;
}
fclose(fin);
}
void CreateFileRank(void) //создает файл
{
sleep(200);
int i=9;
OpenFileRank("wb");
while(i>=0)
{
strcpy(Spisok[i].Name,"gamer");
Spisok[i].Time=0;
fwrite(&Spisok[i],sizeof(Rank),1,fin);
i--;
}
fclose(fin);
}
void AddNewUser(float time) //добавление нового пользователя в список лучших
{
this->OpenFileRank("rb");
fclose(fin);
int i=0, j;
int k;
char ch;
char us_name[6]="";
cleardevice();
setcolor(3);
sleep(200);
settextstyle( TRIPLEX_FONT, HORIZ_DIR, 32 );
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(getmaxx()/2,getmaxy()/3,"Введите Ваше имя:");
do
{
ch=k=getch();
if(ch>='a'&&ch<='z')
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.