public void si_añadimos_dos_veces_una_ficha_del_mismo_tipo_en_posiciones_distintas_se_lanza_excepcion() { var tablero = new Tablero(); tablero.AddFicha(Fichas.Aspa, new Posicion(0, 0)); tablero.AddFicha(Fichas.Circulo, new Posicion(1, 0)); Assert.Throws<InvalidOperationException>(() => tablero.AddFicha(Fichas.Circulo, new Posicion(1, 0))); }
public MainWindow() { InitializeComponent(); imagen = new BitmapImage(new Uri(System.IO.Directory.GetCurrentDirectory() + @"\Imagenes\imagen.jpg")); Rectangle rectangle = new Rectangle(); rectangle.Width = 500; rectangle.Height = 500; rectangle.Fill = new ImageBrush(imagen); tablero = new Tablero(3, 3, imagen); foreach (Pieza p in tablero.Piezas) { Rectangle r = new Rectangle(); r.Width = Canvas.Width / tablero.Filas; r.Height = Canvas.Height / tablero.Columnas; r.Fill = new ImageBrush(p.Imagen); r.Stroke = new SolidColorBrush(Colors.Black); r.StrokeThickness = 1; r.SetValue(Canvas.LeftProperty, Convert.ToDouble(p.Columna * (Canvas.Width / tablero.Filas))); r.SetValue(Canvas.TopProperty, Convert.ToDouble(p.Fila * (Canvas.Height / tablero.Columnas))); Canvas.Children.Add(r); } }
public Game() { InitializeComponent(); TheGame = new Tablero(); J1 = new Jugador(); J2 = new Jugador(); }
private void IniciaJuego() { marBotones = new Button[N, N]; creaEscenario(); // Crea el tablero con los barcos tb = new Tablero(N, N, quedan); }
/** * Este constructor nos permite crear un tablero idéntico a otro ya existente. */ public Tablero(Tablero tablero) { tamaño = tablero.getTamaño(); celdas = new Celda[tamaño, tamaño]; for (int a = 0; a < getTamaño(); a++) for (int b = 0; b < getTamaño(); b++) getTablero()[a, b] = new Celda(a, b, tablero.getCelda(a,b).getFicha()); }
public void si_añado_una_ficha_a_un_tablero_iniciado_este_contendra_una_ficha_en_la_posicion_indicada() { var tablero = new Tablero(); var turno = new Turno(); var ficha = turno.GetFichaActual(); byte fila = 0; byte columna = 2; var posicion = new Posicion(fila,columna); tablero.AddFicha(ficha, posicion); Assert.Equal(1,tablero.GetNumeroFichas()); Assert.Equal(ficha,tablero.GetFicha(posicion)); }
public override void GenerarMovLegales(int esq, Tablero tab) { for (int j = 0; j < BdMov[esq][0].Length; j++) { int casPosible = BdMov[esq][0][j]; if (tab[casPosible].Tipo == null) { tab[casPosible].Movs[this.Color].Insertar(esq, tab); } else { tab[casPosible].Movs[this.Color].Insertar(esq, tab); } } }
public override void GenerarMovDestino(int esq, Movimiento mov, Tablero tab) { tab[mov.Destino].Movs[this.Color].Eliminar(esq); tab[mov.Destino].Bloqueados.Insertar(esq, tab); int fila = (esq - esq % 8) / 8; if (this.Color == 0 && fila == 1 && mov.Destino == esq + 8) { tab[esq + 16].Movs[this.Color].Eliminar(esq); } else if (this.Color == 1 && fila == 6 && mov.Destino == esq - 8) { tab[esq - 16].Movs[this.Color].Eliminar(esq); } }
public void TestPacmanColisionaFantasma() { //Arrange Tablero t = new Tablero(3, 3); t.setPersonaje(0, 0, 1, 1, 0); t.setPersonaje(1, 1, 1, 0, -1); //Act t.muevePacman(); bool captura = t.captura(); //Assert Assert.IsTrue(captura, "Fallo: pacman no capturado"); }
/// <summary> /// Expandimos la lista, con todos los vecinos walkables por el usuario /// </summary> /// <param name="board"></param> /// <returns></returns> public List <Nodo> Expandir(Tablero board) { List <Nodo> result = new List <Nodo>(); List <Cell> vecinos = estado.getVecinosWalkables(board); for (int i = 0; i < vecinos.Count; i++) { Cell vecino = vecinos[i]; Nodo nuevo = new Nodo(vecino, this); result.Add(nuevo); } return(result); }
public void TestPosiblesDirecciones4() { //Arrange Tablero t = new Tablero(3, 3); t.setPersonaje(1, 1, 1, 1, 1); ListaPares l; int cont; //Act t.posiblesDirs(1, out l, out cont); //Assert Assert.AreEqual(4, cont, "Fallo: direcciones invalidas, se espera 0"); }
/// <summary> /// Guarda una copia del tablero en la ruta del archivo especificado. /// </summary> /// <param name="filePath">La ruta en donde se guardará el archivo.</param> /// <param name="saveInput">Los parametros de entrada que recibe la función de guardado.</param> private static Boolean SaveTablero(String filePath, Object saveInput) { var data = (Object[])saveInput; Tablero tablero = data[0] as Tablero; Action <Object> task_completed = data[1] as Action <Object>; Boolean flag = false; try { //Copiamos el archivo base de tableros File.Copy(TabalimApp.TableroDBPath, filePath, tablero.Path == filePath); SQLiteWrapper tr = new SQLiteWrapper(filePath) { TransactionTask = (SQLite_Connector conn, Object input) => { try { List <Componente> cmps; List <Circuito> ctos; Tablero t = ((Tablero)input).Clone(out cmps, out ctos); //Se inserta el tablero InsertTableroTask(conn, t); //Se se insertan los circuitos ctos.ForEach(x => x.GetLastId <Circuito>(conn, t)); //Se insertan los componentes cmps.ForEach(cmp => cmp.GetLastId <Componente>(conn, ctos.FirstOrDefault(cto => cto.ToString() == cmp.CircuitoName))); return(new object[] { true, String.Format("Tablero guardado de forma correcta en \n{0}.", filePath) }); } catch (Exception exc) { return(new object[] { false, String.Format("Error al guardar el tablero\nDetalles: {0}", exc.Message) }); } }, TaskCompleted = (Object result) => { task_completed(result); } }; tr.Run(tablero); flag = true; } catch (IOException exc) { task_completed(new object[] { false, String.Format("Error al guardar el tablero\nDetalles: {0}\nPara remplazar el archivo utilice guardar como.", exc.Message) }); } catch (Exception exc) { task_completed(new object[] { false, String.Format("Error al guardar el tablero\nDetalles: {0}", exc.Message) }); } return(flag); }
public void WriteXML(Tablero tablero, string ruta) { XmlTextWriter writer = null; writer = new XmlTextWriter(ruta, null); writer.WriteStartDocument(); writer.Formatting = Formatting.Indented; writer.Indentation = 3; writer.WriteStartElement("tablero"); int acc = 0; for (int i = 0; i < tablero.filas; i++) { for (int j = 0; j < tablero.columnas; j++) { if (tablero.fichas[acc].color != null) { writer.WriteStartElement("ficha"); writer.WriteStartElement("color"); writer.WriteString(tablero.fichas[acc].color); //COLOR writer.WriteEndElement(); writer.WriteStartElement("columna"); writer.WriteString(Globals.columnas[j]);//COLUMNA writer.WriteEndElement(); writer.WriteStartElement("fila"); writer.WriteString(Globals.filas[i]);//FILA writer.WriteEndElement(); writer.WriteEndElement(); } acc++; } } writer.WriteStartElement("siguienteTiro"); //Poner el siguiente tiro writer.WriteStartElement("color"); writer.WriteString(tablero.color); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); }
static void ArrancaJuego(string[,] a) { ConsoleKey op; //Para la gestión de lo que quiera el usuario. Tablero miTablero = new Tablero(); //Genera la estructura que usaremos. string[,] juego = new string[25, 80]; int cont = 0; Console.Clear(); juego = a; Console.WriteLine("\n\n\t\tI --> Iterar A --> Automatico"); do { Console.Title = ("Generación: " + cont); op = Console.ReadKey(true).Key; switch (op) { case ConsoleKey.I: miTablero.PintaTablero(juego); juego = miTablero.AvanzarGeneracio(juego); cont++; break; case ConsoleKey.A: do { Console.Title = ("Generación: " + cont); miTablero.PintaTablero(juego); miTablero.AvanzarGeneracio(juego); cont++; } while (!Console.KeyAvailable); break; case ConsoleKey.R: juego = miTablero.GeneracionALEA(); break; case ConsoleKey.S: miTablero.GuardarTablero(juego); break; } } while (op != ConsoleKey.M); return; }
public int Ficha_seleccionada(Tablero tablero) { int index = -1, acc = 0; foreach (Ficha ficha in tablero.fichas) { if (ficha.presionado == "true") { index = acc; } acc++; } return(index); }
public void TestSiguienteCeldaVaciaDerecha() { //Arrange Tablero tPruebas = new Tablero(3, 3); int posX = 1; int posY = 1; int nx, ny; //Act bool puedeMover = tPruebas.siguiente(posX, posY, 0, 1, out nx, out ny); //Assert Assert.IsTrue(puedeMover); Assert.AreEqual(1, nx, "Coordenada X incorrecta al ejecutar siguiente"); Assert.AreEqual(2, ny, "Coordenada Y incorrecta al ejecutar siguiente"); }
public void TestSiguienteToroideIzquierda() { //Arrange Tablero tPruebas = new Tablero(3, 3); int posX = 2; int posY = 0; int nx, ny; //Act bool puedeMover = tPruebas.siguiente(posX, posY, 0, -1, out nx, out ny); //Assert Assert.IsTrue(puedeMover); Assert.AreEqual(2, nx, "Coordenada X incorrecta al ejecutar siguiente"); Assert.AreEqual(2, ny, "Coordenada Y incorrecta al ejecutar siguiente"); }
public void si_todas_las_fichas_de_misma_columna_son_iguales_ganan_esas_fichas() { Tablero tablero = new Tablero(); var turno = new Turno(); for (byte i = 0; i < DimensionTableroMenosUno; i++) { tablero.AddFicha(turno.GetFichaActual(), new Posicion(i, 1)); tablero.AddFicha(turno.GetFichaActual(), new Posicion(i, 0)); } Assert.Equal(null, tablero.GetGanador()); var ficha = turno.GetFichaActual(); tablero.AddFicha(ficha, new Posicion ( DimensionTableroMenosUno,1)); Assert.Equal(ficha, tablero.GetGanador()); }
public void Acaba() { //Arrange Tablero tab = new Tablero(3, 3); tab.setNumComida(3); //Act bool noacaba = tab.finNivel(); tab.setNumComida(0); bool acaba = tab.finNivel(); //Assert Assert.IsFalse(noacaba, "Error, todavia sigue habiendo comida"); Assert.IsTrue(acaba, "Error, ya no hay comida"); }
public virtual void GenerarMovLegales(int esq, Tablero tab) { for (int dir = 0; dir < BdMov[esq].Length; dir++) { for (int j = 0; j < BdMov[esq][dir].Length; j++) { int casPosible = BdMov[esq][dir][j]; tab[casPosible].Movs[this.Color].Insertar(esq, tab); if (tab[casPosible].Tipo != null) { break; } } } }
private void buttonGoTablero_Click(object sender, EventArgs e) { if (tableroSeleccionado != null) { TABLERO formTablero = new TABLERO(); tableroSeleccionado = (Tablero)dgvTableros.CurrentRow.DataBoundItem; formTablero.recibirDatosDeHome(tableroSeleccionado, userLogueado); AddOwnedForm(formTablero); this.Hide(); formTablero.ShowDialog(); } else { MessageBox.Show("Por favor seleccione un tablero"); } }
public void enrocarDerecha(Pieza pieza, Tablero tablero, Posicion nuevaPosicion) { pieza.efectuarMovimiento(nuevaPosicion, tablero); Pieza torreDerecha; if (pieza.obtenerColor() == "Negro") { torreDerecha = tablero.piezaEn(new Posicion(7, 7)); torreDerecha.efectuarMovimiento(new Posicion(5, 7), tablero); } else if (pieza.obtenerColor() == "Blanco") { torreDerecha = tablero.piezaEn(new Posicion(7, 0)); torreDerecha.efectuarMovimiento(new Posicion(5, 0), tablero); } }
//creacion de un tablero con valores por defecto. static void CreaTableroVacio(out Tablero tab) { tab.fils = tab.cols = 0; tab.fijas = new Casilla[50, 50]; tab.cajas = new bool[50, 50]; for (int i = 0; i < 50; i++) { for (int j = 0; j < 50; j++) { tab.fijas[i, j] = Casilla.Muro; tab.cajas[i, j] = false; } } tab.jugX = 0; tab.jugY = 0; }
public void TestMueveToroidePacmanArriba() { //Arrange Tablero t = new Tablero(3, 3); t.setPersonaje(0, 0, 2, -1, 0); ListaPares l; int cont; //Act t.muevePacman(); t.posiblesDirs(0, out l, out cont); //Assert Assert.AreEqual(2, t.getPersonaje(0).posX, "Posicion X incorrecta de Pacman"); Assert.AreEqual(2, t.getPersonaje(0).posY, "Posicion Y incorrecta de Pacman"); }
private void Tablero_CellClick(object sender, DataGridViewCellEventArgs e) { if (!endCondition) { if (usarBandera) { Marcar(e.ColumnIndex, e.RowIndex); } else if (Tablero[e.ColumnIndex, e.RowIndex].Style.BackColor != Color.Red) { Revelar(e.ColumnIndex, e.RowIndex); } CheckWin(); } Tablero.ClearSelection(); }
public void SiguienteToroRight() { //Arrange Tablero tab = new Tablero(3, 3); int posX = 1; int posY = 2; int nx, ny; //Act bool PuedeMover = tab.siguiente(posX, posY, 0, 1, out nx, out ny); //Arrange Assert.IsTrue(PuedeMover, "Error, debería poderse mover"); Assert.AreEqual(nx, 1, "Error, no se debería haber cambiado de fila"); Assert.AreEqual(ny, 0, "Error, tendria que estar en el lado izquierdo"); }
public void SiguienteToroUp() { //Arrange Tablero tab = new Tablero(3, 3); int posX = 0; int posY = 1; int nx, ny; //Act bool PuedeMover = tab.siguiente(posX, posY, -1, 0, out nx, out ny); //Arrange Assert.IsTrue(PuedeMover, "Error, debería poderse mover"); Assert.AreEqual(nx, 2, "Error, debería estar abajo tras salir por arriba"); Assert.AreEqual(ny, 1, "Error, no se debería haber cambiado de columna"); }
public void Desbloquear(int esq, int origen, Tablero tab) { tab[origen].Bloqueados.Eliminar(esq); tab[origen].Movs[this.Color].Insertar(esq, tab); int fila = (esq - esq % 8) / 8; if (this.Color == 0 && fila == 1 && origen == esq + 8) { tab[esq + 16].Movs[this.Color].Insertar(esq, tab); } else if (this.Color == 1 && fila == 6 && origen == esq - 8) { tab[esq - 16].Movs[this.Color].Insertar(esq, tab); } }
public ActionResult Sala(Ronda ronda) { Tablero tablero_temp = new Tablero(8, 8, "negro", Globals.campeonato.Ronda_actual.Partida_actual.Jugador1, Globals.campeonato.Ronda_actual.Partida_actual.Jugador2); tablero_temp.modalidad = "Normal"; tablero_temp.Iniciar(false); ronda.Partida_actual.tablero = tablero_temp; Globals.campeonato.Ronda_actual = ronda; ViewBag.Message = Globals.campeonato.Ronda_actual.Partida_actual.Jugador1 + " VS " + Globals.campeonato.Ronda_actual.Partida_actual.Jugador2; ViewBag.MessageType = "neutral-message"; return(View("Juego", ronda.Partida_actual)); }
public static void Main(string[] args) { Console.WriteLine("Bienvenido al Buscaminas. \nSi quieres cargar una partida ya empezada pulsa C si quieres empezar una nueva pulsa N"); string resp = Console.ReadLine(); if (resp == "c" || resp == "C") { Console.WriteLine("Introduce el nombre de la partidaque que quieres cargar:"); resp = Console.ReadLine(); Jugar(CargarEstado(resp)); } else if (resp == "n" || resp == "N") { bool empezar = false; int fils = 1; int cols = 1; int minas = 1; while (!empezar) { Console.WriteLine("Introduce el numero de filas del tablero(entre 6 y 100):"); fils = int.Parse(Console.ReadLine()); if (fils > 5 && fils <= 100) { empezar = true; } Console.WriteLine("Introduce el numero de columnas del tablero(entre 6 y 100):"); cols = int.Parse(Console.ReadLine()); if (cols <= 5 && cols > 100) { empezar = false; } Console.WriteLine("Introduce el numero de minas del nivel:"); minas = int.Parse(Console.ReadLine()); if (!empezar) { Console.WriteLine("Alguno de los datos introducidos no está en el rango."); } } Tablero tablero = creaTablero(fils, cols, minas); Jugar(tablero); } else { Console.WriteLine("Comando desconocido."); } }
public static void Main(string[] args) { //declaramos e inicializamos los objetos Tablero tablero = new Tablero(); Jugador jugador1 = new Jugador("X"); Jugador jugador2 = new Jugador("O"); //inicializamos las variables int jugador_actual = 1; int ficha_actual = 1; //iniciamos un bucle que dure indifinidamente hasta //que el juego finalice while (true) { tablero.PintarTablero(); if (ficha_actual == 0) { Console.Write("Jugador {0}: ingrese el número de la ficha a mover: ", jugador_actual, ficha_actual); ficha_actual = Convert.ToInt32(Console.ReadLine()); } Console.Write("Jugador {0}: ingrese posición para la ficha {1}:", jugador_actual, ficha_actual); int posicion_elegida = Convert.ToInt32(Console.ReadLine()); //imprimiendo el tipo ficha apropiado según el //jugador actual if (jugador_actual == 1) { tablero.posiciones[posicion_elegida] = jugador1.tipo_ficha; } else { tablero.posiciones[posicion_elegida] = jugador2.tipo_ficha; } jugador_actual++; if (jugador_actual == 3) { jugador_actual = 1; ficha_actual++; if (ficha_actual == 4) { ficha_actual = 0; } } } Console.ReadLine(); }
public void NoCambiaAIzquierda() { //Arrange Tablero tab = new Tablero(3, 3); tab.setPersonaje(0, 1, 1, -1, 0);//dir original hacia arriba tab.cambiaCasilla(0, 0, Tablero.Casilla.Muro); tab.cambiaCasilla(1, 0, Tablero.Casilla.Muro); tab.cambiaCasilla(2, 0, Tablero.Casilla.Muro); //Act bool HaCambiado = tab.cambiaDir('l'); //Arrange Assert.IsFalse(HaCambiado, "Error, no debería haberse cambiado la dir"); Assert.IsTrue(tab.pers[0].dirX == -1 && tab.pers[0].dirY == 0, "Error, debería seguir moviendose hacia arriba"); }
static void Main(string[] args) { Tablero miTablero = new Tablero { DimensionX = 100, DimensionY = 100 }; Personaje personaje = new Personaje(); //miTablero.Poblacion[0] = personaje; miTablero.AgregarPersonaje(personaje); Console.WriteLine(miTablero); Console.ReadKey(); }
public void TestMueveToroidePacmanIzquierdaMuro() { //Arrange Tablero t = new Tablero(3, 3); t.setPersonaje(0, 2, 0, 0, -1); t.cambiaCasilla(2, 2, Tablero.Casilla.Muro); ListaPares l; int cont; //Act t.muevePacman(); t.posiblesDirs(0, out l, out cont); //Assert Assert.AreEqual(2, t.getPersonaje(0).posX, "Posicion X incorrecta de Pacman"); Assert.AreEqual(0, t.getPersonaje(0).posY, "Posicion Y incorrecta de Pacman"); }
public void NoCambiaAAbajo() { //Arrange Tablero tab = new Tablero(3, 3); tab.setPersonaje(0, 1, 1, 0, 1);//dir original hacia arriba tab.cambiaCasilla(2, 0, Tablero.Casilla.Muro); tab.cambiaCasilla(2, 1, Tablero.Casilla.Muro); tab.cambiaCasilla(2, 2, Tablero.Casilla.Muro); //Act bool HaCambiado = tab.cambiaDir('d'); //Arrange Assert.IsFalse(HaCambiado, "Error, no debería haberse cambiado la dir"); Assert.IsTrue(tab.pers[0].dirX == 0 && tab.pers[0].dirY == 1, "Error, debería seguir moviendose hacia la derecha"); }
public void SiguienteVacioRight() { //Arrange //Nuevo tablero de 3x3 Tablero tab = new Tablero(3, 3); int posX = 1; int posY = 1; int nx, ny; //Act bool puedeMover = tab.siguiente(posX, posY, 0, 1, out nx, out ny); //Assert Assert.IsTrue(puedeMover, "Error: Tendria que poder mover derecha"); Assert.AreEqual(nx, 1, "Error, tendria que moverse a la pos X 1"); Assert.AreEqual(ny, 2, "Error, tendria que moverse a la pos Y 2"); }
static void Main(string[] args) { /* Console.WriteLine("(alt+177) "); * Console.WriteLine("|--"); * Console.WriteLine("--|"); * Console.WriteLine("--|"); */ Tablero juego_delavida = new Tablero(10, 5); juego_delavida.inserta(new Celula(Estado.viva, juego_delavida, 3, 3)); juego_delavida.inserta(new Celula(Estado.viva, juego_delavida, 3, 2)); juego_delavida.inserta(new Celula(Estado.viva, juego_delavida, 3, 1)); juego_delavida.print(); console.WriteLine(juego_delavida.inserta(new Celula(Estado.viva, juego_delavida, 0, 0)); juego_delavida.grid[1][1].num_vecinas()); }
public void poetry_mode() { //Arrange var tablero = new Tablero(); var turno = new Turno(); var ficha = turno.GetFichaActual(); const byte fila = 0; const byte columna = 0; var posicion = new Posicion(fila,columna); //Action tablero. Add(ficha). En(posicion); //Assert Assert.Equal(ficha, tablero.GetFicha(posicion)); }
/** * Esta función nos devuelve el nombre del jugador que más fichas tiene en el tablero, o tablas. * @param tablero en el que contaremos las fichas para determinar al ganador. * @return nombre del ganador. */ public String consultarGanador(Tablero tablero) { int contador = 0; //Vamos contando las fichas del tablero for (int a = 0; a < tablero.getTamaño(); a++) for (int b = 0; b < tablero.getTamaño(); b++) if (tablero.getCelda(a, b).getFicha() == 'X') contador++; else if (tablero.getCelda(a, b).getFicha() == 'O') contador--; //Devolvemos el resultado if (contador > 0) return jug1; else if (contador < 0) return jug2; return "tttablas"; }
//devuelve true si se expande correctamente, false en caso contrario, incrementa el tamaño public bool expandir(Tablero tablero) { bool exito = false; //obtener listado de posiciones posibles para la expansion //clasificadas en funcion de expansion libre o combate //seleccionar una //si es expansion libre, exito=true //si es combate, realizar combate y aplicar valor a exito // movimientosPosibles valors: 0 -> no se puede llegar. 1 -> vacio. 2 -> Ciudad enemiga int[,] movimientosPosibles = new int[Constants.TAMAÑO, Constants.TAMAÑO]; // Crear funcion ponerCosoACeros si eso for (int i = 0; i < Constants.TAMAÑO; i++) { for (int j = 0; j < Constants.TAMAÑO; j++) { movimientosPosibles[i, j] = 0; } } for (int i = 0; i < Constants.TAMAÑO; i++) { for (int j = 0; j < Constants.TAMAÑO; j++) { // TODO: Este color hay que inicializarlo if (tablero.getTablero()[i, j] == this.color) { // Sacar esto a una funcion para comprobar los 4 casos, cada uno con una llamada // Le pasamos el movimientosPosibles y que lo devuelva modificado, a no ser que // consigamos pasarle un puntero evaluarPosicion(tablero.getTablero(), i + 1, j, movimientosPosibles); evaluarPosicion(tablero.getTablero(), i - 1, j, movimientosPosibles); evaluarPosicion(tablero.getTablero(), i, j + 1, movimientosPosibles); evaluarPosicion(tablero.getTablero(), i, j - 1, movimientosPosibles); } } } //hacemos una lista de posiciones libres y de posiciones ocupadas Coordenadas[] arrLibres = posicionesCoincidentes(1, movimientosPosibles); Coordenadas[] arrOcupadas = posicionesCoincidentes(2, movimientosPosibles); if (valentia > Random.Range(0, 100)) { //Debug.Log("Tenemos un valiente. Valentia: " + valentia); if (arrOcupadas.Length > 0) { Coordenadas posExpansion = arrOcupadas[Random.Range(0, arrOcupadas.Length)]; Ciudad ciudadAtacada; switch (tablero.getTablero()[posExpansion.getI(), posExpansion.getJ()]) { case 1: ciudadAtacada = tablero.ciudad1; break; case 2: ciudadAtacada = tablero.ciudad2; break; case 3: ciudadAtacada = tablero.ciudad3; break; case 4: ciudadAtacada = tablero.ciudad4; break; default: ciudadAtacada = new Ciudad(); break; } if (this.calcularValorDeAtaque() > ciudadAtacada.calcularValorDeAtaque()) { //ganamos nosotros tablero.getTablero()[posExpansion.getI(), posExpansion.getJ()] = this.color; ciudadAtacada.tamaño--; //Perdida de puntos a la enemiga ciudadAtacada.fitness -= 3; ciudadAtacada.setPoblacion(ciudadAtacada.getPoblacion() - 5); exito = true; //Bonus por ataque completado con exito this.fitness += 5; } else { //Bonus por defensa ciudadAtacada.fitness += 5; exito = false; } } else if (arrLibres.Length > 0) { // Se puede hacer un movimiento a un espacio libre // Debug.Log("Hay una opcion de desplazamiento. La long del arrLibres es " + arrLibres.Length); //seleccionar posicion a random exito = true; Coordenadas posExpansion = arrLibres[Random.Range(0, arrLibres.Length)]; tablero.getTablero()[posExpansion.getI(), posExpansion.getJ()] = this.color; } } else { //Debug.Log("Tenemos un cobarde. Valentia: " + valentia); // Falta elegir una random if (arrLibres.Length > 0) { // Se puede hacer un movimiento a un espacio libre //Debug.Log("Hay una opcion de desplazamiento. La long del arrLibres es " + arrLibres.Length); //seleccionar posicion a random exito = true; Coordenadas posExpansion = arrLibres[Random.Range(0, arrLibres.Length)]; tablero.getTablero()[posExpansion.getI(), posExpansion.getJ()] = this.color; } else if (arrOcupadas.Length > 0) { Coordenadas posExpansion = arrOcupadas[Random.Range(0, arrOcupadas.Length)]; Ciudad ciudadAtacada; switch (tablero.getTablero()[posExpansion.getI(), posExpansion.getJ()]) { case 1: ciudadAtacada = tablero.ciudad1; break; case 2: ciudadAtacada = tablero.ciudad2; break; case 3: ciudadAtacada = tablero.ciudad3; break; case 4: ciudadAtacada = tablero.ciudad4; break; default: ciudadAtacada = new Ciudad(); break; } if (this.calcularValorDeAtaque() > ciudadAtacada.calcularValorDeAtaque()) { //ganamos nosotros tablero.getTablero()[posExpansion.getI(), posExpansion.getJ()] = this.color; ciudadAtacada.setPoblacion(ciudadAtacada.getPoblacion() - 5); ciudadAtacada.tamaño--; //perdida de puntos ciudadAtacada.fitness -= 3; exito = true; //Bonus por ataque completado con exito this.fitness += 5; } else { //Bonus por defensa ciudadAtacada.fitness += 5; exito = false; } } } if (exito) { tamaño++; fitness += 5; } return exito; }
public Juego() { Turno = new Turno(); Tablero = new Tablero(); }
public void NuevaPartida() { Turno.ReiniciarPartida(); Tablero = new Tablero(); }
public void si_existe_una_ficha_en_una_posicion_no_se_puede_poner_otra() { var tablero = new Tablero(); tablero.AddFicha(Fichas.Aspa, new Posicion(0,0)); Assert.Throws<InvalidOperationException>(() => tablero.AddFicha(Fichas.Circulo, new Posicion(0, 0))); }
public Combate(Ciudad ciudad1, Ciudad ciudad2, Ciudad ciudad3, Ciudad ciudad4) { tablero = new Tablero(Constants.TAMAÑO, ciudad1, ciudad2, ciudad3, ciudad4); }
public void si_inicio_el_tablero_este_no_tiene_fichas() { Tablero tablero = new Tablero(); Assert.Equal(0, tablero.GetNumeroFichas()); }