private void BotonCargar_Click(object sender, EventArgs e) { OpenFileDialog dialogoAbrirArchivo = new OpenFileDialog { Filter = "dat files (*.dat)|*.dat", RestoreDirectory = true }; if (dialogoAbrirArchivo.ShowDialog() == DialogResult.OK) { //Realizamos la lectura string RutaArchivo = dialogoAbrirArchivo.FileName.ToString(); FileStream archivo = File.Open(RutaArchivo, FileMode.Open, FileAccess.Read); byte[] arregloBytes = new byte[1000000]; archivo.Read(arregloBytes, 0, arregloBytes.Length); archivo.Close(); IFormatter formateador = new BinaryFormatter(); Stream transferencia = new MemoryStream(arregloBytes, true); Partida partida = (Partida)formateador.Deserialize(transferencia); transferencia.Close(); //Preparamos los datos a cargar CuadrosX = partida.CX; CuadrosY = partida.CY; Modo = partida.M; CrearCuadricula(partida.O); Link = partida.L; Casa = partida.C; if (Link != null) { Link.Colocar(); BotonCasa.Enabled = true; } if (Casa != null) { Casa.Colocar(); BotonObstaculo.Enabled = true; BotonLineaRectaReconocimiento.Enabled = true; BotonLineaRectaSimple.Enabled = true; BotonRandomReconocimiento.Enabled = true; CajaTextoVisibles.Enabled = true; CajaTextoOcultos.Enabled = true; if (Link.PruebasReconocimientoRandom != null) { BotonMejorRuta.Enabled = true; } } CajaTextoCuadrosBase.Text = CuadrosX.ToString(); CajaTextoCuadrosAltura.Text = CuadrosY.ToString(); if (Link.EnCasa) { BloquearEscenario(); } Text = "Prueba 1 - " + RutaArchivo; } }
private void BotonGuardar_Click(object sender, EventArgs e) { SaveFileDialog dialogoGuardarArchivo = new SaveFileDialog { Filter = "dat files (*.dat)|*.dat", RestoreDirectory = true }; if (dialogoGuardarArchivo.ShowDialog() == DialogResult.OK) { //Preparamos el objeto a guardar bool[,] Obstaculos = new bool[CuadrosX, CuadrosY]; for (int i = 0; i < CuadrosX; i++) { for (int j = 0; j < CuadrosY; j++) { if (Ambiente[i, j].Image != null) // && (i != Link.X && j != Link.Y) && (i != Casa.X && j != Casa.Y) { Obstaculos[i, j] = true; } else { Obstaculos[i, j] = false; } } } Partida partida = new Partida(CuadrosX, CuadrosY, Modo, Obstaculos, Link, Casa); //Realizamos el guardado byte[] arregloBytes = new byte[1000000]; //1Mb IFormatter formateador = new BinaryFormatter(); Stream transferencia = new MemoryStream(arregloBytes, true); formateador.Serialize(transferencia, partida); transferencia.Close(); string RutaArchivo = dialogoGuardarArchivo.FileName.ToString(); FileStream archivo = File.Create(RutaArchivo); archivo.Write(arregloBytes, 0, arregloBytes.Length); archivo.Close(); MessageBox.Show("Ambiente guardado"); Text = "Prueba 1 - " + RutaArchivo; } }