/* 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.121.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 new_item) // pievieno listam jaunu lietu, ko atrod speletajs { soma.Add(new_item); } } public abstract class Items //Kalpo kā bāze visiem spēles priekšmetiem { public string item_name; public abstract void Lietot(Speletajs player); } public class Food : Items //Manto no "Items" klases { public int HP_heal; public int Hungry_refill; public override void Lietot(Speletajs player) { player.Health = player.Health + HP_heal; // speletajs apped edienu un uzlabo veselibas pointus player.Hungry = player.Hungry + Hungry_refill; // 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 Name_player // 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(objekts) public Speletajs(string Name_player,int Health, int Energy, int Hungry) // konstruktors { this.Name_player = Name_player; this.Health = Health; this.Energy = Energy; this.Hungry = Hungry; } } class Programma //Programmas galvenā izpildes klase { static string[] augli ={"Banāns","Ābols","Kokos","Mango"}; public static void Meklet_edienu(Speletajs player) //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($"ēdiens: {augli[auglis]}"); Food ediens = new Food(); ediens.item_name = augli[auglis]; ediens.HP_heal = 20; // katrs ediens dod 20 HP ediens.Hungry_refill = 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 tagat_auglis = augli[i]; int skaits = 0; for (int j = 0; j < player.Soma.soma.Count; j++) //cikls iziet cauri somas lietām { if (player.Soma.soma[j].item_name == tagat_auglis) // vai somā ir tāds auglis { skaits++; } } if (skaits > 0) //Ja auglis ir atrasts vismaz 1 reizi, pievieno to teksta virknei { rezultats += $"{tagat_auglis} ({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 spele_turpinas = true; while(player.Health>0 && spele_turpinas) // 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 pareiza_izvele = int.TryParse(izvele, out int izvele_korekta); //parbaude vai speletajs ievadija tikai skaitli if(pareiza_izvele == false) { Console.WriteLine("ievadi tikai skaitli"); } switch (izvele_korekta) { case 1: if(player.Energy == 0) // parbaude vai speletajam pietiek energijas { Console.WriteLine("Tev pārāk mazs enerģijas lai meklēt ēdienu!"); break; } Console.WriteLine("Tu meklē ēdienu"); Meklet_edienu(player);//palyer vajag lai pievienoti edienu somai player.Energy = player.Energy - 35; player.Hungry = player.Hungry - 20; player.Dienas += 1; break; case 2: Console.WriteLine("Tu atpūties"); player.Energy = player.Energy + 80; player.Hungry = player.Hungry - 40; player.Dienas += 1; break; case 3: spele_turpinas = false; Console.WriteLine($"Game over \n{player.Name_player} tu nodzīvoji {player.Dienas} dienas"); break; case 4: if (player.Soma.soma.Count > 0) // Vai speletajam soma nav tuksa { player.Soma.soma[0].Lietot(player); 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: Console.Write("Soma:"); if (player.Soma.soma.Count > 0) { foreach (var lietas in player.Soma.soma) // izkrien cauri visam lietam kas atrodas soma { Console.Write($"\t {lietas.item_name}"); } Console.WriteLine($"\nKopumā somā ir: {Somas_saturs(player)}"); } else { Console.WriteLine("Soma ir tukša"); } break; default: 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.Name_player} tu nodzīvoji {player.Dienas} dienas"); } } } } }