Juego para programadores
Un juego para programadores es un juego de computadora en el que una persona no participa directamente en el juego. En su lugar, escribe un programa de control que lucha con su propio tipo de programas. Dichos juegos son un ejercicio complejo y no trivial para los programadores.
Clasificación de juegos para programadores
Por lenguaje de programación
El programa se puede escribir en un tipo especial de ensamblador o en lenguajes de alto nivel . Los más utilizados son los lenguajes interpretados como Python .
Por objetivo del partido
De acuerdo con el propósito del juego, dichos juegos se dividen en:
- Peleas en la memoria . La tarea del programa es " colgar " el programa del enemigo.
- Juegos de mesa (por ejemplo, en los albores de la cibernética , los torneos de ajedrez por computadora eran populares ).
- Robots de combate. El objetivo del juego es crear un programa de control para un robot o tanque de combate. En algunos juegos, también puedes cambiar la configuración del robot (tipo de motor, armadura, armas, etc.). Las peleas de robots son bastante espectaculares para los forasteros.
- Otros juegos. Conducir un coche de carreras, colonia microbiana, etc.
Historia
En 1961, Bell Labs desarrolló el juego de Darwin . A principios de la década de 1980 , bajo la influencia de "Darwin", se desarrolló el juego Memory Fight . Estaba destinada a hacerse popular, incluso cruzó el Telón de Acero : Pereslavl-Zalessky tenía su propio equipo de "Lucha en la memoria".
En 1970 se llevó a cabo el primer torneo de ajedrez por computadora .
En 1985, Tom Poindexter desarrolló C Robots , el primer juego de programadores para controlar un robot de combate. Un robot de combate es un carro equipado con un radar y un mortero . Para escanear el área, era necesario indicar en qué ángulo girar el radar y la nitidez del patrón de radiación . Cuanto más ancho sea el diagrama, mayor será la posibilidad de que el robot enemigo caiga en el campo de visión, pero la precisión del escaneo es, en consecuencia, menor. El mortero dispara un proyectil de fragmentación, para un disparo debe establecer la dirección y la distancia a la que debe aterrizar el proyectil. Este juego tenía muchas deficiencias: el intérprete no tuvo éxito; un robot que disparaba mucho normalmente vencía a un robot que disparaba bien.
El juego C Robots fue mejorado por David Malmberg y traducido a Pascal , llamado Pascal Robots (o P-Robots). El consumo de combustible se ha agregado al juego; si el robot se quedaba sin combustible, solo podía esperar a que alguien acabara con él. Había obstáculos y juego de equipo. Se ha agregado la capacidad de configurar el robot: puede elegir una de tres pistolas, uno de cinco motores, uno de cinco tanques de combustible, una de tres opciones de armadura, así como equipo adicional: un campo de protección, bombas remotas, una reparación equipo y un disfraz. Sin embargo, no se logró el equilibrio entre el equipo y se escribió el robot Now , explotando este desequilibrio. Ahora no tenía inteligencia; de hecho, era un enorme depósito de combustible, equipado con un motor ligero, un blindaje ligero y un campo de protección. Aprovechando que el campo de protección de los robots con armadura ligera consume muy poco combustible, Now ganó fácilmente tanto en un tiroteo masivo como uno contra uno. Además, después de que se publicó el código fuente de Pascal Robots , se descubrieron varias inconsistencias en el comportamiento del juego como se indica en la documentación: por ejemplo, la documentación dice que una bomba remota golpea a todos los robots, independientemente de si el escudo está encendido; en realidad, el campo protector salva de la bomba.
Quizás el juego de lucha de robots más famoso sea Robocode , desarrollado por IBM . Este juego es muy diferente a Pascal Robots . Si en Pascal Robots el programador le dice al robot en qué dirección ir, y automáticamente entrará en este curso, entonces en Robocode es necesario establecer en qué ángulo girar el volante y a qué velocidad ir. Todos los robots están equipados de la misma manera. Además, los proyectiles no golpean con fragmentos, sino con un golpe directo.
El juego Robocode también resolvió el "problema del árbitro" hasta cierto punto. Si en Pascal Robots, para evitar la fuga de código, se necesitaba una parte neutral que realizara competiciones (un árbitro), entonces en Robocode simplemente puede cargar el archivo de clase de su robot para descargarlo de forma gratuita. La ofuscación protege de forma fiable al robot de la descompilación .
En 1995 tuvieron lugar las primeras carreras en el simulador de coches RARS .( Robot Auto Racing Simulator ). En 1997, se inició el proyecto TORCS , que permitía montar tanto a humanos como a robots.
En 1996, el juego Soldier of the Future de Ivan Gudkov apareció en la plataforma ZX Spectrum . 4 robots podrían participar en el juego. Había un modo de juego en equipo 2×2. Los robots podrían trabajar en parejas, reconocer aliados. Programación modular. El juego tenía un gran potencial, pero la duración del programa del robot estaba artificialmente limitada y había poco espacio para la creatividad.
Hay muchos juegos para programadores hoy en día, pero pocos de ellos son realmente populares.
Los torneos de juegos de mesa entre computadoras no son muy populares, los torneos de ajedrez entre personas y computadoras se llevan a cabo con mayor frecuencia. Los mejores programas de ajedrez para PC (2006) juegan al nivel de un gran maestro , los programas para computadoras especializadas vencen con confianza incluso a los campeones . A principios de la década de 2010, el principal juego de mesa para computadoras era go ; La computadora juega Go al nivel de un buen aficionado.
Los juegos más famosos para programadores
Combate en la memoria
- Darwin es un juego de ordenador para programadores en el que varios programas ensambladores luchaban hasta que uno de los programas se quedaba con toda la memoria.
- Memory Fight es una variación del juego de computadora Darwin, donde los programas están escritos en el lenguaje Redcode y se ejecutan bajo el control del Memory Array Redcode Simulator.
Control de robots de combate
- Robots C
- robots pascuales
- Robocode [1] es una batalla de robots tanque. Los programas se pueden escribir en Java o .NET.
- batalla de robots
- guerra de robots
- Robot Warfare 1 es una batalla de robots en un campo 2D.
- Scalatron es una competencia de robots en la arena. La batalla de robots está prevista, pero no es necesario luchar para ganar. Los programas están escritos en Scala o Java.
- Grobots es un juego de estrategia en el que escribes programas para controlar equipos de robots. Los programas de control de robots están escritos en un dialecto del lenguaje de programación Forth . El juego se puede utilizar para la enseñanza y el aprendizaje de Forth [2] .
- Imperfect World Of Robots (IWOR) es una simulación de un mundo en el que los robots controlados por el programa vivirán, trabajarán, protegerán a su "tribu" y producirán descendencia. El juego tiene una diferencia importante y útil (en términos de aprender a programar basado en este juego; realizar competiciones) de otros juegos: los robots escritos para él usan "sockets" y "mensajes" para su funcionamiento, por lo que pueden escribirse en casi todos los lenguajes de programación y se ejecutan en máquinas con diferentes sistemas operativos. Este juego es un tipo de servidor.
- BOTS: BOts Tactical Simulation : el concepto del juego es similar a otros juegos como C Robots o JRobots.
- JRobots es un clon de C Robots en Java.
- Juego general : en este juego, una persona no programa un robot, como en muchos otros juegos, sino las reglas del juego; sin embargo, es muy posible programar este juego como un juego que controla robots de combate que actúan de acuerdo con las reglas del juego programadas por los jugadores (por ejemplo, la programación de reglas de juego "básicas" puede ser implementada por los organizadores de la competencia, y los jugadores, basándose en las reglas del juego, desarrollan reglas para robots). Este juego implementa inteligencia artificial: en lugar de actuar sobre la base de "reglas estrictas de comportamiento en situaciones típicas" preestablecidas por una persona, el vehículo de combate en el juego determinará su propio comportamiento y tomará decisiones por sí mismo, de acuerdo con las reglas de juego que se le proporcionan, que son restricciones para posibles acciones. El juego es tanto un juego como una herramienta de investigación y aprendizaje en el campo de la inteligencia artificial.
- OpenNERO : el juego es tanto un juego como una herramienta de investigación y aprendizaje en el campo de la inteligencia artificial. Los robots de combate del juego están controlados por redes neuronales informáticas. Una característica del juego son sus gráficos, es mejor en comparación con otros juegos de esta lista, hay un modo multijugador. OpenNERO se ha utilizado para implementar varias demostraciones y ejercicios para el libro de texto de Russell y Norvig " Inteligencia artificial: un enfoque moderno ": técnicas de IA como búsqueda de fuerza bruta, búsqueda heurística, secuencias de comandos, aprendizaje reforzado y computación evolutiva, así como problemas de IA como navegar por laberintos, recolectar artículos y "batalla de robots". Los métodos y tareas del tutorial se implementan en varios entornos diferentes (o "mods"). El grupo de investigación de Redes neuronales tiene algunos otros proyectos que son similares en espíritu al juego descrito y que también se pueden utilizar para juegos, investigación y actividades educativas.
Otros
- Colobot es un juego de estrategia educativo en 3D en el que los robots se pueden programar mediante un lenguaje integrado.
- Ceebot es una serie de juegos educativos en 3D para niños basados en el juego Colobot y destinados al uso en las escuelas.
- Robot Auto Racing Simulator o RARS es un simulador de carreras en 3D entre autos de carrera programados .
- TORCS es un simulador de coches basado en RARS y es adecuado tanto para la conducción normal como para la competición entre coches de carreras programados.
- Snake Battle : programación "visual" de serpientes de combate.
- Virus War es un juego que simula el desarrollo de dos colonias de virus que se desarrollan y se destruyen entre sí.
- Capture the Flag es una competición por equipos cuyo objetivo es evaluar la capacidad de los participantes para atacar y defender los sistemas informáticos.
- CheckiO - aprendiendo el lenguaje de programación Python. Posibilidad de jugar a varios juegos según las condiciones de programación.
Notas
- ↑ El uso de programación genética de dos etapas para construir un modelo de tanque en el juego "ROBOCODE" (enlace inaccesible) . - Artículo. - Revista NRU ITMO - Marzo-Abril 2011
- ↑ Grobots
Enlaces