• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

poruszanie sie po planszy

Object Storage Arubacloud
0 głosów
471 wizyt
pytanie zadane 24 września 2020 w C i C++ przez olamas Nowicjusz (160 p.)
edycja 24 września 2020 przez olamas

Mam problem bo pisze program w ktorym uzytkownik chodzi po planszy i musi znaleźć wyjscie. Mam stworzona :

-tablice - plansze z zakodowanymi znakami ascii, oraz petle for ją wyswietlającą . 

- instrukcje if - dla sczytywania wartosci z klawaitury (a s d w ) w celu ruchu, 

 

MOJ PROBLEM TO: nie umiem stworzyć bo ten moj if powodowal przesuwanie sie "ludzika" po planszy. Myslalam na 2 rozwiązaniami:

1) uklad wspołzednych i wartosci x, y 
2) w momecie wywolywania if tablica "rysuje się na nowo" z zamienionym znaczkiem wedlug instrukcji.

 

pomozecie? np kawalek kodu (jaka użyc instrukcje etc?)

 unsigned char plansza[23][23] = { ..},{..} - tutaj mam wartosci ale nie wlkejam bo to 30 lini po 30 znakow

 


    if (n==97 && n==65); // a
    {
        x=x-1;
    }

    if (n==68 && n==100); // d
    {
        x=x+1;
    }

    if (n==119 && n==87); // w
    {
         y=y+1;
    }

    if (n==115 && n==83); // s
    {
        y=y-1;
    }

}


wersja dla osu wspołrzednych tylko nie wiem jak je umiescic
if
{
    pozycja_x =13 && pozycja_y = 23 // wygrana
}

if (n==97 && n==65); 
{
switch x
... (nie wiemjak to napisac)
}

dzieki za odp :)

1 odpowiedź

0 głosów
odpowiedź 24 września 2020 przez kukulim Mądrala (6,440 p.)
edycja 24 września 2020 przez kukulim

Hej dla przyjemności zrobiłem sobie to zadanko oto moje rozwiązanie tyle ze w C#:

    internal static class Program
    {
        private static void Main(string[] args)
        {
            var GraczX = 0;
            var GraczY = 0;
            var plansza = new char[12, 12];
            while (GraczX != 11 || GraczY!=11)
            {
                for (int i = 0; i < 12; i++)
                {
                    for (int j = 0; j < 12; j++)
                    {
                        plansza[i, j] = '.';
                    }
                }
                plansza[GraczY, GraczX] = 'X';
                plansza[11, 11] = 'O';
                DrukujPlansza(plansza);

                Console.WriteLine("Nasisnij asdw zeby isc");
                string nacisinietyKlawisz = Console.ReadLine();
                if (nacisinietyKlawisz == "a" || nacisinietyKlawisz == "A")
                {
                    GraczX -= 1;
                    if (GraczX < 0)
                    {
                        GraczX = 0;
                    }
                }
                if (nacisinietyKlawisz == "d" || nacisinietyKlawisz == "D")
                {
                    GraczX += 1;
                    if (GraczX > 11)
                    {
                        GraczX = 11;
                    }
                }
                if (nacisinietyKlawisz == "s" || nacisinietyKlawisz == "S")
                {
                    GraczY += 1;
                    if (GraczY > 11)
                    {
                        GraczY = 11;
                    }
                }
                if (nacisinietyKlawisz == "w" || nacisinietyKlawisz == "W")
                {
                    GraczY -= 1;
                    if (GraczY < 0)
                    {
                        GraczY = 0;
                    }
                }
                Console.Clear();
            }
            Console.Clear();
            Console.WriteLine("BRAWO WYGRAŁES!!");
        }

        public static void DrukujPlansza(char[,] arr)
        {
            for (int i = 0; i < 12; i++)
            {
                for (int j = 0; j < 12; j++)
                {
                    Console.Write(arr[i, j]);
                }
                Console.WriteLine("");
            }
        }
    }
}

Teraz fajnie jakby dodać jakieś przeszkody no i żeby wyjście losowało się w różnych miejscach, no i jeszcze licznik zliczający ile potrzebowałeś ruchów do skończenia gry.

Pozdro.

komentarz 24 września 2020 przez olamas Nowicjusz (160 p.)
hejka dzięki, juz zalejam sie ogarnianiem twojej propozycji

 

 bool plansza = new char[23, 23]; ( wyskakuje - invalid types bool [int] for array subscript :(
komentarz 24 września 2020 przez kukulim Mądrala (6,440 p.)
Ja pisałem w C# musisz sobie przerobić na C++ (takie zadanie)

Ja to rozwiązałem tak:

robisz plansze wypełniasz ja '.'

masz współrzędne gracza na początku 0,0 (czyli twoja plansza[0][0])

i w pętli while (dopóki współrzędne gracza będą takie jak współrzędne wyjścia)

z czytujesz klawisz zmieniasz współrzędne if'em

Podobne pytania

0 głosów
2 odpowiedzi 181 wizyt
pytanie zadane 26 września 2020 w C i C++ przez olamas Nowicjusz (160 p.)
0 głosów
1 odpowiedź 58 wizyt
pytanie zadane 19 listopada 2020 w HTML i CSS przez lylus Nowicjusz (150 p.)
+2 głosów
1 odpowiedź 177 wizyt
pytanie zadane 17 stycznia 2022 w JavaScript przez Mateusz___ Nowicjusz (140 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...