Visual C++ .NET - Error de sintaxis ==

 
Vista:
sin imagen de perfil

Error de sintaxis ==

Publicado por Aaron (1 intervención) el 09/11/2021 02:20:11
Hola me salta un error por alguna razon sobre error de sitaxis, la idea era programar el juego de la batalla naval para un parcial de la materia programacion el codigo es el siguiente:



#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;




void gotoxy(int x, int y) {
HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD dwPos;
dwPos.X = x;
dwPos.Y = y;
SetConsoleCursorPosition(hcon, dwPos);
}
class enemigo {
private:

public:
void pintar(int, int);

void mover(int, int);


};
void enemigo::pintar(int x, int y)
{

gotoxy(5, 5); cout << "A";





if (_kbhit())
{

const char tecla = _getch();
if ( tecla == "a") x--;
if (tecla == "d") x++;
if (tecla == "s") y--;
if ( tecla == "w") y++;
}


}




int main()
{
enemigo a;

while (true){

a.mover(5, 5);



}





}
GRACIAS :)
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

Corrección de código para juego de Batalla naval en consola

Publicado por Alejandro (265 intervenciones) el 20/02/2024 17:05:33
Hola Aarón, veo algunos errores en tu código que podrían estar causando problemas. Aquí hay una versión corregida:

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
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
 
void gotoxy(int x, int y) {
    HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD dwPos;
    dwPos.X = x;
    dwPos.Y = y;
    SetConsoleCursorPosition(hcon, dwPos);
}
 
class enemigo {
private:
 
public:
    void pintar(int, int);
    void mover(int, int);
};
 
void enemigo::pintar(int x, int y) {
    gotoxy(x, y);
    cout << "A";
}
 
void enemigo::mover(int x, int y) {
    pintar(x, y);
 
    if (_kbhit()) {
        const char tecla = _getch();
        if (tecla == 'a') x--;
        if (tecla == 'd') x++;
        if (tecla == 'w') y--;
        if (tecla == 's') y++;
    }
    Sleep(100);  // Añadí un pequeño retardo para que sea más visible el movimiento
    system("cls");  // Limpia la pantalla antes de pintar en la nueva posición
}
 
int main() {
    enemigo a;
    int x = 5, y = 5;
 
    while (true) {
        a.mover(x, y);
    }
 
    return 0;
}

Correcciones realizadas:
1. Corregí la comparación de caracteres en las condiciones de `_kbhit()`.
2. Cambié las comillas dobles (`"`) por comillas simples (`'`) para comparar caracteres en las condiciones.
3. Añadí una pausa (`Sleep(100)`) para hacer más visible el movimiento.
4. Agregué `system("cls")` para limpiar la pantalla antes de pintar en la nueva posición.
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