Си диез / Говнокод #24549 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 shite, (Updated )

Комментарии (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")
      могу обьяснить: мне так удобнее. Другое приму на заметку.
      Ответить
  • Неработающее говно, курите мануал: 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 вон выше уже объяснил почему
    Ответить
  • кстати, а зачем int ?
    у вас же var, вывод типов, вот это всё
    Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8