En general, los problemas que terminará corriendo dependerán de usted y sus enfoques. Friend tiende a decir que el complejo es simple desde una perspectiva diferente.
La elección de la biblioteca de gráficos depende del tipo de juego que va a escribir? OpenGL es una opción común en este tipo de proyectos, pero también podría usar alguna biblioteca de GUI o directamente usar las propias bibliotecas de windows o xorg. Si te va a encantar, simplemente usa OpenGL.
Preguntas que debéis preguntar:
es C++ elección sensata para este proyecto? Considera C y/o python también.Mi respuesta a esto sería que si solo quieres escribir reversi, ve a Python. Pero si quiere aprender un idioma de bajo nivel, primero haga C. C++ es una extensión a C, por lo tanto, hay más para aprender allí que en C. Y a mi juicio, cuanto más se tiene que aprender en C++ no vale la pena el esfuerzo.
¿Cómo se usa la biblioteca de gráficos? Si va a hacer efectos de fantasía, vaya al gráfico de escena. En su lugar, puede renderizar la cuadrícula reversei con botones.
¿Cómo debe implementar la interfaz de usuario, debe utilizar los conceptos de interfaz de usuario común? Los conceptos de UI habituales (ventanas, marcos, botones, barras de menú, diálogos) no son tan buenos como la gente cree que son, hay mucho trabajo para implementarlos correctamente. Aplica el gráfico de escena para interpretar la entrada y prueba diferentes formas inteligentes de controlar el juego. Evite los menús de introducción (son un trabajo tonto e inútil), use argumentos de línea de comando para la mayoría de las configuraciones.
todavía a dar algunas ideas para empezar:
mesa Othello es 8x8, 64 células en general. Puede asignar un byte por cada celda, lo que lo convierte en 64 bytes por cada estado de la placa. Son 8 entradas largas, ¡no mucho! Puede almacenar todo el progreso del juego y el jugador ni siquiera puede notarlo. Por lo tanto, se recomienda implementar el tablero othello como una estructura inmutable que copia siempre cuando cambia un estado. También lo ayudará más adelante con su IA e implementando una función 'deshacer'.
Como un byte puede almacenar más información que solo tres estados (VACÍO, NEGRO, BLANCO), le aconsejo que también proporcione dos estados adicionales (BLACK_ALLOWED, WHITE_ALLOWED, BOTH_ALLOWED). Puede calcular estos valores mientras copia el nuevo estado.
Algoritmo para verificar dónde puede poner un bloque, puede ir al tablero uno por uno, luego rastrear desde celdas vacías a cada dirección para patrones regex: B + W => W ^, W + B => B^De esta manera puedes encapsular las reglas del juego dentro de una interfaz simple que se ocupa de todo.
¿Estás hablando de implementar una estrategia para la reversión o simplemente dejar que dos jugadores jueguen en la computadora? – Barth
una estrategia. buena pregunta. – EvilTeach