Доброго дня!
Потрібна допомога в прогнозі даних в R. Є data frame в якому є стовпчики з назвою заняття, набраними балами студента і максимально можливими балами по цьому заняттю. Студент пройшов лише половину курсу дисципліни і я хочу зпрогнозувати йому бали на другу половину дисциплі + на екзамен.

https://replace.org.ua/misc.php?action=pun_attachment&item=2050

2

(5 відповідей, залишених у C#, .NET)

Наразі, створив на карті два маркери по координатам, які було введено користувачем. Далі будую маршрут між цими маркерами, але створюється пряма лінія, тобто не по дорогам. Розумію, що потрібно добавити ще декілька точок, але як зробити?

double a = double.Parse(textBox1.Text);
double b = double.Parse(textBox2.Text);
textBox1.Text = a.ToString();
textBox2.Text = b.ToString();

GMap.NET.WindowsForms.GMapOverlay markersOverlay =
    new GMap.NET.WindowsForms.GMapOverlay(gMapControl1, "marker");
GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen marker =
    new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen(
        new GMap.NET.PointLatLng(a,b)
    );
marker.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(marker);
marker.ToolTipText = "Точка 1";
markersOverlay.Markers.Add(marker);

gMapControl1.Overlays.Add(markersOverlay);
marker.ToolTipMode = GMap.NET.WindowsForms.MarkerTooltipMode.Always;

double c = double.Parse(textBox3.Text);
double d = double.Parse(textBox4.Text);
textBox3.Text = c.ToString();
textBox4.Text = d.ToString();
GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed marker1 =
    new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(
        new GMap.NET.PointLatLng(c, d)
    );
marker1.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(marker);
marker1.ToolTipText = "Точка 2";
markersOverlay.Markers.Add(marker1);
gMapControl1.Overlays.Add(markersOverlay);
marker1.ToolTipMode = GMap.NET.WindowsForms.MarkerTooltipMode.Always;

List<GMap.NET.PointLatLng> list = new List<GMap.NET.PointLatLng>();
list.Add(new GMap.NET.PointLatLng(a, b));
list.Add(new GMap.NET.PointLatLng(c, d));
GMap.NET.WindowsForms.GMapRoute r = new GMap.NET.WindowsForms.GMapRoute(list, "Route");
r.IsVisible = true;
r.Stroke.Color = Color.DarkGreen;
markersOverlay.Routes.Add(r);
gMapControl1.Overlays.Add(markersOverlay);
gMapControl1.Zoom = 9;
gMapControl1.Refresh();

https://replace.org.ua/misc.php?action=pun_attachment&amp;item=2047

3

(5 відповідей, залишених у C#, .NET)

Знайшов лише як для andoid та веб підключити

4

(5 відповідей, залишених у C#, .NET)

Доброго ранку!
Потрібна допомога у підключенні API-ключа до проекту на C#, який буде прокладати маршрути на карті. Ключ вже отримав, а як підключити не знаю)  Дякую)))

5

(2 відповідей, залишених у C#, .NET)

Не можу зробити горизонтальну переривчасту лінію по середині поля. Потрібно, щоб вона не пропадала при згортанні форми або при збільшенні її. Допоможіть будь ласка)

6

(9 відповідей, залишених у C#, .NET)

Хочу, щоб після кожної перемоги, моє військо отримувало бонуси і я їх міг розкинути між воїнами(збільшити здоров'я чи броню і т.д.)

7

(9 відповідей, залишених у C#, .NET)

Якщо кому цікаво.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fianl_war
{
    class Program
    {
        static Battle _battle;
        static void Main(string[] args)
        {
            _battle = new Battle();
            _battle.NextRound();
            _battle.tribes[0].ShowWarrior();
            Console.ReadKey();
        }
    }
}
 enum TribeNames
    {
        RedWolfs,
        IronMans,
        WildAxes,
        HealtheMans,
        GodFachers,
        AmerinanFamily,
        OldHerous
    }
class Tribe
    {
        Random rand;
        TribeNames _name;
        int _battlesCount;
        List<Warrior> _warriors;
        public Tribe()
        {
            _warriors = new List<Warrior>();
            rand = new Random();
        }
        public TribeNames Name { get { return _name; } set { _name = value; } }
        public int BattlesCount { get { return _battlesCount; } set { _battlesCount = value; } }
        public int AliveCount
        {
            get
            {
                int count = 0;
                foreach (var x in _warriors)
                {
                    if (x.IsAlive) count++;
                }
                return count;
            }
        }
        public void Warrior(Warrior warrior) { _warriors.Add(warrior); }
        public int TotalCount { get { return _warriors.Count(); } }
        public List<Warrior> Warriors { get { return _warriors; } }
        public void Warrior(int countWarrior, TribeTypes type)
        {
            for (int i = 0; i < countWarrior; i++)
            {
                switch (type)
                {
                    case TribeTypes.Accensi:
                        {
                            Names name = (Names)rand.Next(12);
                            WarriorTypes wtype = (WarriorTypes)rand.Next(4);
                            _warriors.Add(new Accensi(name, wtype)); break;
                        }
                    case TribeTypes.Hastatus:
                        {
                            Names name = (Names)rand.Next(12);
                            WarriorTypes wtype = (WarriorTypes)rand.Next(4);
                            _warriors.Add(new Hastatus(name, wtype)); break;
                        }
                    case TribeTypes.Princepts:
                        {
                            Names name = (Names)rand.Next(12);
                            WarriorTypes wtype = (WarriorTypes)rand.Next(4);
                            _warriors.Add(new Princeps(name, wtype)); break;
                        }
                    case TribeTypes.Triarius:
                        {
                            Names name = (Names)rand.Next(12);
                            WarriorTypes wtype = (WarriorTypes)rand.Next(4);
                            _warriors.Add(new Triarius(name, wtype)); break;
                        }
                }
            }
        }
        public string ShowWarrior()
        {
            string s = null;
            int count = 0;
            foreach (var item in _warriors)
            {
                s = "" + s + "[" + count++ + "]" + item.ToString() + "\n";
            }
            return s;
        }

        public Warrior this[int index] { get { return _warriors[index]; } }
        public override bool Equals(object obj) { return this.ToString().Equals(obj.ToString()); }
        public override int GetHashCode() { return this.ToString().GetHashCode(); }
        public override string ToString()
        {
            return "Name: " + Name + "|Battle: " + BattlesCount + "|CountofAlive " + AliveCount + "|TotalCount " + TotalCount;
        }
    }
class Triarius : Warrior
    {
        public Triarius(Names name, WarriorTypes type, int battlecount = 0)
            : base(name, type, battlecount)
        {
            switch (Type)
            {
                case WarriorTypes.Critical:
                    {
                        MaxHealth = 130;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 6;
                        break;
                    }
                case WarriorTypes.Dodge:
                    {
                        MaxHealth = 130;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 3;
                        break;
                    }
                case WarriorTypes.Tank:
                    {
                        MaxHealth = 150;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 2;
                        break;
                    }
            }
        }
        public override int Damage { get { return _damage; } set { _damage = value; } }
        public override int Armor
        {
            get { return _armor; }
            set
            {
                _armor = (value > MaxHealth * 2) ? MaxHealth * 2 : (value > 0) ? value : 0;
            }
        }
        public override int Health
        {
            get { return _health; }
            set
            {
                _health = (value > MaxHealth) ? MaxHealth : (value > 0) ? value : 0;
            }
        }
        public override int MaxHealth
        {
            get { return _maxhealth; }
            set
            {
                if (value > 0) _maxhealth = value; else _maxhealth = 0;
            }
        }
    }
 class Princeps : Warrior
    {
        public Princeps(Names name, WarriorTypes type, int battlecount = 0)
            : base(name, type, battlecount)
        {
            switch (Type)
            {
                case WarriorTypes.Critical:
                    {
                        MaxHealth = 100;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 4;
                        break;
                    }
                case WarriorTypes.Dodge:
                    {
                        MaxHealth = 100;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 3;
                        break;
                    }
                case WarriorTypes.Tank:
                    {
                        MaxHealth = 60;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 1;
                        break;
                    }
            }
        }
        public override int Damage { get { return _damage; } set { _damage = value; } }
        public override int Armor
        {
            get { return _armor; }
            set
            {
                _armor = (value > MaxHealth * 2) ? MaxHealth * 2 : (value > 0) ? value : 0;
            }
        }
        public override int Health
        {
            get { return _health; }
            set
            {
                _health = (value > MaxHealth) ? MaxHealth : (value > 0) ? value : 0;
            }
        }
        public override int MaxHealth
        {
            get { return _maxhealth; }
            set
            {
                if (value > 0) _maxhealth = value; else _maxhealth = 0;
            }
        }
    }
 class Hastatus : Warrior
    {
        public Hastatus(Names name, WarriorTypes type, int battlecount = 0)
            : base(name, type, battlecount)
        {
            switch (Type)
            {
                case WarriorTypes.Critical:
                    {
                        MaxHealth = 100;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 5;
                        break;
                    }
                case WarriorTypes.Dodge:
                    {
                        MaxHealth = 100;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 3;
                        break;
                    }
                case WarriorTypes.Tank:
                    {
                        MaxHealth = 100;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 1;
                        break;
                    }
            }
        }
        public override int Damage { get { return _damage; } set { _damage = value; } }
        public override int Armor
        {
            get { return _armor; }
            set
            {
                _armor = (value > MaxHealth * 2) ? MaxHealth * 2 : (value > 0) ? value : 0;
            }
        }
        public override int Health
        {
            get { return _health; }
            set
            {
                _health = (value > MaxHealth) ? MaxHealth : (value > 0) ? value : 0;
            }
        }
        public override int MaxHealth
        {
            get { return _maxhealth; }
            set
            {
                if (value > 0) _maxhealth = value; else _maxhealth = 0;
            }
        }
    }
class Battle
    {
        public List<Tribe> tribes;
        int _round;
        int _next;
        Tribe _winner;
        bool _isOver;
        bool _Exit;
        public Battle(int countWarriors = 10)
        {
            tribes = new List<Tribe>();
            tribes.Add(TribeCreator.CreateInstance(countWarriors, TribeTypes.Accensi));
            tribes.Add(TribeCreator.CreateInstance(countWarriors, TribeTypes.Hastatus));
            tribes.Add(TribeCreator.CreateInstance(countWarriors, TribeTypes.Princepts));
            tribes.Add(TribeCreator.CreateInstance(countWarriors, TribeTypes.Triarius));
        }
        public bool NextRound()
        {

            if (_isOver && tribes[_next].AliveCount > 0)
            { _next--; _isOver = false; }
            else if (_isOver && tribes[0].AliveCount > 0)
            { _isOver = false; }
            if (!_isOver && tribes[tribes.Count - 1].AliveCount == 0)
            { _isOver = true; }
            if (!_isOver && tribes[tribes.Count - 1].AliveCount > 0 && _next + 1 < tribes.Count)
            {
                Battles(tribes[0], tribes[++_next]);
                return true;
            }
            else if (_isOver)
                Console.WriteLine("The end!");

            return false;
        }
        public int IdEnemy
        {
            get
            {
                return (_next == 0) ? 1 : _next + 1;
            }
        }
        public void Battles(Tribe first, Tribe second)
        {
            _Exit = true;
            BattleCount(first, second);
            while ((first.AliveCount > 0 && second.AliveCount > 0) && _Exit)
            {
                for (int i = 0; i < second.TotalCount; i++)
                {
                    for (int j = 0; j < first.TotalCount; j++)
                    {
                        if (second[i].IsAlive && second[i].Armor > 0 && first[j].IsAlive) second[i].Armor -= first[j].Damage;
                        else if (second[i].IsAlive && first[i].IsAlive) second[i].Health -= first[j].Damage;
                    }
                }
                for (int i = 0; i < first.TotalCount; i++)
                {
                    for (int j = 0; j < second.TotalCount; j++)
                    {
                        if (second[i].IsAlive && first[i].Armor > 0 && first[j].IsAlive) first[i].Armor -= second[j].Damage;
                        else if (second[i].IsAlive && first[i].IsAlive) first[i].Health -= second[j].Damage;
                    }
                }
                NextCheack(first, second);
            }
        }
        public void NextCheack(Tribe first, Tribe second)
        {
            if ((first.AliveCount <= 0 || second.AliveCount <= 0) && _Exit)
            {
                first.BattlesCount++;
                second.BattlesCount++;
                if (first.AliveCount > second.AliveCount)
                {
                    _winner = first;
                }
                else
                {
                    _next--;
                    _winner = second;
                }
                tribes[0] = first;
                if (_next < 0) tribes[_next] = second;
                _Exit = false;
                _isOver = (first.AliveCount > 0) ? false : true;
                Thread.Sleep(2000);
                Console.WriteLine("Winners in {0} battle tribe: {1}", _next, Winner().Name);
                Console.WriteLine("{0}\n{1}", first, first.ShowWarrior());
                NextRound();
            }
            else if (_Exit)
            {
                _round++;
            }
        }

        public void BattleCount(Tribe first, Tribe second)
        {
            for (int i = 0; i < first.TotalCount; i++) if (first[i].IsAlive) first[i].BattleCount++;
            for (int i = 0; i < second.TotalCount; i++) if (second[i].IsAlive) second[i].BattleCount++;
        }
        public Tribe Winner() { return _winner; }
        public int RoundCount { get { return _round; } }
    }
 enum Names
    {
        David,
        James,
        Alex,
        Stiven,
        Jeffrey,
        Jeremy,
        Alexander,
        Scot,
        Julian,
        Quentin,
        Alan,
        Paul
    }
 class Accensi : Warrior
    {
        public Accensi(Names name, WarriorTypes type, int battlecount = 0)
            : base(name, type, battlecount)
        {
            switch (Type)
            {
                case WarriorTypes.Critical:
                    {
                        MaxHealth = 205;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 9;
                        break;
                    }
                case WarriorTypes.Dodge:
                    {
                        MaxHealth = 155;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 7;
                        break;
                    }
                case WarriorTypes.Tank:
                    {
                        MaxHealth = 240;
                        Armor = Armor;
                        Health = MaxHealth;
                        Damage = 2;
                        break;
                    }
            }
        }
        public override int Damage { get { return _damage; } set { _damage = value; } }
        public override int Armor
        {
            get { return _armor; }
            set
            {
                _armor = (value > MaxHealth * 2) ? MaxHealth * 2 : (value > 0) ? value : 0;
            }
        }
        public override int Health
        {
            get { return _health; }
            set
            {
                _health = (value > MaxHealth) ? MaxHealth : (value > 0) ? value : 0;
            }
        }
        public override int MaxHealth
        {
            get { return _maxhealth; }
            set
            {
                if (value > 0) _maxhealth = value; else _maxhealth = 0;
            }
        }
    }
class TribeCreator
    {
        static Random random = new Random();
        public TribeCreator()
        {
        }
        static public Tribe CreateInstance(int size, TribeTypes type)
        {
            Tribe tribe = new Tribe();
            var nameTribe = Enum.GetValues(typeof(TribeNames));
            tribe.Name = (TribeNames)nameTribe.GetValue(random.Next((random.Next(3) + random.Next(2)), nameTribe.Length));
            tribe.Warrior(size, type);
            return tribe;
        }
    }
abstract class Warrior
    {
        private Names _name;
        private WarriorTypes _type;
        protected int _health;
        protected int _maxhealth;
        protected int _damage;
        protected bool _isAlive;
        private int _battelsCount;
        protected int _armor;
        public Warrior(Names names, WarriorTypes warriorType, int battleCount)
        {
            _name = names;
            _type = warriorType;
            _battelsCount = battleCount;
        }
        public string Name { get { return _name.ToString(); } }
        public WarriorTypes Type { get { return _type; } }
        public abstract int MaxHealth { get; set; }
        public abstract int Health { get; set; }
        public abstract int Damage { get; set; }
        public abstract int Armor { get; set; }
        public int BattleCount { get { return _battelsCount; } set { _battelsCount = value; } }
        public bool IsAlive { get { return _isAlive = (Health > 0) ? true : false; } }
        public override bool Equals(object obj) { return this.ToString().Equals(obj.ToString()); }
        public override int GetHashCode() { return this.ToString().GetHashCode(); }
        public override string ToString()
        {
            return "Name: " + Name + "|Type:  " + Type + "|Health: " + Health + "|Damage: " + Damage + "|Armor: " + Armor + "|IsAlive: " + IsAlive + "|CountOfBattle " + BattleCount;
        }
    }
    enum WarriorTypes
    {
        Tank,
        Dodge,
        Critical
    }

Правда сюди можна дуже багато чого добавити і це ще фінальна версі, але основний функціонал працює)

8

(9 відповідей, залишених у C#, .NET)

Вже все зробив) Дякую

9

(9 відповідей, залишених у C#, .NET)

abstract class Warrior
    {
        private Names _name;
        private WarriorType _type;

        protected int _health;
        protected int _damage;
        protected bool _isAlive;
        protected int _battlesCount;
        protected int _armor;

        public Warrior(int health, int damage, bool isAlive, int battlesCount, int armor)
        {
            _armor = armor;
            _health = health;
            _damage = damage;
            _isAlive = isAlive = true;
            _battlesCount = battlesCount;

        }

        public string Name
        {
            get { return _name.ToString(); }
                   
        }
        public WarriorType Type
        {
            get { return _type; }
        }
        public abstract int Health { get; set; }
        public abstract int Damage { get; set; }
        public abstract int Armor { get; set; }

        public bool isAlive
        {
            get { return _isAlive ? Health >= 0 : false; }
        }
        public int BattlesCount
        {
            get { return _battlesCount; }
        }
        public override string ToString()
        {
            return string.Format("Name = {0}, Health = {1}, Armor = {2}, BattlesCount = {3}", Name, Health, Armor, BattlesCount);
        }
        public override int GetHashCode()
        {
            int hash = 13;
            hash = hash * 7 + _health.GetHashCode();
            hash = hash * 7 + _damage.GetHashCode();
            hash = hash * 7 + _battlesCount.GetHashCode();
            hash = hash * 7 + _isAlive.GetHashCode();
            hash = hash * 7 + _name.GetHashCode();
            hash = hash * 7 + _type.GetHashCode();
            return hash;
        }
        public override bool Equals(object obj)
        {
            Warrior warr = (Warrior) obj;
            if(obj == this) return true;
            if (obj == warr)
                return warr.Armor == Armor &&
                       warr.Damage == Damage &&
                       warr.Health == Health;
                return false;
        }
    }
    class Tribe
    {
        public TribeNames _name;
        public int _battlesCount;
        List<Warrior> _warriors;
        public int _aliveCount;
        public int _totalCount;

        public Tribe(int battlesCount, int totalCount)
        {
            _battlesCount = battlesCount;
            _totalCount = totalCount;
            _warriors = new List<Warrior>();
        }

        public string Name
        {
            get { return _name.ToString(); }
        }
        public int BattlesCount
        {
            get { return _battlesCount; }
        }
        public int AliveCount
        {
            get { return _aliveCount; }
            set { _aliveCount = value < 0 ? 0 : value; }
        }
        public int TotalCount
        {
            get { return _totalCount; }
            set { _totalCount = value < 0 ? 1000 : value; }
        }

       public Warrior this[int index]
       {
           get {return _warriors[index];}
           set {_warriors[index] = value;}
       }
       public void Add(Warrior war)
       {
           _warriors.Add(war);
       }
       public override int GetHashCode()
       {
           int hash = 13;
           hash = hash * 7 + _battlesCount.GetHashCode();
           hash = hash * 7 + _aliveCount.GetHashCode();
           hash = hash * 7 + _name.GetHashCode();
           hash = hash * 7 + _totalCount.GetHashCode();
           return hash;
       }
       public override bool Equals(object obj)
       {
           Warrior tribe = (Warrior)obj;
           if (obj == this) return true;
           if (obj == tribe)
               return tribe.Name == Name;
           return false;
       }
       public override string ToString()
       {
           return string.Format("Name of Tribe: {0} Count of Battles: {1} Own count of warrior: {2} ", Name, BattlesCount, TotalCount);
       }
    }
    class Battle
    {
        public Tribe[] _tribes;
        public int _round;
        public Tribe _winner;
        public bool _isOver;

        public Battle(int round, bool isOver, params Tribe[] tribes)
        {
            _round = round = 0;
            _isOver = isOver;
            _tribes = tribes;
        }

        public int RoundCount
        {
            get { return _round; }
        }
        public bool NextRound()
        {
           if( _isOver == true)
           {
               Console.WriteLine("Round is over!");
               
               _round++;
           }
            return true;
        }
        public Tribe Winner(Tribe _winner)
        {
            if (_isOver == true && _tribes.Length >= 0 && _tribes.Length < 2 )
            {
                Console.WriteLine("Winner of this round is - " + _winner);
            }
            return _winner;
       }
    }
    class TribeCreator
    {
        public int numIronMen;
        public int numRedWolfs;
        public int numWildAxes;
        public int numBrownGhoust;
        public Tribe CreateInstance(TribeNames vubor, Tribe number_war)
        {
            Console.WriteLine("Create Tribes: ");
            Console.Write("Maybe name for tribes:");
            TribeNames i;
            TribeNames my_tribe, first_tribe, second_tribe, thirsd_tribe;
            for (i = TribeNames.RedWolfs; i <= TribeNames.BrownGhoust; i++)
            {
                Console.WriteLine(i);
            }
            Console.WriteLine("Create first your own tribe with name Iron Men");

            switch(vubor)
            {
                case TribeNames.IronMen:
                    {
                        my_tribe = TribeNames.IronMen;
                        Console.WriteLine("Enter number citizen for tribe: ");
                        string s = Console.ReadLine();
                        numIronMen = Convert.ToInt32(s);
                        break;
                        Console.WriteLine("Your tride will have  name: " + my_tribe + " and have " + numIronMen + " citizen");
                    }
                case TribeNames.RedWolfs:
                    {
                        first_tribe = TribeNames.RedWolfs;
                        Console.WriteLine("Enter number citizen for tribe: ");
                        string s = Console.ReadLine();
                        numRedWolfs = Convert.ToInt32(s);
                        break;
                        Console.WriteLine("Tride will have  name: " + first_tribe + " and have " + numRedWolfs + " citizen");
                    }
                case TribeNames.WildAxes:
                    {
                        second_tribe = TribeNames.WildAxes;
                        Console.WriteLine("Enter number citizen for tribe: ");
                        string s = Console.ReadLine();
                        numWildAxes = Convert.ToInt32(s);
                        break;
                        Console.WriteLine("Tride will have  name: " + second_tribe + " and have " + numWildAxes + " citizen");
                    }
                case TribeNames.BrownGhoust:
                    {
                        thirsd_tribe = TribeNames.BrownGhoust;
                        Console.WriteLine("Enter number citizen for tribe: ");
                        string s = Console.ReadLine();
                        numBrownGhoust = Convert.ToInt32(s);
                        break;
                        Console.WriteLine("Tride will have  name: " + thirsd_tribe + " and have " + numBrownGhoust + " citizen");
                    }
            }
            return number_war;
        }
    }
    class Triarius : Warrior
    {
        public Triarius(int health, int damage, bool isAlive, int battlesCount, int armor) : base(health, damage, isAlive, battlesCount, armor) { }
        public override string ToString()
        {
            return string.Format("Name = {0}, Health = {1}, Armor = {2}, BattlesCount = {3}", Name, Health, Armor, BattlesCount);
        }
    }
    class Princeps : Warrior
    {
        public Princeps(int health, int damage, bool isAlive, int battlesCount, int armor) : base(health, damage, isAlive, battlesCount, armor) { }
        public override string ToString()
        {
            return string.Format("Name = {0}, Health = {1}, Armor = {2}, BattlesCount = {3}", Name, Health, Armor, BattlesCount);
        }
    }
    class Hastatus : Warrior
    {
         public Hastatus(int health, int damage, bool isAlive, int battlesCount, int armor) : base(health, damage, isAlive, battlesCount, armor) { }
        public override string ToString()
        {
            return string.Format("Name = {0}, Health = {1}, Armor = {2}, BattlesCount = {3}", Name, Health, Armor, BattlesCount);
        }
    }
    class Accensi : Warrior
    {
        public Accensi(int health, int damage, bool isAlive, int battlesCount, int armor) : base(health, damage, isAlive, battlesCount, armor) { }
        public override string ToString()
        {
            return string.Format("Name = {0}, Health = {1}, Armor = {2}, BattlesCount = {3}", Name, Health, Armor, BattlesCount);
        }
    }
 enum TribeNames : int
    {
        RedWolfs, IronMen, WildAxes, BrownGhoust
    };
enum WarriorType
    {
        Tank, Dodge, Critical
    };

1. Створюється плем’я користувача з воїнами типу Accensi в кількості заданим користувачем N (TribeCreator)
При створенні воїна TribeCreator задає довільним чином показники воїнів в діапазоні 70-100%
Створюється (TribeCreator) 3 племені з N воїнами (Hastatus, Princeps, Triarius відповідно до кожного племені)
2. Розпочинається перша битва племені користувача з плем’ям воїнів Hastatus (Battle)
Удар (D), що наносить воїн залежить додатково від його здоров’я та є випадковою величино діапазону (0,7-1,0)*D
Втрати залежать від отриманого удару та захисту воїна
3. За умови перемоги племені користувача воїни, що вижили лікуються та отримують бонус до параметрів (Bonus)
4. Повторюються кроки 2-3 з племенами воїнів Princeps, Triarius

10

(6 відповідей, залишених у C#, .NET)

static void Main(string[] args)
{
    int[,] mas = new int[3,5];
    Random gh = new Random();

    int i = 0;
   
    Console.WriteLine("\t***Перший заїзд***");
    for (int k = 0; k < 3; k ++ )
    {
        mas[0, k] = gh.Next(100, 150);
        i++;
        Console.WriteLine("Швидкість після першого заїзду ");
        Console.WriteLine(i + " машини " + mas[0, k]);
    }
    int maxindex = 0, max = mas[h, 0];
    for ( h = 0; h < 3; h++)
    {
        for (int j = 1; j < 5; j++)
        {
            if (mas[h, j] > max)
            {
                max = mas[h, j];
                maxindex = j;
            }
        }
        Console.WriteLine("Max speed: " + max);

Має вивести три машини в яких максимальні швидкості

11

(6 відповідей, залишених у C#, .NET)

Одну знайшов, але як ще дві вивести?

 int maxindex = 0, max = mas[h, 0];
for ( h = 0; h < 3; h++)
{
    for (int j = 1; j < 5; j++)
    {
        if (mas[h, j] > max)
        {
            max = mas[h, j];
            maxindex = j;
        }
    }
    Console.WriteLine("Max speed: " + max);

12

(6 відповідей, залишених у C#, .NET)

Потрібно знайти 3 максимальних елемента в двовимірному масиві[3,5] і вивести їх. Для кожно рядку. Допоможіть будь ласка! Дякую)

13

(4 відповідей, залишених у C#, .NET)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] mas = new int[4,4];
            Random gh = new Random();

            int i = 0;
            Console.WriteLine("\tГонка буде складатися з 3-х заїздів");
            Console.WriteLine("\t***Перший заїзд***");
            for (int k = 0; k < 3; k ++ )
            {
                mas[0, k] = gh.Next(100, 150);
                i++;
                Console.WriteLine("Швидкість після першого заїзду ");
                Console.WriteLine(i + " машини " + mas[0, k]);
            }
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine("\t***Другий заїзд***");
            int y = 0;
            for (int k = 0; k < 3; k++)
            {
                mas[1, k] = gh.Next(110, 160);
                y++;
                Console.WriteLine("Швидкість після другого заїзду ");
                Console.WriteLine(y + " машини " + mas[1, k]);
            }

            Console.ReadKey();
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine("\t***Третій заїзд***");
            int a = 0;
            for (int k = 0; k < 3; k++)
            {
                mas[2, k] = gh.Next(120, 170);
                a++;
                Console.WriteLine("Швидкість після третього заїзду ");
                Console.WriteLine(a + " машини " + mas[2, k]);
            }
            Console.WriteLine();
            int aver1 = (mas[0,0] + mas[1,0] + mas[2,0]) / 3;
            Console.WriteLine("Середня швидкість першої " + aver1);
            int aver2 = (mas[0, 1] + mas[1, 1] + mas[2, 1]) / 3;
            Console.WriteLine("Середня швидкість другої " + aver2);
            int aver3 = (mas[0, 2] + mas[1, 2] + mas[2, 2]) / 3;
            Console.WriteLine("Середня швидкість третьої " + aver3);

            if(aver1 > aver2 && aver1 > aver3 )
            {
                Console.WriteLine("\tПерший переміг!!! - 1 місце");
                if (aver2 > aver3) Console.WriteLine("\t2 машина - 2 місце");
                else if (aver2 < aver3) Console.WriteLine("\t2 машина - 3 місце");
                if (aver3 > aver2) Console.WriteLine("\t3 машина - 2 місце");
                else if (aver3 < aver2) Console.WriteLine("\t3 машина - 3 місце");
            }
            else if (aver2 > aver1 && aver2 > aver3)
            {
                Console.WriteLine("\tДругий переміг!!! - 1 місце");
                if (aver1 > aver3) Console.WriteLine("\t1 машина - 2 місце");
                if (aver3 > aver1) Console.WriteLine("\t3 машина - 2 місце");
                else if (aver1 < aver3) Console.WriteLine("\t1 машина - 3 місце");
                else if (aver3 < aver1) Console.WriteLine("\t3 машина - 3 місце");
            }
            else if (aver3 > aver1 && aver3 > aver2)
            {
                Console.WriteLine("\tТретій переміг!!! - 1 місце");
                if (aver1 > aver2) Console.WriteLine("\t1 машина - 2 місце");
                if (aver2 > aver1) Console.WriteLine("\t2 машина - 2 місце");
                else if (aver1 < aver2) Console.WriteLine("\t1 машина - 3 місце");
                else if (aver2 < aver1) Console.WriteLine("\t2 машина - 3 місце");
            }
            Console.ReadLine();
        }
    }
}

Як можна більш гарним кодом написати цю прогу? І як зробит, якщо середні швидкості відразу одинакові?
Всим дякую і гарного дня!)))

Оригінал
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] mas = new int[4,4];
            Random gh = new Random();

            int i = 0;
            Console.WriteLine("\tГонка будет состоять из 3 заездов");
            Console.WriteLine("\t***Первый заезд***");
            for (int k = 0; k < 3; k ++ )
            {
                mas[0, k] = gh.Next(100, 150);
                i++;
                Console.WriteLine("Скорость после перервого заезда ");
                Console.WriteLine(i + " машины " + mas[0, k]);
            }
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine("\t***Второй заезд***");
            int y = 0;
            for (int k = 0; k < 3; k++)
            {
                mas[1, k] = gh.Next(110, 160);
                y++;
                Console.WriteLine("Скорость после второго заезда ");
                Console.WriteLine(y + " машины " + mas[1, k]);
            }

            Console.ReadKey();
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine("\t***Третий заезд***");
            int a = 0;
            for (int k = 0; k < 3; k++)
            {
                mas[2, k] = gh.Next(120, 170);
                a++;
                Console.WriteLine("Скорость после третьего заезда ");
                Console.WriteLine(a + " машины " + mas[2, k]);
            }
            Console.WriteLine();
          int aver1 = (mas[0,0] + mas[1,0] + mas[2,0]) / 3;
          Console.WriteLine("Средняя скорость первой " + aver1);
          int aver2 = (mas[0, 1] + mas[1, 1] + mas[2, 1]) / 3;
          Console.WriteLine("Средняя скорость второй " + aver2);
          int aver3 = (mas[0, 2] + mas[1, 2] + mas[2, 2]) / 3;
          Console.WriteLine("Средняя скорость третей " + aver3);

        

            if(aver1 > aver2 && aver1 > aver3 )
            {
                Console.WriteLine("\tПервый победил!!! - 1 место");
                if (aver2 > aver3) Console.WriteLine("\t2 машина - 2 место");
                else if (aver2 < aver3) Console.WriteLine("\t2 машина - 3 место");
                if (aver3 > aver2) Console.WriteLine("\t3 машина - 2 место");
                else if (aver3 < aver2) Console.WriteLine("\t3 машина - 3 место");
                
            }
           
           else if (aver2 > aver1 && aver2 > aver3)
            {
                Console.WriteLine("\tВторой победил!!! - 1 место");
                if (aver1 > aver3) Console.WriteLine("\t1 машина - 2 место");
                if (aver3 > aver1) Console.WriteLine("\t3 машина - 2 место");
                else if (aver1 < aver3) Console.WriteLine("\t1 машина - 3 место");
                else if (aver3 < aver1) Console.WriteLine("\t3 машина - 3 место");
            }

            else if (aver3 > aver1 && aver3 > aver2)
            {
                Console.WriteLine("\tТретий победил!!! - 1 место");
                if (aver1 > aver2) Console.WriteLine("\t1 машина - 2 место");
                if (aver2 > aver1) Console.WriteLine("\t2 машина - 2 место");
                else if (aver1 < aver2) Console.WriteLine("\t1 машина - 3 место");
                else if (aver2 < aver1) Console.WriteLine("\t2 машина - 3 место");
            }

                Console.ReadLine();

        }
    }
}

14

(4 відповідей, залишених у C#, .NET)

Виправив початкове значення і все запрацювало!

for (int g = i+1; g < mass.Length - 1; ++g)

15

(4 відповідей, залишених у C#, .NET)

В масиві потрібно знайти та видалити подібні елементи, які я введу з клавіатури.
Зробив, але чомусь виводе половину нашого масиву.
Можете виправити та пояснити чому так?)
Дякую)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UnicMas1
{
    class Program
    {
        static void Main(string[] args)
        {

            int[] mass = new int[10];
            Console.WriteLine("Введите 10 символов: ");

            for (int b = 0; b < 10; b++)
            {
                mass[b] = Convert.ToInt32(Console.ReadLine());
            }

            Console.WriteLine("\nВаш масив ");

            for (int a = 0; a < 10; a++)
            {
                Console.Write(mass[a] + " ");
            }

            for (int i = 0; i < mass.Length - 1; ++i)
            {
                for (int g = 0; g < mass.Length - 1; ++g)
                {
                    if (mass[i] == mass[g])
                    {
                        int f = mass[mass.Length - 1];
                        mass[mass.Length - 1] = mass[g];
                        mass[g] = f;
                        Array.Resize(ref mass, mass.Length - 1);

                    }
                }
            }
            Console.WriteLine("\nLength " + mass.Length);
            Console.WriteLine("\nВаш уникальный масив ");

            for (int a = 0; a < mass.Length; ++a)
            {
                Console.Write(mass[a] + " ");
            }

            Console.ReadKey();

        }
    }
}

16

(1 відповідей, залишених у C++)

Якщо кому цікаво,  зробив програму, яка за допомого функцій вводе значення в масив, а також просто виводе вміст масиву. Якщо є певні помилки в правильності коду, підкажіть будь ласка! Буду тільки радий)

 #include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

int func_for_massiv1();
int func_for_massiv2();
void clear();
int main()
{ 
    cout << "Enter number for first array " << endl;
    func_for_massiv1();
    cout << "Do you want clear the screen? (y/n) " << endl;
    char vidpovid = getchar();
    cin >> vidpovid;
    
    if (vidpovid != 'y')
    {
        
        cout << "Elements from second array " << endl;
        func_for_massiv2();
    }
    else if (vidpovid != 'n')
    {
        clear();
        cout << "Elements from second array " << endl;
        func_for_massiv2();
    }

    system("pause");
    return 0;
}

void clear()
{
    system("cls");
}

int func_for_massiv1()
{
    int massiv1[10];
    int g;
    cout << "Please enter 10 elements for array " << endl;
    int a;
    for ( unsigned int i = 0; i < 10; ++i)
    {
        cout << "Enter " << i << " element for array: ";
        
            cin >> a;
            massiv1[i] = a;
            cout << "Your element " << a << endl;
    }
    for (g = 0; g <= 9; g++)
    {
        cout << " " << massiv1[g];
    }
    cout << endl;
    return 0;
}

int func_for_massiv2()
{
    int massiv2[5] = { 23, 13, 8, 6, 1 };
    int b;
    for (b = 0; b <= 4; b++)
    {
        cout << "array[" << b << "]" << "\t\t" << massiv2[b] << endl;
    }
    return 0;
} 

17

(6 відповідей, залишених у C++)

Вийшло! Дякую) Кому цікаво, тримайте!

