コード例 #1
0
        public static Jogo Ler()
        {
            String[] lines  = System.IO.File.ReadAllLines(@"C:\Users\Mateu\source\repos\Projeto1LP\Narrativa.txt");
            int      indice = 0;
            string   nome   = lines[indice++]; // nome do jogo
            string   desc   = lines[indice++]; // descricao inical do jogo
            Jogo     jogo   = new Jogo(nome, desc);


            string tama = lines[indice++];    //numero de salas

            jogo.Tam = Convert.ToInt32(tama);

            // criando as salas apenas com os IDs  e adicionando keys no hashmap
            for (int i = 1; i < jogo.Tam + 1; i++)
            {
                Sala sala = new Sala(i);
                jogo.InsereSala(jogo, sala);
            }

            //preenchendo as salas com descricao e opcoes  e inserindo no hashmap os values nas suas keys
            while (indice < lines.Length)
            {
                String[] s        = lines[indice++].Split(':');
                string   id       = s[0];
                string   nomeSala = s[1];

                String descSala = lines[indice++];
                String opcoes   = lines[indice++];

                Sala sala = new Sala(nomeSala, descSala, opcoes);
                int  n    = Convert.ToInt32(id);
                sala.Id = n;



                s = lines[indice++].Split(';');
                List <Opcao> adja = new List <Opcao>();
                for (int i = 0; i < s.Length; i++)
                {
                    String[] aux  = s[i].Split(' ');
                    String   nom  = aux[0];
                    String   dest = aux[1];
                    int      des  = Convert.ToInt32(dest);
                    Opcao    o    = new Opcao(nom, new Sala(des));
                    adja.Add(o);
                }

                jogo.Preenche(jogo, sala, adja);
            }



            return(jogo);
        }
コード例 #2
0
        //funcao que preenche o hashmap com suas keys e values
        public void Preenche(Jogo jogo, Sala sala, List <Opcao> adj)
        {
            Sala s = Jogo.GetKey(jogo, sala.Id);

            s.Nome      = sala.Nome;
            s.Descricao = sala.Descricao;
            s.Opcoes    = sala.Opcoes;
            foreach (Opcao o in adj)
            {
                Sala destino = Jogo.GetKey(jogo, o.Destino.Id);
                if (destino == null)
                {
                    jogo.InsereAdjascencia(jogo, s, o);
                }
                else
                {
                    Opcao aux = new Opcao(o.Nome, destino);
                    jogo.InsereAdjascencia(jogo, s, aux);
                }
            }
        }
コード例 #3
0
 public void InsereAdjascencia(Jogo jogo, Sala origem, Opcao opcao)
 {
     jogo.map[origem].Add(opcao);
 }