Jump to content
Mata998

Jogo de Tabuleiro

Recommended Posts

Mata998

Tenho um jogo de tabuleiro para desenvolver em c++,um dos objetivos que tenho é guardar o estado do tabuleiro, estado esse que corresponde à ultima jogada efetuada pelo jogador na ultima vez que jogou, (sem conteudo grafico) através de uma matriz, num ficheiro ".txt".

Alguem me pode dar uma ajuda?

Share this post


Link to post
Share on other sites
HappyHippyHippo
1 hour ago, Mata998 said:

Tenho um jogo de tabuleiro para desenvolver em c++,um dos objetivos que tenho é guardar o estado do tabuleiro, estado esse que corresponde à ultima jogada efetuada pelo jogador na ultima vez que jogou, (sem conteudo grafico) através de uma matriz, num ficheiro ".txt".

Alguem me pode dar uma ajuda?

claro, podes ser mais concreto na dúvida ? da forma como o tópico é apresentado, dá a entender que pretendes que alguem faça o código, o que acho que não deve ser isso que pretendes.

por isso, peço :

- como pensas resolver o problema ?

- o que sabes fazer desse método que referiste ?

- o que não sabes fazer desse método que referiste ?

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Mata998
40 minutes ago, HappyHippyHippo said:

claro, podes ser mais concreto na dúvida ? da forma como o tópico é apresentado, dá a entender que pretendes que alguem faça o código, o que acho que não deve ser isso que pretendes.

por isso, peço :

- como pensas resolver o problema ?

- o que sabes fazer desse método que referiste ?

- o que não sabes fazer desse método que referiste ?

Para resolver o problema em primeiro lugar sei que tenho que criar uma função-membro,onde nela vou implementar um método que permita guardar o tabuleiro do jogo assim que o jogador faça uma jogada, isto é, ele terá de guardar cada jogada realizada pelo jogador.

Portanto,vou precisar de utilizar Ficheiros como método para imprimir a matriz do tabuleiro(sob forma de characteres) num ficheiro ".txt".

A minha duvida mesmo é, nao saber como terei de proceder em termos de código de forma a que a matriz fique salva no tal ficheiro ".txt" onde serão guardadas todas as jogadas.

Sei que terei de fazer algo deste tipo:

int CGame::SaveNome(){
    
  ofstream myfile;
  myfile.open ("jogadas.txt");
  myfile << "Jogadas do jogador x: ";(por acabar...)
  myfile.close();
    
}

Terei de abrir/criar o ficheiro "myfile.open ("jogadas.txt");", no seu conteudo é que nao sei realmente como proceder.

Por fim terei de fechar o ficheiro.Presumo que terei de usar um ciclo "for" talvez com a seguinte condiçao:"A funçao "SaveNome" tem de ser chamada enquanto o numero de matrizes no ficheiro txt for diferente do numero de jogadas efetuadas pelo jogador".

Nao sei se o meu raciocinio é o ideal ou até mesmo está correto.

Peço Desculpa pelo texto enorme.

Share this post


Link to post
Share on other sites
HappyHippyHippo

afinal pretendes guardar somente o estado do tabuleiro ou a sequência de jogadas ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Mata998

Pois fui um bocado confuso. O Ideal era gravar o estado do tabuleiro, mas para isso teria de implementar um metodo que funcionasse conforme ele fechasse a janela do jogo(porque era a unica maneira de o programa saber que o jogador tinha parado de jogar).Como nao faço a minima ideia como poderia fazer isso, tive a ideia de ele ir guardando cada vez que o jogador joga. Nao sei se estarei a ter mais trabalho com esta 2ª ideia. :confused:

Share this post


Link to post
Share on other sites
HappyHippyHippo
1 hour ago, Mata998 said:

Pois fui um bocado confuso. O Ideal era gravar o estado do tabuleiro, mas para isso teria de implementar um metodo que funcionasse conforme ele fechasse a janela do jogo(porque era a unica maneira de o programa saber que o jogador tinha parado de jogar).Como nao faço a minima ideia como poderia fazer isso, tive a ideia de ele ir guardando cada vez que o jogador joga. Nao sei se estarei a ter mais trabalho com esta 2ª ideia. :confused:

não ... o trabalho é o mesmo : criar uma função que guarda o tabuleiro.

vamos lá por partes:

- o informação guarda o tabuleiro ?

- como está essa informação replicada nos teu tipos de dados na aplicação ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Mata998

um tabuleiro neste caso,é uma matriz que eu represento na linha de comandos recorrendo a caracteres que representam as peças do jogo. Á medida que se efetua uma jogada,nao sendo um metodo por assim se dizer:grafico, o programa vai enumerando tantas matrizes quantas jogadas forem efetuadas sucessivamente ate o jogo terminar.

Nao sei se fui suficientemente claro.

Share this post


Link to post
Share on other sites
HappyHippyHippo

prontos, se então um tabuleiro é somente ma matriz de caracteres, então o que necessitas de gravar não é mais do que um conjunto de caracteres.

para isso podes facilmente usar a classe ofstream e mandar escrever os caracteres que pretendes.

tenta fazer isso e se alguma dúvida aparecer, diz


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Mata998

Como eu ja tenho uma funçao que imprime a tal matriz ("DrawBoard"), queria fazer algo assim: int CGame::SaveNome(){
    
  ofstream myfile;
  myfile.open ("jogadas.txt");
  myfile << DrawBoard();
  myfile.close();
    
}

Isto é,utilizar a funçao que ja existe,  que imprime a matriz na linha de comandos(sob forma de caracteres), e leva-la a imprimir a mesma matriz para o ficheiro ".txt",se é que isso é possivel desta maneira.

Share this post


Link to post
Share on other sites
HappyHippyHippo
1 hour ago, Mata998 said:

Como eu ja tenho uma funçao que imprime a tal matriz ("DrawBoard"), queria fazer algo assim: int CGame::SaveNome(){
    
  ofstream myfile;
  myfile.open ("jogadas.txt");
  myfile << DrawBoard();
  myfile.close();
    
}

Isto é,utilizar a funçao que ja existe,  que imprime a matriz na linha de comandos(sob forma de caracteres), e leva-la a imprimir a mesma matriz para o ficheiro ".txt",se é que isso é possivel desta maneira.

sim é possivel. o que tens de fazer:

- copiar o código da apresentar a matriz para uma outra função

- alterar os argumentos para aceitar a stream para onde irás escrever a matriz

- alterar a função original para chamar a função criada e dar-lhe a stream padrão de saida (cout)

- criar uma terceira função que irá abrir a stream de ficheiro onde vais gravar a matriz, hamar a função criada inicialmente, e depois fechar a sream-


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Mata998

Consegui o que queria,muito obrigado pelas suas dicas,agora vou tentar solucionar os restantes objetivos que tenho em mente.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.