Autor
|
Tema: [C] proyecto sobre scrabble en mente, dudas sobre la "IA" (Leído 3,697 veces)
|
Traxza
Desconectado
Mensajes: 2
|
Buenas tardes, llevo semanas calentándome la cabeza hasta que me decido postear mi "problema" para pedir ideas.
Estoy trabajando en un proyecto en C standard (con algo de c++ pero poco), en el juego scrabble mas concretamente, y tengo por ahora el proyecto casi terminado, pero para que soporte un jugador o 2 jugadores "humanos", mi problema viene cuando quiero implementar una especie de IA o robot para jugar contra un jugador humano, no hago mas que darle vueltas a la cabeza pero o se me ocurren locuras o no se me ocurre nada.
No vengo al foro a que me den las cosas hechas ni mucho menos, tan solo me gustaría que quien quiera poner su granito de arena me aporte alguna idea, y añadir que el proyecto es para aprender.
Para hacer una idea a quien lea el post, tengo una estructura en el tablero de juego así:
struct casilla { int bonus;//si es por dos o por tres int tipobonus;//si es de letra o de palabra bool ocupado;//controla si ya esta ocupada bool candidata;//controla si puede ser ocupada char letra;//letra int valor;//valor en puntos bool nueva;//se controla si es de las recién colocadas bool puntuado;//se controla cada turno si esta ficha ha sido puntuada };
Estoy abierto a modificaciones en la estructura sin problemas.
Por ahora soy capaz de formar palabras con las 7 letras del "estante" del robot, pero sin tener en cuenta las letras del tablero, por otra parte, si tuviese en cuenta alguna letra o conjunto de letras sé que debería forzar que esas letras se encuentren en la palabra final en el mismo orden.
Gracias por vuestra atención.
|
|
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Podemos pensar en, segun las palabras que disponga el bot. Generar una lista de palabras equivalentes o seudoequivalentes (seudoequivalente es igual pero faltando la ultima/primera letra). Calcular los puntos de cada palabra y coger la que más tiene, después sería buscar alguna letra "libre" con la que cruzar (colocar la palabra y detectar si hay alguna palabra en horizontal o vertical).
Creo que deberías seguir ese camino. De momento intenta apañarte una función que te devuelva las palabras posibles respecto a un cojunto de letras desordenadas...
|
|
|
En línea
|
|
|
|
OmarHack
Desconectado
Mensajes: 1.268
|
Si quieres algo profesional busca una lista con las palabras del diccionario para que el bot maneje. También puedes ponerle dificultad, y esta variará según el tamaño que le pongas a la base de datos con las palabras. Lleva mucho trabajo, pero si le pones 100 parabras, le vas a ganar siempre, todo depende de las letras que generes para usar.
|
|
|
En línea
|
I like to test things.
|
|
|
Traxza
Desconectado
Mensajes: 2
|
De momento intenta apañarte una función que te devuelva las palabras posibles respecto a un cojunto de letras desordenadas...
Sí, he creado una función que recoge una cadena de caracteres y forma todas las palabras posibles (que hay en un diccionario binario con 75.000 palabras)con esas letras, en milésimas de segundo, pero sin tener en cuenta las del tablero (por ahora), mañana seguiré a ver que puedo sacar de todo esto, gracias
|
|
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Perfecto, ahora lo ideal sería encontrar un "cruce" donde meter.
Por no complicarse mucho, coge la ultima letra de una palabra y busca otra igual en el tablero. Cada letra que encuentres en el tablero debe cumplir el siguiente requisito:
- Que no haya ninguna otra letra ocupada en n+1 espacios a la izquierda (donde n es la longitud de la palabra).
Despues ya, intenta generalizarlo para cruzar en vertical, de izquierda a derecha...
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
dudas sobre las tarjetas PCI "ws"
Materiales y equipos
|
yopispo
|
3
|
2,651
|
6 Enero 2009, 21:59 pm
por zydas
|
|
|
dudas sobre "ataque modelo"
Hacking
|
aeroslax
|
1
|
3,900
|
19 Noviembre 2009, 11:46 am
por kamsky
|
|
|
Dudas sobre "preparación" para la programación
« 1 2 »
Programación General
|
pequezere
|
11
|
5,765
|
11 Octubre 2011, 20:45 pm
por pequezere
|
|
|
Dudas sobre reaver y tarjeta de red "sorda"
« 1 2 »
Hacking Wireless
|
Anshii
|
10
|
9,639
|
31 Octubre 2012, 21:46 pm
por Sh4k4
|
|
|
Dudas sobre "LynxFramework" (payload: facebook)
Hacking
|
Dog Evil !
|
0
|
2,305
|
9 Abril 2016, 04:04 am
por Dog Evil !
|
|