Zeichen über den Bildschirm(konsole) bewegen - PROBLEM



  • Hallo Leute,
    ich brauche mal wieder Hilfe. Ich bin gerade dabei ein Zeichen durch das drücken der Tasten w,a,s,d über den Bildschirm zu bewegen. Ich habe dies schon einmal geschafft (schon etwas her), weiß nur nicht mehr wie genau ihc das angestellt habe.
    Ich habe den kompletten code mal hier reinkopiert.

    MEIN PROBLEM: Das Zeichen reagiert auf keine Art von Tastendruck und bewegt sich dementsprechend nicht.

    Könntet ihr mir sagen was ich falsch gemacht habe ?

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <conio.h>
    #include <iostream>
    
    int a=15;
    int b=23;
    
    void gotoxy(int x, int y)
    {
        HANDLE hStdout;
        COORD coordScreen = { 0, 0 };
        hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
    
        coordScreen.X = x;
        coordScreen.Y = y;
        SetConsoleCursorPosition( hStdout, coordScreen );
    }
    
    void move()
    {
        gotoxy(a,b);
        printf("#");
        char ch=0;
        while (1);
        {
            ch = getch();
    
            switch(ch)
            {
    
                case 'w':
                {
                    gotoxy(a,b);
                    printf(" ");
                    a--;
                    gotoxy(a,b);
                    printf("#");
                    break;
                }
                case 'a':
                {
                    gotoxy(a,b);
                    printf(" ");
                    b--;
                    gotoxy(a,b);
                    printf("#");
                    break;
                }
                case 's':
                {
                    gotoxy(a,b);
                    printf(" ");
                    a++;
                    gotoxy(a,b);
                    printf("#");
                    break;
                }
                case 'd':
                {
                    gotoxy(a,b);
                    printf(" ");
                    b++;
                    gotoxy(a,b);
                    printf("#");
                    break;
                }
            }
    
        }
    
    }
    
    int main()
    { 
        gotoxy(1,24);
        move();
    
        return 0;
    }
    

    Vielen Dank 🙂
    Lg Zareko
    Und hoffentlich findet jmd den Denkfehler 😃

    PS: Ich habe dies nocheinmal gepostet das ich als Gast meinen Beitrag nicht bearbeiten kann und er mir beim einloggen immer ne Fehlermeldung ausgibt.
    In diesem Post ist das nochmal mein Problem geschildert vll kann jmd ja den anderen Post löschen.



  • Hauke _) schrieb:

    PS: Ich habe dies nocheinmal gepostet das ich als Gast meinen Beitrag nicht bearbeiten kann und er mir beim einloggen immer ne Fehlermeldung ausgibt.
    In diesem Post ist das nochmal mein Problem geschildert vll kann jmd ja den anderen Post löschen.

    Und ich habe den Thread gesperrt, weil Du im anderen Thread weitermachen sollst, statt für jede Frage des selben Problems einen neuen aufzumachen.


Log in to reply