El desafío es simple. Proporcione el código más corto posible para reproducir el clásico juego de 2 jugadores de pong http://en.wikipedia.org/wiki/Pong . El nivel de gráficos y funcionalidad debe ser lo más cercano posible a esta demostración de JavaScript http://codeincomplete.com/posts/2011/5/14/javascript_pong/demo.html (pero sin las opciones adicionales, puede hacer clic a la izquierda o la información del cuadro, fps, etc. en la parte inferior derecha).
Como siempre, el código debe estar escrito en un lenguaje libre (en ambos sentidos) y debe ser ejecutable en Linux. Las bibliotecas utilizadas también deben ser gratuitas, fácilmente disponibles y no estar escritas para los propósitos de esta competencia (¡y tampoco deben contener una versión funcional de Pong!).
fuente
Respuestas:
Javascript, 883 (+ 70 HTML)
La secuencia de comandos se puede colocar al final
<body>
o llamaronLoad
. Necesita el siguiente elemento de lienzo:El jugador 1 usa las teclas qy a, y el jugador 2 usa las teclas py l. Presione la esctecla para pausar y cualquier tecla para iniciar / continuar.
Puedes jugarlo en tu navegador aquí .
No estaba seguro de la física que usaría, así que comencé con un método simple de reflexión y luego agregué algo de variedad y experimenté un poco con él. La velocidad de la pelota en la dirección y se ve afectada por el lugar en el que golpeas la pelota, por lo que tienes cierto control sobre dónde va la pelota. La velocidad de la pelota en la dirección x aumenta lentamente con cada golpe en el rally.
Sospecho que las soluciones que usan bibliotecas pueden superarlo con bastante facilidad, pero me divertí haciéndolo en JavaScript simple.
fuente
20
a una variable llamadag
y guardar un byte miserable.sed, 35
Elevar un poco el listón con una meditación de sed con sello postal.
La meditación se disfruta en stdin / stdout en dos computadoras, no necesariamente conectadas por una red. La meditación comienza en el estado.
con guru zero a la izquierda y uno a la derecha. El corchete angular se mueve hacia la izquierda y hacia la derecha, y si un gurú maniobra su número para contactar con el cursor cuando llega a su lado, su puntaje aumenta en uno y se llenan de alegría.
La meditación se inicia escribiendo el estado anterior en
sed -f medi.sed
, y la computadora responde con el siguiente estado. Los gurús obedientes escriben en la meditación, leen en voz alta la siguiente tecla que presionarán, y ambos gurús presionan la tecla sagrada haciaenter
el futuro al mismo tiempo. La computadora obediente responde con el siguiente estado. Esto, a su vez, se lee en voz alta mientras se escribe al unísono como con el último. Continúa avanzando hacia el futuro hasta alcanzar la dicha infinita.Los gurús que deseen un desafío pueden jugar el modo 'turbo', en el que los gurús intentan predecir en colaboración el siguiente estado de la computadora y lo escriben en el indicador en lugar del estado actual. Los gurús tendrán la sabiduría de verificar el acuerdo entre sus predicciones antes de ingresar al futuro.
fuente
Python (con pygame ) 650 bytes
Caracteristicas
Como nota final, me gustaría solicitar que esta solución no se seleccione como la respuesta aceptada, por varias razones.
Captura de pantalla de muestra:
Nota: la fuente utilizada para la partitura puede variar de un sistema a otro.
fuente
HTML y JavaScript (toma 2) - 525
Dado que al OP no parecía importarle mucho la parte "lo más cercana posible", aquí hay una solución alternativa que simplifiqué, despojé y jugué sin piedad. Q / A y P / L para jugar, pero cualquier otra tecla también tiene un efecto. Una vez más, el código es totalmente autónomo y lo probé en Chromium 25 en Linux. Puedo jugarlo aún más si puedes aceptar pequeños errores o una mayor degradación de la calidad gráfica / juego.
Gracias Shmiddty
fuente
c=window.c
. Estás asignando una variable global a sí mismo.++S[n]
dentro de.random(++S[n])
HTML y JavaScript - 1663
Contra mi mejor juicio, tomé el enfoque loco de jugar al golf el código real de la demostración. Eliminé algunas características y elementos de la interfaz, pero en general funciona exactamente igual: 0, 1 o 2 para elegir la cantidad de jugadores humanos, Q / A y P / L para mover.
A menos que haya cometido algunos errores, el juego debe ser idéntico, píxel por píxel y milisegundos por milisegundo, al original en 640 * 480 (pista: cambiar el tamaño de la ventana del navegador cambia el tamaño del juego en la demostración). Simplemente no da instrucciones, no anuncia al ganador y no maneja esc.
El código es totalmente autónomo y lo probé en Chromium 25 en Linux. A Firefox no le gusta mucho.
Algunos créditos a Shmiddty por mejoras
fuente
Procesamiento, 487 caracteres
Captura de pantalla de muestra:
Este código se hizo teniendo en cuenta la brevedad, por lo que es bastante defectuoso (la pelota a veces atraviesa la paleta o se envuelve). Los controles son Q / A para el jugador 1 y O / L para el jugador 2.
fuente
C # - 1283 caracteres
Esto se puede jugar un poco más de golf, pero aquí está.
Editar: No vi el requisito de un lenguaje libre, ejecutable por Linux ...
fuente
Tcl / Tk , 932 bytes
Debe ejecutarse en el shell interactivo
Nota:
Solo una versión muy mínima de Pong, donde la pelota solo corre en ángulos diagonales y siempre tiene la misma velocidad.
fuente