Jugo de Gato
Publicado por Érick ramírez (7 intervenciones) el 28/03/2001 23:44:25
Necesito hacer un juego de GATO en este lenguaje, con modo gráfico y quiero aprender a usarlo, y ideas para hacer el gato.gracias
Valora esta pregunta


0
#include <SDL.h>
#include <stdio.h>
// Dimensiones de la ventana
const int WINDOW_WIDTH = 400;
const int WINDOW_HEIGHT = 400;
// Tamaño de cada casilla del gato
const int CELL_SIZE = 100;
// Número de filas y columnas del gato
const int NUM_ROWS = 3;
const int NUM_COLS = 3;
// Representación del tablero del gato
char board[NUM_ROWS][NUM_COLS] = { { ' ', ' ', ' ' },
{ ' ', ' ', ' ' },
{ ' ', ' ', ' ' } };
// Función para dibujar el tablero del gato
void drawBoard(SDL_Renderer* renderer) {
// Limpiar la pantalla
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderClear(renderer);
// Dibujar las líneas verticales
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
for (int i = 1; i < NUM_COLS; i++) {
SDL_RenderDrawLine(renderer, i * CELL_SIZE, 0, i * CELL_SIZE, WINDOW_HEIGHT);
}
// Dibujar las líneas horizontales
for (int i = 1; i < NUM_ROWS; i++) {
SDL_RenderDrawLine(renderer, 0, i * CELL_SIZE, WINDOW_WIDTH, i * CELL_SIZE);
}
// Dibujar las X y O en las casillas correspondientes
for (int row = 0; row < NUM_ROWS; row++) {
for (int col = 0; col < NUM_COLS; col++) {
if (board[row][col] == 'X') {
// Dibujar X
SDL_RenderDrawLine(renderer, col * CELL_SIZE, row * CELL_SIZE, (col + 1) * CELL_SIZE, (row + 1) * CELL_SIZE);
SDL_RenderDrawLine(renderer, col * CELL_SIZE, (row + 1) * CELL_SIZE, (col + 1) * CELL_SIZE, row * CELL_SIZE);
} else if (board[row][col] == 'O') {
// Dibujar O
int centerX = col * CELL_SIZE + CELL_SIZE / 2;
int centerY = row * CELL_SIZE + CELL_SIZE / 2;
int radius = CELL_SIZE / 2 - 10;
SDL_RenderDrawCircle(renderer, centerX, centerY, radius);
}
}
}
// Actualizar la pantalla
SDL_RenderPresent(renderer);
}
// Función para manejar los eventos del juego
void handleEvents(SDL_Renderer* renderer) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
exit(0);
break;
case SDL_MOUSEBUTTONDOWN:
// Obtener las coordenadas del clic del mouse
int mouseX = event.button.x;
int mouseY = event.button.y;
// Calcular la casilla correspondiente
int row = mouseY / CELL_SIZE;
int col = mouseX / CELL_SIZE;
// Verificar si la casilla está vacía
if (board[row][col] == ' ') {
// Colocar la marca del jugador actual
board[row][col] = 'X';
// Dibujar el tablero actualizado
drawBoard(renderer);
// Simular el turno del oponente (IA)
// Aquí puedes implementar tu lógica para el movimiento del oponente
// Dibujar el tablero actualizado
drawBoard(renderer);
}
break;
}
}
}
int main() {
// Inicializar SDL
SDL_Init(SDL_INIT_VIDEO);
// Crear la ventana y el renderer
SDL_Window* window = SDL_CreateWindow("Juego de GATO", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WINDOW_WIDTH, WINDOW_HEIGHT, 0);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
// Ciclo principal del juego
while (1) {
// Manejar los eventos del juego
handleEvents(renderer);
}
// Liberar recursos y cerrar SDL
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}