Народ подскажите игра тетрис надо сохранить и загрузить игру. Сохранение идет норм а вот загрузка нет. Я не знаю как надо загрузить циклы.
Код:
case ID_Pause: //пауза
Pause(hwnd);
break;
case ID_Load: //загрузка
if (pause==FALSE)
Pause(hwnd);
// выделение памяти под строку для имени файла
// иниц-ция строки
lstrcpy(filename,"");
// иниц-ция структуры
memset(&ofn, 0, sizeof(ofn));
// установка указателя на буфер для имени файла
ofn.lpstrFile=filename;
// максимальное количество символов в пути
ofn.nMaxFile=100;
// задаем размер структуры
ofn.lStructSize = sizeof(OPENFILENAME);
// вызываем диалог открытия файла
if (GetOpenFileName(&ofn))
{
// открываем файл
hSrc = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
// определяем размер файла
fsize=GetFileSize(hSrc,NULL);
//очищаем массив
memset(pBuffer,0, sizeof(pBuffer));
// читаем строку из файла
ReadFile(hSrc, pBuffer, fsize, &read, NULL);
// закрываем файл
CloseHandle(hSrc);
// удаляем выделенную память
// загружаем очки,жизни и координаты
sscanf(pBuffer,"%d %d %d %d %d %d %d",
&deltax ,
&deltay,
&scores,
&screen[16][18],
&oldscreen[16][18],
&cup[16][18],
&figure[4][4],
&oldfigure[4][4]);
game=TRUE;
MessageBox(NULL, pBuffer, "Загр выполняется правильно", 0);
InvalidateRect(hwnd,NULL,TRUE);
SendMessage(hwnd,WM_COMMAND,ID_Pause,0);
}
break;
case ID_Save: //сохранение
if (game==TRUE)
{
if (pause==FALSE)
Pause(hwnd);
// выделение памяти под строку для имени файла
// инициализация строки
lstrcpy(filename,"");
// иниц-ция структуры
memset(&ofn, 0, sizeof(ofn));
// установка указателя на буфер для имени файла
ofn.lpstrFile=filename;
// максимальное количество символов в пути
ofn.nMaxFile=100;
// задаем размер структуры
ofn.lStructSize = sizeof(OPENFILENAME);
// вызываем диалог сохранения
if (GetSaveFileName(&ofn))
{
// открытие файла для записи
hDest = CreateFile(ofn.lpstrFile, GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
memset(&pBuffer,0, sizeof(pBuffer));
wsprintf(pBuffer,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
deltax ,
deltay,
scores,
// screen[16][18],
//oldscreen[16][18],
cup[16][18],
cup[0][1],cup[0][2],cup[0][3],
figure[0][0], figure[0][1], figure[0][2], figure[0][3], figure[0][4],
figure[1][0], figure[1][1], figure[1][2], figure[1][3], figure[1][4],
figure[2][0], figure[2][1], figure[2][2], figure[2][3], figure[2][4],
figure[3][0], figure[3][1], figure[3][2], figure[3][3], figure[3][4],
figure[4][0], figure[4][1], figure[4][2], figure[4][3], figure[4][4],
//oldfigure[4][4]
);
txt_length=lstrlen(pBuffer);
// запись в файл текста
WriteFile(hDest, pBuffer, txt_length+1, &written, NULL);
/* закрытие файла */
CloseHandle(hDest);
/* удаление динамически созданного элемента*/
}
}