public bool Liiku(KoordinaattiMääreet koordinaatti) // Liikkuminen kartalla { // katsoo jos lemmikki on liikkunut, silloin palauttaa truen if (koordinaatti.X < 0 || koordinaatti.X >= Console.WindowWidth) { return(false); //jos liikuttaa kartalla lemmikkiä } if (koordinaatti.Y < 0 || koordinaatti.Y >= Console.WindowHeight) { return(false); } return(true); }
public void Liikkuminen(int x, int y) { KoordinaattiMääreet newSijainti = new KoordinaattiMääreet() { X = Sijainti.X + x, Y = Sijainti.Y + y }; if (Liiku(newSijainti)) { // kysyy Liiku metodilta onko lemmikki liikkunut ja jos on niin silloin : PolkuPerässä(); // kutsutaan metodia joka piirtää janaa kartassa liikkuvan lemmikin perässä Console.BackgroundColor = ConsoleColor.Red; Console.SetCursorPosition(newSijainti.X, newSijainti.Y); Console.Write("■"); // Tässä määritellään kuva lemmikin päällä kartassa Sijainti = newSijainti; } }
public List <Ruoka> NäytäKartta() { #region peliin liittyvien muuttujien asettaminen ja pelin käynnistys Console.OutputEncoding = Encoding.UTF8; //mahdollistetaan emojien näyttäminen utf8-koodilla RandomRuokaa(); TyhjennäLöydettyjenLista(); Console.WindowHeight = 26; // määritellään konsoli-ikkunan korkeus Console.WindowWidth = 64; // määritellään konsoli-ikkunan leveys int näytönleveys = Console.WindowWidth; int näytönkorkeus = Console.WindowHeight; Random randomnumber = new Random(); // kutsutaan random luokkaa int itemix = randomnumber.Next(1, näytönleveys - 2); //ensimmäisen tavaran lokaatio kun peli käynnistyy int itemiy = randomnumber.Next(1, näytönkorkeus - 2); //löydettyjen itemien määrä on nyt 0 int itemisumma = 0; do { KarttaPeli(); } // Suorittaa karttapeliä niin kauan kunnes kartasta on löydetty kolme tavaraa while (itemisumma < 3); #endregion #region pelin toiminnallisuus void KarttaPeli() // Peli käynnistyy { Taustaväri(); Itemit(); Sijainti = new KoordinaattiMääreet() { X = 0, Y = 0 }; Liikkuminen(0, 0); ConsoleKeyInfo Näppäimet; // kuvataan käyttäjän painamia näppäimiä while ((Näppäimet = Console.ReadKey(true)).Key != ConsoleKey.Escape) { switch (Näppäimet.Key) { case ConsoleKey.UpArrow: // nuoli ylöspäin Liikkuminen(0, -1); break; case ConsoleKey.RightArrow: // nuoli oikealle Liikkuminen(1, 0); break; case ConsoleKey.DownArrow: // nuoli alaspäin Liikkuminen(0, 1); break; case ConsoleKey.LeftArrow: // nuoli vasemmalle Liikkuminen(-1, 0); break; } if (itemix == Sijainti.X && itemiy == Sijainti.Y) // jos lemmikki ja tavara on samassa kohtaa { itemix = randomnumber.Next(1, näytönleveys - 2); //arvotaan tavaroille uusi paikka itemiy = randomnumber.Next(1, näytönkorkeus - 2); Console.Beep(750, 550); // Piippausääni kun kartasta löytää tavaran itemisumma++; Random random = new Random(); // kutsutaan random luokkaa palkinto = random.Next(0, dummyruoat.Count); löydetyt.Add(dummyruoat[palkinto]); // lisätään löydetty tavara dummyruoat listaan Itemit(); // kutsutaan Itemit metodia return; } } void Itemit() { Console.SetCursorPosition(itemix, itemiy); Console.BackgroundColor = ConsoleColor.Red; // Taustaväri kartassa liikkuvan lemmikin alle Console.Write("X"); // kuva joka piirtyy kartassa liikkuvan lemmikin päälle } } return(löydetyt); #endregion }