Advertisement
SarduMurakumo

MonsterVSHuman

Jul 7th, 2021
1,180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 12.42 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace MonsterVSHuman
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Console.ForegroundColor = ConsoleColor.White;
  11.             Console.BackgroundColor = ConsoleColor.Black;
  12.             Console.WriteLine("Welcome to the Monster vs Human!");
  13.             Console.Write("You and monster have two type of attacks: ");
  14.             Console.ForegroundColor = ConsoleColor.Cyan;
  15.             Console.Write("physical");
  16.             Console.ForegroundColor = ConsoleColor.White;
  17.             Console.Write(" and ");
  18.             Console.ForegroundColor = ConsoleColor.Blue;
  19.             Console.WriteLine("magical");
  20.             Console.ForegroundColor = ConsoleColor.White;
  21.             Console.Write("Also, you both have two type of defence: ");
  22.             Console.ForegroundColor = ConsoleColor.Cyan;
  23.             Console.Write("physical");
  24.             Console.ForegroundColor = ConsoleColor.White;
  25.             Console.Write(" and ");
  26.             Console.ForegroundColor = ConsoleColor.Blue;
  27.             Console.WriteLine("magical");
  28.             Console.ForegroundColor = ConsoleColor.White;
  29.             Console.WriteLine("Every turn human choose one type of attack he wanted to use and one type of defence");
  30.             Console.WriteLine("Monster also do choose attack and defence type every turn like a human");
  31.             Console.WriteLine("For example:");
  32.             Console.Write("If human choose ");
  33.             Console.ForegroundColor = ConsoleColor.Blue;
  34.             Console.Write("magical");
  35.             Console.ForegroundColor = ConsoleColor.White;
  36.             Console.Write(" type of attack and monster choose ");
  37.             Console.ForegroundColor = ConsoleColor.Cyan;
  38.             Console.Write("physical");
  39.             Console.ForegroundColor = ConsoleColor.White;
  40.             Console.WriteLine(" type of defence at the same turn, monster get 1 dmg");
  41.             Console.Write("If human choose ");
  42.             Console.ForegroundColor = ConsoleColor.Blue;
  43.             Console.Write("magical");
  44.             Console.ForegroundColor = ConsoleColor.White;
  45.             Console.Write(" type of attack and monster choose ");
  46.             Console.ForegroundColor = ConsoleColor.Blue;
  47.             Console.Write("magical");
  48.             Console.ForegroundColor = ConsoleColor.White;
  49.             Console.WriteLine(" type of defence at the same turn, monster will not take dmg");
  50.             Console.WriteLine("Monster and human both have 3HP");
  51.             Console.WriteLine("If human and a monster kill each other in the same turn, a draw is declared");
  52.             Console.WriteLine("If the HP of one of the participants in the battle drops to zero he lose and his opponent scored a victory");
  53.             Console.WriteLine("");
  54.             Console.WriteLine("If you ready for battle, press enter to continue");
  55.             Console.WriteLine("");
  56.             Console.ReadKey();
  57.             Console.WriteLine(3);
  58.             Thread.Sleep(500);
  59.             Console.WriteLine(2);
  60.             Thread.Sleep(500);
  61.             Console.WriteLine(1);
  62.             Thread.Sleep(500);
  63.             Console.WriteLine("");
  64.  
  65.             Random rnd1 = new Random();
  66.             Thread.Sleep(2000);
  67.             Random rnd2 = new Random();
  68.  
  69.             int monsterHP = 3;
  70.             int humanHP = 3;
  71.             int endCounter = 1;
  72.             int turnCounter = 0;
  73.             while (endCounter != 0)
  74.             {
  75.                 turnCounter += 1;
  76.  
  77.                 if (monsterHP != 0 && humanHP != 0)
  78.                 {
  79.                     Console.ForegroundColor = ConsoleColor.Yellow;
  80.                     Console.WriteLine("__________");
  81.                     Console.WriteLine("Turn № " + turnCounter);
  82.                     Console.WriteLine("__________");
  83.                     Console.ForegroundColor = ConsoleColor.White;
  84.                     Console.WriteLine();
  85.  
  86.                     RequstAttackType();
  87.                     int humanAttackType = Convert.ToInt32(Console.ReadLine());
  88.                     RequstDefenceType();
  89.                     int humanDefenceType = Convert.ToInt32(Console.ReadLine());
  90.                     int monsterAttackType = (rnd1.Next(1, 3));
  91.                     int monsterDefenceType = (rnd2.Next(1, 3));
  92.                     Console.WriteLine();
  93.  
  94.                     //Оформление к выбранной атаке хумана и защите монстра
  95.                     if (humanAttackType == 1)
  96.                     {
  97.                         Console.Write("Human attack -");
  98.                         WritePhyseType();
  99.                         if (monsterDefenceType == 1)
  100.                         {
  101.                             Console.Write("| Monster defence -");
  102.                             WritePhyseType();
  103.                             Console.WriteLine();
  104.                         }
  105.                         else
  106.                         {
  107.                             Console.Write("| Monster defence -");
  108.                             WriteMagicalType();
  109.                             Console.WriteLine();
  110.                         }
  111.                     }
  112.                     else
  113.                     {
  114.                         Console.Write("Human attack -");
  115.                         WriteMagicalType();
  116.                         if (monsterDefenceType == 1)
  117.                         {
  118.                             Console.Write("| Monster defence -");
  119.                             WritePhyseType();
  120.                             Console.WriteLine();
  121.                         }
  122.                         else
  123.                         {
  124.                             Console.Write("| Monster defence -");
  125.                             WriteMagicalType();
  126.                             Console.WriteLine();
  127.                         }
  128.                     }
  129.  
  130.                     //Просчет результатов битвы, когда атакует хуман и вывод хп монстра
  131.                     if (ComparisonTypsAttackAndDedfence(humanAttackType, monsterDefenceType) == 0)
  132.                     {
  133.                         monsterHP = HpMinusOne(monsterHP);
  134.                         Console.WriteLine("Monster HP minus 1");
  135.                         Console.ForegroundColor = ConsoleColor.Red;
  136.                         Console.WriteLine("Monster HP = " + monsterHP);
  137.                         Console.ForegroundColor = ConsoleColor.White;
  138.                         Console.WriteLine("");
  139.                     }
  140.                     else
  141.                     {
  142.                         Console.WriteLine("Monster block");
  143.                         Console.ForegroundColor = ConsoleColor.Red;
  144.                         Console.WriteLine("Monster HP = " + monsterHP);
  145.                         Console.ForegroundColor = ConsoleColor.White;
  146.                         Console.WriteLine("");
  147.                     }
  148.  
  149.                     //Оформление к выбранной защите хумана и атаке монстра
  150.                     if (humanDefenceType == 1)
  151.                     {
  152.                         Console.Write("Human defence -");
  153.                         WritePhyseType();
  154.                         if (monsterDefenceType == 1)
  155.                         {
  156.                             Console.Write("| Monster attack -");
  157.                             WritePhyseType();
  158.                             Console.WriteLine();
  159.                         }
  160.                         else
  161.                         {
  162.                             Console.Write("| Monster attack -");
  163.                             WriteMagicalType();
  164.                             Console.WriteLine();
  165.                         }
  166.                     }
  167.                     else
  168.                     {
  169.                         Console.Write("Human defence -");
  170.                         WriteMagicalType();
  171.                         if (monsterDefenceType == 1)
  172.                         {
  173.                             Console.Write("| Monster attack -");
  174.                             WritePhyseType();
  175.                             Console.WriteLine();
  176.                         }
  177.                         else
  178.                         {
  179.                             Console.Write("| Monster attack -");
  180.                             WriteMagicalType();
  181.                             Console.WriteLine();
  182.                         }
  183.                     }
  184.  
  185.                     //Просчет результатов битвы, когда атакует монстр и вывод хп хумана
  186.                     if (ComparisonTypsAttackAndDedfence(humanDefenceType, monsterAttackType) == 0)
  187.                     {
  188.                         humanHP = HpMinusOne(humanHP);
  189.                         Console.WriteLine("Human HP minus 1");
  190.                         Console.ForegroundColor = ConsoleColor.Green;
  191.                         Console.WriteLine("Human HP = " + humanHP);
  192.                         Console.ForegroundColor = ConsoleColor.White;
  193.                         Console.WriteLine("");
  194.                     }
  195.                     else
  196.                     {
  197.                         Console.WriteLine("Human block");
  198.                         Console.ForegroundColor = ConsoleColor.Green;
  199.                         Console.WriteLine("Human HP = " + humanHP);
  200.                         Console.ForegroundColor = ConsoleColor.White;
  201.                         Console.WriteLine("");
  202.                     }
  203.                 }
  204.  
  205.                 //Если хп одного из участников битвы падает до 0, выходим из цикла и объявляем победителя
  206.                 else
  207.                 {
  208.                     endCounter = 0;
  209.                        
  210.                     if (humanHP == 0 && monsterHP != 0)
  211.                     {
  212.                         Console.ForegroundColor = ConsoleColor.Red;
  213.                         Console.WriteLine("Monster Win!");
  214.                         Console.ForegroundColor = ConsoleColor.White;
  215.                     }
  216.                     else
  217.                     {
  218.                         if (monsterHP == 0 && humanHP != 0)
  219.                         {
  220.                             Console.ForegroundColor = ConsoleColor.Green;
  221.                             Console.WriteLine("Human Win!");
  222.                             Console.ForegroundColor = ConsoleColor.White;
  223.                         }
  224.                         else
  225.                         {
  226.                             Console.ForegroundColor = ConsoleColor.Yellow;
  227.                             Console.WriteLine("Draw!");
  228.                             Console.ForegroundColor = ConsoleColor.White;
  229.                         }
  230.                     }
  231.                 }  
  232.             }
  233.         }
  234.  
  235.         static void RequstAttackType()
  236.         {
  237.             Console.Write("Input attack type: ");
  238.             Console.ForegroundColor = ConsoleColor.Cyan;
  239.             Console.Write("1 - physical");
  240.             Console.ForegroundColor = ConsoleColor.White;
  241.             Console.Write(" or ");
  242.             Console.ForegroundColor = ConsoleColor.Blue;
  243.             Console.WriteLine("2 - magical");
  244.             Console.ForegroundColor = ConsoleColor.White;
  245.         }
  246.  
  247.         static void RequstDefenceType()
  248.         {
  249.             Console.Write("Input defence type: ");
  250.             Console.ForegroundColor = ConsoleColor.Cyan;
  251.             Console.Write("1 - physical");
  252.             Console.ForegroundColor = ConsoleColor.White;
  253.             Console.Write(" or ");
  254.             Console.ForegroundColor = ConsoleColor.Blue;
  255.             Console.WriteLine("2 - magical");
  256.             Console.ForegroundColor = ConsoleColor.White;
  257.         }
  258.  
  259.         static void WritePhyseType()
  260.         {
  261.             Console.ForegroundColor = ConsoleColor.Cyan;
  262.             Console.Write(" physical ");
  263.             Console.ForegroundColor = ConsoleColor.White;
  264.         }
  265.         static void WriteMagicalType()
  266.         {
  267.             Console.ForegroundColor = ConsoleColor.Blue;
  268.             Console.Write(" magical ");
  269.             Console.ForegroundColor = ConsoleColor.White;
  270.         }
  271.  
  272.         static int HpMinusOne (int x)
  273.         {
  274.             return x - 1;
  275.         }
  276.  
  277.         static int ComparisonTypsAttackAndDedfence (int x, int y)
  278.         {
  279.             if (x == y)
  280.             {
  281.                 return 1;
  282.             }
  283.             else
  284.             {
  285.                 return 0;
  286.             }
  287.         }
  288.     }
  289. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement