/* Kas veidoja: Artūrs Peškovs Grupa: 110 Projekta nosaukums: Survival Sala Projekta apraksts: Teksta izdzīvošanas spēle (Console App), kurā spēlētājam jāpārvalda resursi (dzīvības, enerģija, izsalkums) un jāizdzīvo pēc iespējas vairāk dienu uz salas. Kam veidots: Nosleguma Projektam Kad veidots: 2026. gadā Kādā programmā veidots: Visual Studio Code 1.123.0 versija */ using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace Survival_spele { public class Inventars //speletaja inventars { public List soma = new List(); //Inventars kura ir visas lietas kas manto no klases Items public void Pievienot(Items newItem) // pievieno listam jaunu lietu, ko atrod speletajs { soma.Add(newItem); } } public abstract class Items //Kalpo kā bāze visiem spēles priekšmetiem { public string itemName; public abstract void Lietot(Speletajs player); } public class Food : Items //Manto no "Items" klases { public int hpHeal; public int hungryRefill; public override void Lietot(Speletajs player) { player.Health = player.Health + hpHeal; // speletajs apped edienu un uzlabo veselibas pointus player.Hungry = player.Hungry + hungryRefill; // speletajs apped edienu un uzlabo izsalkuma pointus } } public class Speletajs //Apraksta spēlētāju un tā galvenos rādītājus { private string playerName; public string PlayerName // property { get { return playerName; } set { playerName = value; } } private int health; //HP slēptais mainīgais public int Health // property (iekapsulēšana) { get { return health; } // nolasa slepenā mainīga vērtību set { health = Math.Max(0, Math.Min(value, 100)); } // set metode neļauj dzīvībai nokrist zem 0 un neļauj pārsniegt 100 } private int energy; public int Energy // property { get { return energy; } set { energy = Math.Max(0, Math.Min(value, 100)); } } private int hungry; // izsalkums, 100 negrib est public int Hungry // property { get { return hungry; } set { hungry = Math.Max(0, Math.Min(value, 100)); } } public int Dienas = 0; public Inventars Soma = new Inventars(); // Izveido speletajam somu public Speletajs(string PlayerName,int Health, int Energy, int Hungry) // konstruktors { this.PlayerName = PlayerName; this.Health = Health; this.Energy = Energy; this.Hungry = Hungry; } public void Mainit_resursus(int energyChange, int hungryChange) { this.Energy = this.Energy + energyChange; this.Hungry = this.Hungry + hungryChange; } } class Programma //Programmas galvenā izpildes klase { static string[] augli ={"Banāns","Ābols","Kokos","Mango"}; public static void Meklet_edienu(Speletajs player, int bonusHeal) //Nejauša ēdiena ģenerēšana un pievienošana somai { Random ran = new Random(); int auglis = ran.Next(augli.Length); // Randoma veidā tiek izvēlēts auglis Console.WriteLine($"Esi atradis ēdienu: {augli[auglis]}"); Food ediens = new Food(); // Tiek uztaisīts jauns ēdiens ediens.itemName = augli[auglis]; ediens.hpHeal = 20 + bonusHeal; // katrs ediens dod +20 HP + bonus ediens.hungryRefill = 50; // katrs ediens dod +50 izsalkumam player.Soma.Pievienot(ediens); //Pievieno edienu somai } public static string Somas_saturs(Speletajs player) //Apstrādā somas saturu un sagatavo to izvadei (Atgriež string) { string rezultats = ""; for (int i = 0; i < augli.Length; i++) // cikls iziet caur augļu daudzumu massīvā, kādi var būt { string tagadAuglis = augli[i]; // Paņem augli no masīva pēc kārtas int skaits = 0; for (int j = 0; j < player.Soma.soma.Count; j++) //cikls iziet cauri somas lietām { if (player.Soma.soma[j].itemName == tagadAuglis) // vai somā ir tāds auglis { skaits++; } } if (skaits > 0) //Ja auglis ir atrasts vismaz 1 reizi, pievieno to teksta virknei { rezultats += $"{tagadAuglis} ({skaits}) "; } } return rezultats; } public static void Main(string[] args) //Galvenā metode, kurā notiek visas izpildes { Console.WriteLine("Ievadi vārdu"); string playerName = Console.ReadLine();// savac speletaja vardu Speletajs player = new Speletajs(playerName,100,100,100); //nodot speletaja parametrus bool speleTurpinas = true; while(player.Health>0 && speleTurpinas) // spele turpinas kamer ir dzivibas un kamer speletajs negrib iziet no speles { Console.WriteLine($"Ko darīsi? *ievadi ciparu*"); Console.WriteLine($"Dzīvības: {player.Health}\tEnerģija: {player.Energy}\tIzsalkums: {player.Hungry}\tDienas nodzīvoji: {player.Dienas}"); Console.WriteLine($"(1) Doties meklēt ēdienu"); Console.WriteLine($"(2) Atpūsties"); Console.WriteLine($"(3) Beigt spēli"); Console.WriteLine($"(4) Appēst ēdienu"); Console.WriteLine($"(5) Apskatīties somu"); string izvele = Console.ReadLine(); bool pareizaIzvele = int.TryParse(izvele, out int izveleKorekta); //parbaude vai speletajs ievadija tikai skaitli if(pareizaIzvele == false) { Console.WriteLine("ievadi tikai skaitli"); } switch (izveleKorekta) { case 1: // Darbība: Ēdiena meklēšana if(player.Energy == 0) // parbaude vai speletajam pietiek energijas lai veiktu darbibu { Console.WriteLine("Tev pārāk mazs enerģijas lai meklēt ēdienu!"); break; } Console.WriteLine("Tu meklē ēdienu"); Meklet_edienu(player, 0); //meklē un pieliek ēdienu somai player.Mainit_resursus(-35, -20); // Atņemam enerģiju un izsalkumu caur klases metodi player.Dienas += 1; break; case 2:// Darbība: Atpūta Console.WriteLine("Tu atpūties"); player.Mainit_resursus(80, -40); // Atjaunojam enerģiju, tērējam izsalkumu player.Dienas += 1; break; case 3: // Darbība: Spēlētājs pats beidz spēli speleTurpinas = false; Console.WriteLine($"Game over \n{player.PlayerName} tu nodzīvoji {player.Dienas} dienas"); break; case 4: // Darbība: Ēdiena patērēšana no somas if (player.Soma.soma.Count > 0) // Vai speletajam soma nav tuksa { player.Soma.soma[0].Lietot(player); //appēd pirmo ēdienu, kas ir somā player.Soma.soma.RemoveAt(0); // Izdzēš apēsto lietu no somas! Console.WriteLine("Tu paēdi!"); } else { Console.WriteLine("Tava soma ir tukša!"); } break; case 5: // Darbība: Somas un tās satura apskate Console.Write("Somā:"); if (player.Soma.soma.Count > 0) { foreach (var lietas in player.Soma.soma) // izkrien cauri visam lietam kas atrodas soma { Console.Write($"\t {lietas.itemName}"); } Console.WriteLine($"\nKopumā somā ir: {Somas_saturs(player)}"); } else { Console.WriteLine(" Soma ir tukša"); } break; default: // Gadījums, ja ievada ciparu, kas nav izvēlnē Console.WriteLine("Mēģini vēlreiz"); break; } if(player.Hungry<= 0) //Ja speletajs ir parak izsalcis, tad zaude dzivibas { player.Health = player.Health - 50; } if (player.Health == 0) //Spele beidzas ja speletajam ir 0 dzivibas { Console.WriteLine($"Game over \n{player.PlayerName} tu nodzīvoji {player.Dienas} dienas"); } } } } }