mayashah Ответов: 2

Tic tac toe проблема с функциями


- Эй !! я делаю игру в крестики-нолики с помощью классов, и я полностью покончил с ней, но есть проблема с ней с помощью функции save game и load game я получаю ошибку в save game , я просто хочу сохранить игру в двоичном файле с помощью файла ввода-вывода, и я читал об этом, но я не мог найти достаточно об этом !! я хочу испортить часть вашего драгоценного времени, (не возражайте) !! я застрял в нем, нужна срочная помощь !!вот что я делаю

Что я уже пробовал:

#include<iostream>
#include<fstream>



//#include<cstdlib>
using namespace std;
class tic
{
private:
	static char table[];//static variable initilization require so last me initilize kiya hua hay class say bahar
	int i, choice;//local variables jo code me istimaal hon gay
	char spot;
	static char replay;//same oper wala case
	static int player;//same oper wala case

void board()//board bana rahy hein jahan pey hum isko khelna chahty hein
cout << "\t \t \t \t  Tic Tac Toe\t\t\n\n";
cout << "\t \t \t PLAYER 1(X)  ,  PLAYER 2(O)\n\n";
cout << "\t \t \t " << table[1] << "|" << table[2] << "|" << table[3] << endl;//array ki location zero pay jo value hogi usko insert kar day ga similarly agay bhi

void Save_Game(char board[3][3])
{
    int i;
    FILE *savegame = fopen("save.bin", "w");
    for (i = 0; i < 3; i++)
    {
        fprintf(savegame, "%c %c %c\n", board[i][0], board[i][1], board[i][2]);
    }
    fclose(savegame);
    cout << "game saved";
}

int win()
{
    if (table[1] == table[2] && table[2] == table[3])
        return 1;

    else if (table[4] == table[5] && table[5] == table[6])
        return 1;
//////////

2 Ответов

Рейтинг:
1

Patrice T

Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


mayashah

у вас есть только один ответ на каждую проблему !! не дразните себя, публикуя такие вещи !!

Рейтинг:
0

OriginalGriff

Начните с изучения файла, который вы создали в текстовом или шестнадцатеричном редакторе, и посмотрите, что именно вы написали.
Если повезет, это должно выглядеть так:

X O .
O X O
X . O
Но если это не так, то вам нужно посмотреть, почему именно.
Следующее, что нужно сделать, это посмотреть, как Вы читаете файл обратно: вы не показываете этого, но помните, что, поскольку вы пишете пробелы и новые строки в файл, они будут присутствовать, когда вы читаете файл обратно, и вам придется удалить их и справиться с ними.

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


mayashah

для сохранения что я должен сделать в функции сохранения !!!

OriginalGriff

Я не знаю - у вас есть код, который выглядит так, как будто он работает, так что же он делает, чего вы не ожидали, или не делает того, что вы сделали?

mayashah

о, Извините, я хочу спросить, как я могу его загрузить ?? я имею в виду, можете ли вы направить меня к функции загрузки??

OriginalGriff

Вы смотрели на функцию fscanf?
Но я? Я бы сохранил его без пробелов или новых строк, чтобы сделать его проще.

mayashah

как ты мог это облегчить мне с сохранением и загрузкой !!!

mayashah

я застрял в нем как минимум на 21 день !! мне нужно какое-то серьезное решение !! и, честно говоря, я хочу начать все сначала !!

OriginalGriff

Тогда делай, если хочешь.
Мы не собираемся передавать вам код-так вы ничего не узнаете, особенно если застряли здесь на пару недель.
Что вы пробовали? Вы пробовали читать что-нибудь из файла с помощью fscanf? Если да, то что произошло? Если нет, то почему?

mayashah

о чем ты хочешь, чтобы я сейчас читал ?!
я не спрашиваю о раздаче кода держите его !! мне нужна только некоторая координация !!

OriginalGriff

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

mayashah

да я понимаю это я сообщу вам после того как сделаю это