Jump to content

Dúvida C# guardar dados em ficheiro de texto


al41007
 Share

Recommended Posts

Boa tarde. Num projecto de um jogo tenho uma classe game que é a base de todo o model, e nessa classe tenho um método para guardar os dados do jogo num ficheiro de texto. Acontece que a única coisa que ele está a escrever no ficheiro é "false 8 false 8" (separados por linhas) e isto não era suposto acontecer. Podem-me ajudar dizendo o que está mal e porquê? Em baixo está o código que tenho na classe.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.IO;

namespace jogo
{
    class game
    {
        private tabuleiro tabuleiro;
        private players jogador1=new players();//ou definir 1 lista d jogadores
        private players jogador2=new players(); //os jogadors possuem peças
        private histórico historico;


        public game()
        {
            tabuleiro = new tabuleiro();
            arbitro = new arbitro();
            historico = new histórico();
        }

        public void instanciaJogadores()
        {
            //jogador1 = new players();
            //jogador2 = new players();

            jogador1.Nome = "Player 1";
            jogador2.Nome = "Player 2";
        }

        internal histórico Historico
        {
            get { return historico; }
            set { historico = value; }
        }

        internal players Jogador1
        {  get { return jogador1; } }

        
        internal players Jogador2
        {  get { return jogador2; } }     
    
        public void guardaJogo() //algo está mal
        {
            //preciso guardar:
            //-celulas/tabuleiro
            //-dados dos Jogadores
            //-peças n mesa
            //-histórico
            //-jogador a jogar

            FileInfo t = new FileInfo("jogoGuardado.txt");
            StreamWriter Txt =t.CreateText();
            
            Txt.WriteLine(jogador1.Nome);
            Txt.WriteLine(jogador1.NumeroPeças.ToString());
            Txt.WriteLine(jogador1.Estado.ToString());
            foreach (peças pedra in jogador1.Peças)
            {
                Txt.WriteLine(pedra.PosiçaoAtual.PosicaoX.ToString());
                Txt.WriteLine(pedra.PosiçaoAtual.PosicaoY.ToString());
                Txt.WriteLine(pedra.PosiçaoDestino.PosicaoX.ToString());
                Txt.WriteLine(pedra.PosiçaoDestino.PosicaoX.ToString());
                Txt.WriteLine(pedra.Estado.ToString());
                Txt.WriteLine(pedra.Cor.ToString());
                Txt.WriteLine(pedra.DireçaoAnterior.ToString());
                Txt.WriteLine(pedra.DireçaoAtual.ToString());
                Txt.Write(Txt.NewLine);
            }

            Txt.WriteLine(jogador2.Nome);
            Txt.WriteLine(jogador2.NumeroPeças.ToString());
            Txt.WriteLine(jogador2.Estado.ToString());
            foreach (peças pedra in jogador2.Peças)
            {
                Txt.WriteLine(pedra.PosiçaoAtual.PosicaoX.ToString());
                Txt.WriteLine(pedra.PosiçaoAtual.PosicaoY.ToString());
                Txt.WriteLine(pedra.PosiçaoDestino.PosicaoX.ToString());
                Txt.WriteLine(pedra.PosiçaoDestino.PosicaoX.ToString());
                Txt.WriteLine(pedra.Estado.ToString());
                Txt.WriteLine(pedra.Cor.ToString());
                Txt.WriteLine(pedra.DireçaoAnterior.ToString());
                Txt.WriteLine(pedra.DireçaoAtual.ToString());
                Txt.Write(Txt.NewLine);
            }

            foreach (string line in historico.History)
            {
                Txt.WriteLine(line);
                Txt.Write(Txt.NewLine);
            }
            
            Txt.Close();
       }
    }
}
Link to comment
Share on other sites

Como o bruno1234 diz, tenta primeiro fazer um debug a ver se tens algum objecto não instanciado, e depois diz alguma coisa.

Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Link to comment
Share on other sites

Instanciados estão, a maioria dos atributos é que estão vazios. Só pode ser das referências, não devem estar a apontar para o sitio correcto. Tenho que as ver melhor. Bem, mas a minha dúvida principal é se para guardar os dados pretendidos num ficheiro se seria assim ou não. Como não disseram nada sobre isso, suponho que esteja correcto.  👍

Link to comment
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
 Share

×
×
  • 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.