[code=C++]if (vidpovid != 'y')
{
    cout << "Enter number for second massiv " << endl;
    func_for_massiv2();
}
else if (vidpovid != 'n')
{
    clear();
    cout << "Enter number for second massiv " << endl;
    func_for_massiv2();
}[/code]

18

(6 відповідей, залишених у C++)

Я хочу, щоб коли користувач введе У, то очищується екран і він переходе до заповнення 2 масиву, а при вводі другого символу просто переходити до заповнення, тобто без очищення. Наразі, при вводі будь-якого символу очищується екран. Не виконується else. Я думаю, що просто символ не зберігається.

19

(6 відповідей, залишених у C++)

Всим доброго вечора!
Хочу, щоб користувач міг вибрати хоче він очистити екран і перейти до заповнення другого масиву, чи і далі працювати без очищення, але при вводі будь-якого символу очищує екран.

int main()
{
    //char vidpovid;
    cout << "Enter number for first massiv " << endl;
    func_for_massiv1();
    cout << "Do you want clear the screen? (y/n) " << endl;
    char vidpovid = getchar();
    cin >> vidpovid;

    if (vidpovid = 'y')
    {
        clear();
        cout << "Enter number for second massiv " << endl;
        //func_for_massiv2();
    }
    else
    {
        cout << "Enter number for second massiv " << endl;
        //func_for_massiv2();
    }
    system("pause");
    return 0;
}

20

(7 відповідей, залишених у C++)

Все вирішив проблему. Всим дякую!