2008-11-28 17 views
6

¿Cuál sería la mejor manera de mostrar el tablero de juego simple del programa & (por ejemplo, ajedrez, damas y demás) en C#? En términos de controles y lógica de juego subyacente.¿La mejor manera de mostrar y programar el tablero de juego?

Una idea que me vino a la mente fue utilizar Cuadro de imagen (o clase que hereda de él) con el tablero & Clases de campo.

  • ¿Es esa una solución decente después de todo?
  • ¿Cómo separaría los gráficos de la lógica del juego usando esta solución (creo que las clases de campo de la Junta & pueden no ser suficientes)?
  • ¿La PictureBox es lo suficientemente eficiente para tal fin?

Google también me llevó a soluciones usando botones/etiquetas para cada campo de juego. Pero volvamos a Board, Field y PictureBox.

Capacidad de ampliación: su diseño adecuado permitiría implementar fácilmente cualquier otro juego de mesa (o incluso juego de cartas), ya que se trata de tablas con campos modificables.

Respuesta

4

En un enfoque orientado a objetos, piense en los objetos que intervienen en su juego (por ejemplo, el tablero, las piezas) ... permita que cada uno proporcione un método de dibujo que tome un objeto Graphics y se dibuje en él.

El dibujo en sí podría realizarse en un PictureBox - este es el control ideal para tal fin - pero esto no es tan importante porque una vez que su lógica de dibujo está en su lugar, no dependerá del tipo de controlar.

En general, no utilice use soluciones con diferentes controles. Esto podría ser bueno para una GUI convencional. No tanto para juegos (o cualquier tipo de aplicación de gráficos pesados).

1

Si quieres la brillante, puedes probar WPF, la perf. no es tan malo ahora, y es muy fácil obtener gráficos muy personalizables, cargando desde archivos externos, etc ....

En términos de generalización del comportamiento, es probable que desee separar el código del gráfico de escena (diseño, dibujo objetos, y todas las cosas aburridas de bajo nivel), luego pon una capa para la interacción general del juego de mesa: seleccionando la fuente y luego el destino de los movimientos, turnos y similares, y luego aplica la lógica de tu juego sobre eso.

Probablemente lo primero que haría funcionar a Tic-Tac-Toe, ver si hay alguna necesidad de separar la separación de las capas, y arreglarlo temprano, antes de quedar atrapado en la lógica del juego.

4

Desde la perspectiva de la estructura de datos, eche un vistazo a la estructura de datos del bitboard. http://en.wikipedia.org/wiki/Bitboard

+0

Un buen consejo, pero de muy bajo nivel y, en última instancia, irrelevante cuando se piensa en el aspecto front-end del juego. –

1

Si se siente muy aventurero puede probar XNA;)

sí, es más complicada que las otras soluciones y podría ser excesiva para un juego de mesa, pero una vez que se obtiene una caída de ella que son libres de hacer algunos juegos increíbles

0

Generalmente, primero se diseñan las construcciones lógicas para la placa, piezas y demás, luego las operaciones sobre éstas, y finalmente solo se diseña una interfaz gráfica, más o menos como una interfaz.

Cuestiones relacionadas