// Comequesos en C #include <conio.h> #include <stdio.h> #include <stdlib.h> // Declaro aqui // Todos los elementos usados #define WIDTH 40 #define HEIGHT 20 #define PACMAN 'C' #define WALL '#' #define FOOD '.' #define EMPTY ' ' #define DEMON 'X' // Declaro las variables globales // aqui int res = 0; int score = 0; int pacman_x, pacman_y; char board[HEIGHT][WIDTH]; int food = 0; int curr = 0; void initialize() { // Putting Walls as boundary in the Game for (int i = 0; i < HEIGHT; i++) { for (int j = 0; j < WIDTH; j++) { if (i == 0 || j == WIDTH - 1 || j == 0 || i == HEIGHT - 1) { board[i][j] = WALL; } else board[i][j] = EMPTY; } } // Pone paredes al juego int count = 50; while (count != 0) { int i = (rand() % (HEIGHT + 1)); int j = (rand() % (WIDTH + 1)); if (board[i][j] != WALL && board[i][j] != PACMAN) { board[i][j] = WALL; count--; } } int val = 5; while (val--) { int row = (rand() % (HEIGHT + 1)); for (int j = 3; j < WIDTH - 3; j++) { if (board[row][j] != WALL && board[row][j] != PACMAN) { board[row][j] = WALL; } } } // Pone demonios en el juego count = 10; while (count != 0) { int i = (rand() % (HEIGHT + 1)); int j = (rand() % (WIDTH + 1)); if (board[i][j] != WALL && board[i][j] != PACMAN) { board[i][j] = DEMON; count--; } } // Cursor en el centro pacman_x = WIDTH / 2; pacman_y = HEIGHT / 2; board[pacman_y][pacman_x] = PACMAN; // Points Placed for (int i = 0; i < HEIGHT; i++) { for (int j = 0; j < WIDTH; j++) { if (i % 2 == 0 && j % 2 == 0 && board[i][j] != WALL && board[i][j] != DEMON && board[i][j] != PACMAN) { board[i][j] = FOOD; food++; } } } } void draw() { // Borra pantalla system("cls"); // Dibuja todos los elementos de la pantalla for (int i = 0; i < HEIGHT; i++) { for (int j = 0; j < WIDTH; j++) { printf("%c", board[i][j]); } printf("\n"); } printf("Puntaje: %d\n", score); } // Function permite mover el Cursor void move(int move_x, int move_y) { int x = pacman_x + move_x; int y = pacman_y + move_y; if (board[y][x] != WALL) { if (board[y][x] == FOOD) { score++; food--; curr++; if (food == 0) { res = 2; return; } } else if (board[y][x] == DEMON) { res = 1; } board[pacman_y][pacman_x] = EMPTY; pacman_x = x; pacman_y = y; board[pacman_y][pacman_x] = PACMAN; } } // Main Function int main() { initialize(); char ch; food -= 35; int totalFood = food; // Instructions to Play printf(" Usa botnes w(arriba), a(izq) , d(der) y " "s(abajo)\nTambién, presiona q para salir\n"); printf("Ingresa S para continuar: \n"); ch = getch(); if (ch != 'S' && ch != 's') { printf("Salir del juego! "); return 1; } while (1) { draw(); printf("Total de quesos: %d\n", totalFood); printf("Total de quesos comidos: %d\n", curr); if (res == 1) { // Clear screen system("cls"); printf("Game Over! Te mató un demonio\n Tu puntaje: " "%d\n", score); return 1; } if (res == 2) { // borra pantalla system("cls"); printf("Ganaste! \n Tu puntaje: %d\n", score); return 1; } // toma entrada del usuario ch = getch(); // Se mueve de acuerdo // ia la entrada del personaje switch (ch) { case 'w': move(0, -1); break; case 's': move(0, 1); break; case 'a': move(-1, 0); break; case 'd': move(1, 0); break; case 'q': printf("Recontra Game Over! Tu puntaje: %d\n", score); return 0; } } return 0; }