private void V_JogosInacabados_PedidoLoadJogosInacabados(int i) { List <Jogo> jogosInacabados = new List <Jogo>(); if (Program.M_Jogo.JogosInacabados.Count == 0) { var folder = AppDomain.CurrentDomain.BaseDirectory.Replace("\\bin\\Debug", "\\XML"); if (File.Exists(folder + "JogosInacabados.xml")) { XDocument doc = XDocument.Load(folder + "JogosInacabados.xml"); if (doc.Descendants("Jogo").Count() != 0) { int numJogador = 0; Jogador j1 = new Jogador(), j2 = new Jogador(); bool jogadorEncontrado = false; //Obter conjunto de jogosInacabados var jogos = from jogo in doc.Descendants("Jogo") select jogo; //Para cada jogoInacabado, verificamos se Algum dos jogadores têm o id do jogador logado foreach (var jogoIn in jogos) { foreach (var jogador in jogoIn.Element("Jogadores").Elements()) { numJogador++; if (jogador.Name == "Pessoa") //Se o jogador for uma pesso e for o primeiro jogador { if (numJogador == 1) { User u = new User(); u = DataBaseAccess.GetUserById(Convert.ToInt16(jogador.Attribute("Id").Value)); j1 = new Pessoa(u, Convert.ToBoolean(jogador.Element("Cor").Value), Convert.ToBoolean(jogador.Element("Prioridade").Value)); } else { User u2 = new User(); u2 = DataBaseAccess.GetUserById(Convert.ToInt16(jogador.Attribute("Id").Value)); j2 = new Pessoa(u2, Convert.ToBoolean(jogador.Element("Cor").Value), Convert.ToBoolean(jogador.Element("Prioridade").Value)); } if (jogador.Attribute("Id").Value == i.ToString()) { jogadorEncontrado = true; } } else if (jogador.Name == "Robot") { j2 = new Robot(Convert.ToBoolean(jogador.Element("Cor").Value), Convert.ToBoolean(jogador.Element("Prioridade").Value)); } } if (jogadorEncontrado) { Posicao[,] t = new Posicao[8, 8]; foreach (var posicao in jogoIn.Descendants("Tabuleiro").Elements()) { int x, y; string coordenadas = posicao.Attribute("Coordenada").Value; x = Convert.ToInt32(coordenadas.Remove(1, 2)); // 0;1 -> 0 y = Convert.ToInt32(coordenadas.Remove(0, 2)); // 1;0 -> 0 if (posicao.Name == "Vazia") { t[x, y] = new Vazia(); } else if (posicao.Name == "Invalida") { t[x, y] = new Invalida(); } else if (posicao.Attribute("Tipo").Value == "Simples") { t[x, y] = new Simples(Convert.ToBoolean(posicao.Attribute("Cor").Value), Convert.ToBoolean(posicao.Attribute("Sentido").Value)); } else { t[x, y] = new Dama(Convert.ToBoolean(posicao.Attribute("Cor").Value), Convert.ToBoolean(posicao.Attribute("Sentido").Value)); } } Tabuleiro tab = new Tabuleiro(t); Jogo j = new Jogo(j1, j2, tab); j.Id = Convert.ToInt16(jogoIn.Attribute("Id").Value); jogosInacabados.Add(j); } numJogador = 0; jogadorEncontrado = false; } } } } Program.M_Jogo.LoadJogosInacabados(jogosInacabados); }
private void V_JogosInacabados_PedidoVoltarAJogo(Jogo j) { Program.M_Jogo.ComecarJogo(j); }