/* ========================================================================== * Project Name: Atzimess darbs * Apraksts: CS GO 2 spele veidota konsole parasta simulacija un vienkarsota versija cs go 2 * Autors: Andrejs Šorecs * Grupa: 110 * Datums: 30.05.2026 * Versija: 1.2 * ========================================================================== */ using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Security.Permissions; using System.Text; using System.Threading.Tasks; namespace atzimes_darbs { public class Player { // speletaji public string name { get; set; } public int HP { get; set; } public int Point { get; set; } public Player(string name, int HP,int Point) { this.name = name; this.HP = HP; this.Point = Point; } public bool IsAlive() { return HP > 0; } } public abstract class Weapon { public string name { get; protected set; } public Weapon (string name) { this.name = name; } public abstract void GunAction(Player target,Player attacker); } public class Gun:Weapon { public int ammo { get; private set; } public int dmg { get; private set; } public double fire_rate { get; private set; } public double reload_time { get; private set; } public int magazine { get; private set; } public Gun(string name, int dmg, int ammo, int magazine, double reload_time, double fire_rate):base(name) { this.dmg = dmg; this.ammo = ammo; this.magazine = magazine; this.reload_time = reload_time; this.fire_rate = fire_rate; } public override void GunAction(Player target,Player attacker) { Random rnd = new Random(); int reload_time = Convert.ToInt32(this.reload_time * 1000); // parladesanas laiks double fire_rate = 1000 / (this.fire_rate / 60); // cik ilgi paiet kamer izsaus nakoso lodi int fire_rate2 = Convert.ToInt32(fire_rate); int misscount = 0; // magazina cikls if (target.Point >= 13 || attacker.Point >= 13 ) return; for (int i = 0; i < magazine; i++) { // lodes cikls for (int j = 0; j < ammo; j++) { if (target.HP <= 0 || misscount >= 3) { return; } int shot = rnd.Next(1, 3); Console.WriteLine("===1 vai 2==="); int rnd_input = Convert.ToInt32(Console.ReadLine()); if (shot == rnd_input) // ja trapija { Console.WriteLine("Trapijaa!!!");//debug Console.Write($"{target.name} HP:{target.HP} - {dmg} = "); target.HP = Math.Max(0, target.HP - dmg); Console.WriteLine($"{target.name} HP:{target.HP}"); Console.WriteLine(); System.Threading.Thread.Sleep(fire_rate2); // gaida tik ilgi kamer vares saut nakosa lode if (!target.IsAlive()) // ja speletajam ir HP mazaks pa 0 vins ir miris { Console.WriteLine("Player Dead!");//debug attacker.Point += 1; System.Threading.Thread.Sleep(2000); return; } } else// cits gadijums { Console.WriteLine("miss!!!");//debug misscount++; Console.WriteLine($"Tu noskeleji {misscount}. reizes");//debug if (misscount >= 3) // ja speletajs vairak pa 3 reizem noskele tad sauj nakosais speletajs { Console.WriteLine("Tu pa daudz nošķelēji!!! Pretinieks sak uzbrukumu");//mini debug return; } System.Threading.Thread.Sleep(fire_rate2); } } if (target.IsAlive() && misscount < 3) { Console.WriteLine("reload!!!"); // mini debug System.Threading.Thread.Sleep(reload_time); } } } } public class Program { static void Main(string[] args) { // speletaju masivs Player[] speletaji = { new Player("player1",100,0), new Player("player2",100,0), }; // ierocu masivs Gun[] ieroci = { new Gun("Desert_eagle",53,7,3,2.2,267) ,new Gun("AK-47",35,30,3,2.4,600) ,new Gun("M4A4",33,30,4,3.1,666) ,new Gun("AWP",115,5,3,3.7,41) ,new Gun("SSG08",88,10,2,3.7,48) ,new Gun("glock_18",24,20,3,2.3,400) ,new Gun("USP-S",35,12,2,2.2,352) }; Console.WriteLine("=====CS:GO 2(console prototype)====="); Console.WriteLine("Sveiks, tas ir CS GO 2 spele konsolee, ja tu spele pirmo reizi izlasi noteikumus"); System.Threading.Thread.Sleep(5000); Console.Clear(); bool gamerun = true; while (gamerun) { Console.Clear(); Console.WriteLine("=====CS:GO 2(console prototype)====="); Console.WriteLine("1. Start Game"); Console.WriteLine("2. Read Rule"); Console.WriteLine("3. Exit"); int user_input = Convert.ToInt32 (Console.ReadLine()); switch (user_input) { case 1: speletaji[0].Point = 0; speletaji[1].Point = 0; while (speletaji[0].Point < 13 && speletaji[1].Point < 13) { speletaji[0].HP = 100; speletaji[1].HP = 100; Console.Clear(); Console.WriteLine("=====STATISTIKA====="); Console.WriteLine($" {speletaji[0].name}: {speletaji[0].Point} | {speletaji[1].name}: {speletaji[1].Point}"); System.Threading.Thread.Sleep(1000); Console.Clear(); Console.WriteLine($"Izvelies ieroci kuru gribi izmantot\n"); for (int i = 0; i < ieroci.Length; i++) { Console.WriteLine($"{i}.{ieroci[i].name} "); } int gun_input = Convert.ToInt32(Console.ReadLine()); Console.Clear(); Console.WriteLine("Tagad otrs speletajs izvelas ieroci\n"); Console.WriteLine("Izvelies ieroci kuru gribi izmantot\n"); for (int i = 0; i < ieroci.Length; i++) { Console.WriteLine($"{i}.{ieroci[i].name} "); } int gun_input2 = Convert.ToInt32(Console.ReadLine()); Console.Clear(); Console.WriteLine($"====={speletaji[0].name} sak gajienu====="); ieroci[gun_input].GunAction(speletaji[1], speletaji[0]); Console.Clear(); if (speletaji[1].IsAlive()) { Console.WriteLine($"====={speletaji[1].name} sak gajienu====="); ieroci[gun_input2].GunAction(speletaji[0], speletaji[1]); } Console.Clear(); Console.WriteLine("=====Raunda Rezultati====="); Console.WriteLine($"===== {speletaji[0].name}: uzvaru skaits {speletaji[0].Point} ====="); Console.WriteLine($"===== {speletaji[1].name}: uzvaru skaits {speletaji[1].Point} ====="); Console.WriteLine("uzspiediet jebkuru taustinu lai turpinat"); Console.ReadKey(); } if (speletaji[0].Point >= 13) { Console.WriteLine($"====={speletaji[0].name}:Uzvareja!!!====="); } else { Console.WriteLine($"====={speletaji[1].name}:Uzvareja!!!====="); } System.Threading.Thread.Sleep(5000); break; case 2: Console.Clear(); Console.WriteLine("=====Noteikumi====="); Console.WriteLine("1. Spele ir interaktiva jums vajag ievadit 1 vai 2 no ta risinasies trapijat jus vai ne"); Console.WriteLine("2. Ja jus noskelejat vairak pa 3 reizem uzbrukumu sak pretinieks"); Console.WriteLine("3. Spele ilgs lidz tam bridim kamer viens no jums ne iegus 13 punktus"); System.Threading.Thread.Sleep(5000); Console.Clear(); break; case 3: gamerun = false; break; } } Console.ReadKey(); } } }