C/Visual C - PAC-MAN!!!!!

 
Vista:

PAC-MAN!!!!!

Publicado por Jorge Valero (3 intervenciones) el 08/12/2002 20:43:33
Hola, necesito ayuda urgente para encontrar un código del juego PACMAN para C++ que utilice clases y objetos que corra, porque la mayoría de los códigos que he bajado no corren debido a que les hace falta una o mas librerías del autor.
Les agradezco de antemano.

Atte. Jorge Valero (Universidad Panamericana).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Implementación de Pac-Man en C++ utilizando clases y objetos

Publicado por Alejandro (980 intervenciones) el 22/04/2025 23:07:51
Hola Jorge.

A continuación, te presento un ejemplo básico de un juego de Pac-Man en C++ que utiliza clases y objetos. Este código es simplificado y no requiere librerías externas, por lo que debería correr sin problemas en un entorno estándar de C++. Asegúrate de compilarlo en un entorno que soporte C++.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <vector>
#include <conio.h> // Para _getch()
#include <windows.h> // Para Sleep()
 
using namespace std;
 
class Game {
private:
    vector<vector<char>> board;
    int pacmanX, pacmanY;
    int score;
 
public:
    Game() : pacmanX(1), pacmanY(1), score(0) {
        board = {
            {'#', '#', '#', '#', '#', '#', '#', '#', '#', '#'},
            {'#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#'},
            {'#', ' ', '#', ' ', '#', ' ', '#', '#', ' ', '#'},
            {'#', ' ', '#', ' ', ' ', ' ', ' ', '#', ' ', '#'},
            {'#', ' ', '#', '#', '#', '#', ' ', '#', ' ', '#'},
            {'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '#'},
            {'#', '#', '#', '#', '#', '#', '#', '#', '#', '#'}
        };
    }
 
    void draw() {
        system("cls"); // Limpiar la consola
        for (const auto& row : board) {
            for (const auto& cell : row) {
                cout << cell;
            }
            cout << endl;
        }
        cout << "Score: " << score << endl;
    }
 
    void movePacman(char direction) {
        int newX = pacmanX;
        int newY = pacmanY;
 
        if (direction == 'w') newX--;
        else if (direction == 's') newX++;
        else if (direction == 'a') newY--;
        else if (direction == 'd') newY++;
 
        if (board[newX][newY] != '#') {
            if (board[newX][newY] == ' ') {
                score++;
            }
            board[pacmanX][pacmanY] = ' ';
            pacmanX = newX;
            pacmanY = newY;
            board[pacmanX][pacmanY] = 'P'; // P para Pac-Man
        }
    }
 
    void run() {
        board[pacmanX][pacmanY] = 'P'; // Inicializar Pac-Man en la posición
        while (true) {
            draw();
            if (_kbhit()) {
                char ch = _getch();
                movePacman(ch);
            }
            Sleep(100); // Controlar la velocidad del juego
        }
    }
};
 
int main() {
    Game game;
    game.run();
    return 0;
}

Explicación del código:


1. Clase `Game`: Esta clase contiene la lógica del juego, incluyendo el tablero, la posición de Pac-Man y el puntaje.
2. Método `draw`: Dibuja el tablero en la consola y muestra el puntaje.
3. Método `movePacman`: Mueve a Pac-Man en la dirección indicada (w, a, s, d) y actualiza el puntaje si Pac-Man se mueve a una celda vacía.
4. Método `run`: Controla el bucle principal del juego, donde se dibuja el tablero y se detectan las entradas del teclado.

Notas:


- Este código utiliza la biblioteca `<conio.h>` para la entrada del teclado y `<windows.h>` para la función `Sleep()`. Asegúrate de compilarlo en un entorno que soporte estasbibliotecas.
- Puedes expandir este código para incluir más características, como fantasmas, más niveles, o un sistema de puntuación más complejo.

¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar