1. C# / Говнокод #24549

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.IO;
    using System.Linq;
    using System.Collections.Generic;
    
    namespace CSharp_Shell
    {
        public class Program
        {
            static int flipACoin() {
                Random rand = new Random();
                int coin = rand.Next(0,2);
                return coin;
            }
            public static void Main(string[] args)
            {
                int headsCount = 0; 
                int tailsCount = 0;
                int tmp;
                Console.Write("Enter a number of flips\n");
                for(int flips = int.Parse(Console.ReadLine()); flips > 0; flips--) 
                {
                    Console.Write("You flipped: ");
                    tmp = flipACoin();
                    if(tmp == 1) 
                    {
                        Console.Write("Heads\n");
                        headsCount++;
                    }
                    else 
                    {
                        Console.Write("Tails\n");
                        tailsCount++;
                    }
                }
                Console.Write("Heads: " + headsCount + "\nTails: " + tailsCount + "\n");
            }
        }
    }

    Флипает коинсу по аглицки. Есть ли это говнокодом?

    Запостил: shite, 27 Июля 2018

    Комментарии (14) RSS

    • Полное говно
      static int flipACoin() {
                  Random rand = new Random();
                  int coin = rand.Next(0,2);
                  return coin;
              }

      Зачем создавать рандомизатор при каждом вызове функции?
      for(int flips = int.Parse(Console.ReadLine()); flips > 0; flips--)

      Где обработка ошибок?
      tmp = flipACoin();
                      if(tmp == 1)

      Почему в одном месте ты объявляешь переменную сразу в конструкции языка, в другом - отдельно? Ты шизофреник?
      Console.Write("Heads\n");

      Если что, есть
      Console.WriteLine("Heads");
      Ответить
      • На счёт
        Console.Write("/*smth*/\n")
        могу обьяснить: мне так удобнее. Другое приму на заметку.
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • Неработающее говно, курите мануал: https://msdn.microsoft.com/en-us/library/h343ddh9(v=vs.110).aspx.
      >>> Initializes a new instance of the Random class, using a time-dependent default seed value.
      А поскольку в цикле новые объекты Random создаются очень быстро, семя не успевает измениться, как следствие - rand.Next(0,2); всегда выдаёт одно и то же значение:
      Heads: 0
      Tails: 100

      Ну и даже если бы успевало, куски подпоследовательностей случайных чисел от ГПСЧ, инициализированных разными seed'ами, соединённые в одну последовательность, будут (скорее всего) иметь очень хреновое распределение.
      Ответить
    • Конечно говно.
      Не надо Random rand = new Random(); каждый раз

      зы: gost вон выше уже объяснил почему
      Ответить
      • > Не надо Random rand = new Random(); каждый раз
        Я вас поздравляю, вы получаете бронзовую мендаль.
        Ответить
    • кстати, а зачем int ?
      у вас же var, вывод типов, вот это всё
      Ответить

    Добавить комментарий