Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAurora Figueroa Carmona Modificado hace 7 años
1
Don Cangrejo EI2001-9 Taller de Proyecto 2011 Semestre Otoño Grupo 5
Natalia Hernández Gustavo Moreno Felipe Quintanilla
2
Objetivo Robot de lego que juega “Four in a line” contra una persona.
Analiza jugadas y posiciona en el casillero más conveniente del tablero su ficha
3
Descripción Don Cangrejo juega el clásico juego “Connect 4” que consiste en colocar 4 fichas juntas en una columna, fila o diagonal para poder ganar. Utiliza motores para posicionar fichas y sensor de color para detectar las jugadas del oponente. Capaz de posicionar su jugada en un casillero adecuado. Sensor de choque para asignar turnos.
4
Robot Tablero
5
Riel
6
Coche Superior
7
Brazo
8
Programa Clases: Casilla: cada una indica su posición y estado
Tablero: arreglo de 6x7 con todas las casillas del tablero. Linea: arreglo de 4 casillas Lista: lista enlazada con líneas ganadoras. Jugadas: lista enlazada con las 7 casillas donde puede realizar su jugada.
9
Métodos: casilla Tablero.leer(): revisa el tablero para detectar la jugada del oponente void Jugadas.actualizar(): actualiza la lista enlazada para tener siempre las casillas disponibles void Tablero.jugar(casilla): mueve al robot para jugar en la casilla señalada void casilla.cambiarEstado(int)
10
int linea.puntaje(casilla)
le asigna un puntaje dependiendo de cómo esta llenada la línea y de si la casilla c está en la línea -1--> la casilla no está en la línea, el main la ignorará -2--> hay fichas de los dos jugadores -3--> 4 fichas del robot, se acabó el juego el robot gana -4--> 4 fichas del oponente, se acabó el juego el robot pierde >0--> puntaje obtenido
11
Exceptions: RobotGana RobotPierde
12
Programa try{ while(true){ Casilla r=Tablero.leer()
r.cambiarEstado(2); jugadas.actualizar(); for(nodoB aux=jug.primero;aux!=null;aux=aux.sig){aux.p=0;} //resetea los puntajes de las casillas a cero; for(nodoB aux=jug.primero;aux!=null;aux=aux.sig){ for(nodoA bux=lis.primero;bux!=null;bux=bux.sig){ q=bux.valor.puntaje(aux.cas); if(q==-2) {bux.ant.sig=bux.sig;bux.sig.ant=bux.ant;} //elimina la linea de la lista else if(q>=0)aux.p+=q;//suma el puntaje obtenido else if(q==-3)throw new RobotGana(); else if(q==-4)throw new RobotPierde(); }
13
//una vez que se revisan todas las casillas y se asignan los puntajes se elige la mejor
Casilla mejor;int m=0; for(nodoB aux=jug.primero;aux!=null;aux=aux.sig){ if(m<aux.p){mejor=aux.cas;m=aux.p;} Tablero.jugar(mejor); mejor.cambiarEstado(1) jugadas.actualizar(); } }
14
Cosas que faltan : Fichas
Calibrarlo para que pueda moverse correctamente Probar la efectividad del algoritmo
15
Una Pequeña demostración…
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.