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

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
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
class MainClass
    { 
        public static char[,] titato = new char[3, 3] { { ' ', ' ', ' ' }, { ' ', ' ', ' ' }, { ' ', ' ', ' ' } };
        static bool CheckWin(char s)
        {
            if ((titato[0, 0] == titato[1, 1] & titato[1, 1] == titato[2, 2] & titato[0, 0] != ' ') ||
                  (titato[0, 1] == titato[0, 2] & titato[0, 2] == titato[0, 0] & titato[0, 1] != ' ') ||
                   (titato[1, 1] == titato[1, 2] & titato[1, 2] == titato[1, 0] & titato[1, 1] != ' ') ||
                    (titato[2, 1] == titato[2, 2] & titato[2, 2] == titato[2, 0] & titato[2, 1] != ' ') ||
                     (titato[1, 0] == titato[2, 0] & titato[2, 0] == titato[0, 0] & titato[1, 0] != ' ') ||
                      (titato[1, 1] == titato[2, 1] & titato[2, 1] == titato[0, 1] & titato[1, 1] != ' ') ||
                       (titato[1, 2] == titato[2, 2] & titato[2, 2] == titato[0, 2] & titato[1, 2] != ' ') ||
                        (titato[2, 0] == titato[1, 1] & titato[1, 1] == titato[0, 2] & titato[2, 0] != ' '))
            {
                return true;
            }
            return false;
        } 
        public static void PrintTicTacToe(char s)
        { 
            Console.Clear();            
            Console.Write(" ");            
            Console.BackgroundColor = ConsoleColor.White; 
            for (int i = 0; i < titato.GetLength(0); i++)            {
                 Console.Write(" {0} ", i); 
            } 
            Console.WriteLine(); 
            for (int i = 0; i < titato.GetLength(0); i++)            {
                 Console.BackgroundColor = ConsoleColor.White;
                 Console.Write("{0}", i);
                 for (int j = 0; j < titato.GetLength(1); j++)                { 
                    Console.BackgroundColor = ConsoleColor.Black;
                     if (titato[i, j] == 'x')                    {
                        Console.ForegroundColor = ConsoleColor.Red; 
                    }
                    else if (titato[i, j] == 'o')                    { 
                        Console.ForegroundColor = ConsoleColor.Green; 
                    } 
                    else                    { 
                        Console.ForegroundColor = ConsoleColor.Black;
                     }
                     Console.Write(" {0} ", titato[i, j]); 
                } 
                Console.WriteLine(); 
            } 
            Console.BackgroundColor = ConsoleColor.White; 
            Console.ForegroundColor = ConsoleColor.Black;
            if (CheckWin(s))            {
                Console.WriteLine(s + " win!!!");                
            }            
        }
         public static void PushXO(int i, int j, char s)
        { 
            titato[i, j] = s; 
        }
         public static void Main(string[] args)
        { 
            bool symbolX = true; 
            char s = 'x'; 
            int i = 0, j = 0; 
            do            { 
                Console.WriteLine("TIC TAC TOE!"); 
                PrintTicTacToe(s); 
                if (symbolX == true)                {                    
                    Console.WriteLine("Ходит Х");
                    Console.WriteLine("Введите номер столбца а затем введите номер строки:"); 
                    s = 'x'; 
                    symbolX = false;  
                } 
                else                { 
                    Console.WriteLine("Ходит О");
                    Console.WriteLine("Введите номер столбца а затем введите номер строки:");
                    s = 'o';                    
                    symbolX = true; 
                } 
                 i = int.Parse(Console.ReadLine()); 

                j = int.Parse(Console.ReadLine());
 
                PushXO(j, i, s);
 
                //   Console.ReadLine();
 
                PrintTicTacToe(s);
 
 
            } while (true);
 
        }

Крестики-нолики

Запостил: Psilon Psilon, (Updated )

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

  • Блин, я думал тут AI для крестиков-ноликов, а тут всего лишь мультиплеер ;(
    Ответить
    • Меня больше всего волнует, что же это за titato такое ...
      Ответить
    • > AI для крестиков-ноликов
      >new char[3, 3]
      Да не смешите. Там пресловутый AI ограничивается парой вариантов - если начинаем мы - коварный ход в рандомный угол.
      Если человек - то занимаем центр либо угол. А потом обычно начинается форсированный вариант.
      Я еще на спектруме такое писал.
      Ответить
      • > если начинаем мы - коварный ход в рандомный угол
        Эээ. В центр вообще-то. Но да, алгоритм там очень простой, и я его когда-то писал на бейсике 😉

        > еще на спектруме
        Вот спектрума у меня не было, к сожалению. Зато была dendy с клавиатурой и картридж с бейсиком... Веселые были времена... Магнитофон там не цеплялся, поэтому программы приходилось сохранять на листок бумаги, а потом вбивать заново. Но всякие змейки-тетрисы-пинг понги-морские бои-крестиконолики писать вполне получалось 😉

        А еще там было прикольно исследовать ее GPU путем записи всяких чисел в его memory mapped регистры оператором POKE. Даже разобрался тогда, методом тыка, как юзать аппаратные спрайты, и аппаратный попиксельный скроллинг...
        Ответить
        • Счастливые люди. Я застал только x386 (если учесть, что я 93г.р, то это круто). И программы не писал - играл в MoO да в HOMM и Master of Magic... 🙁
          Ответить
          • Ну у меня комп появился довольно поздно, по нынешним меркам. Только на первом курсе. Ну и был он уже вполне адекватный - 256 памяти, атлон на 1.2ггц и знаменитая гфорс4, на которой шли все игрушки.

            А писать небольшие программы было интересно, не все же батлтодсов задрачивать 😉
            Ответить
            • У меня комп тоже появился только на первом курсе. Правда он у меня был не вполне адекватный, например я познал счастье юзать его без мышки. По ресурсам я помню, что было около 256мб памяти, проц пенек 4ый,видюха на 32 мбайта.
              Ответить
              • celeron 366 (на 550 к сожалению не заработал) и православная voodoo 2.
                не знаю как сейчас учатся с телефонами, принтерами и прочим, но вот в универе я первый семестр второго курса без компа проучился - непросто было.
                Ответить
                • Раз пошла такая пьянка, то мой первый комп был 486DX4/100 с винтом Quantum Fireball на 610 мегов, видяшкой S3 Trio с 1 метром видео, ну и 16 Мб ОЗУ типа SIMM. Зато моник был не как у всех 14", а целых 15". Моник такой стоил тогда $300+.
                  >и православная voodoo 2.
                  это которая отдельной платой шла в дополнение к видяхе?
                  Ответить
                  • А у меня была (да и сейчас есть) чудо-машина, советский клон спектрума. Лютейшие непродавливаемые кнопки, так что писать на бейсике можно было только молотком. Ну и на каждую кнопку было завязано по два-три оператора бейсика, всё подписано, просто красота.
                    Ответить
                • > не знаю как сейчас учатся с телефонами, принтерами и прочим, но вот в универе я первый семестр второго курса без компа проучился
                  ходят к соседям/друзьям по общаге
                  свой комп себе купил перед 4 курсом, как только на него заработал, а до этого только бомжеванием
                  Ответить
                  • Мне мой первый комп достался за даром. Ну почти за даром, я его собрал из различных частей, которые либо выменял либо просто попросил подарить.
                    Потом уже на 3-ем курсе я сподобился купить себе бук с адекватными на то время ресурсами.
                    Ответить
              • Ааа, пень-4, аааа 32 мегабайта, аааа 256 мегабайт оперативы, обоже, как ты жил на таком.
                Ответить
                  • Блин, у меня селерон-600, 8мегов видел, 192 оперативы.
                    Иногда оперативы не хватает при просмотре онлайн-видео.
                    А вы зажрались нахрен.
                    Ответить
                    • Ну я по всей видимости моложе вас.
                      В универе, в моей группе у меня был самый дохлый комп. Да кстати, онлайн видео тоже тормозило.
                      Ответить
                      • Тарас тоже не особо стар. И, видимо, он описывает свой нынешний комп.
                        Ответить
                          • А может быть, это протест против общества? Или просто стимул оптимизировать программы, чтобы они гарантированно не тормозили на любом оборудовании?
                            Ответить
                            • Может просто он работает уже 15 лет и не глючит, а более новый нетбук бсодит раз в неделю на пустом месте?
                              Нафига выкидывать комп, если он не доставляет геморроя?
                              Ответить
                              • зачем выкидывать? можно продать Тарасу, у которого еще нет компа.
                                Ответить
                              • всем кроме тебя очевидно, что селерон-600 + 192М оперативы и не доставление геморроя - это несовместимые понятия
                                да на нем даже браузер с говнокодом будет тормозить
                                что за нищебродство программисту не заработать в питере голимых 20к рублей на сраный современный системник, притом, что насколько я помню, ты не живешь самостоятельно, не снимаешь и не кормишь себя сам
                                Ответить
                                • > селерон-600 + 192М оперативы
                                  Так это что на самом деле?
                                  Я всегда думал что это подшучивания про селерон тараса.
                                  Ответить
                                  • Да я ж даже фоточки выкладывал на крестофоруме.

                                    http://www.gamedev.ru/files/images/dsc00002.jpg

                                    Там только название модели не видно, но это Compaq Armada E500. ТТХ можешь посмотреть в гугле.
                                    Корпус опирается на стенку и держится на зажимах, но железо работает без перебоев, система не глючит, всё очень стабильно.
                                    Ответить
                                • > не заработать в питере голимых 20к
                                  Тогда Тарасу не получится понтоваться таким железом.
                                  Ответить
                                  • > Тогда Тарасу не получится понтоваться таким железом.
                                    Господа, откроем подписку. Это пожертвование очень важно.
                                    Ответить
                                • Да не, не тормозит же говнокод. Нихуя не тормозит.
                                  Только онлайновое видео.
                                  А ещё мэйлрушечка и прочие быдлосайты, сделанные кривожопыми быдловерстальщиками.
                                  Ответить
                                  • >быдлосайты, сделанные кривожопыми быдловерстальщиками
                                    Вы представляете, сколько времени и сил может уйти на верстку под маргинальные браузеры и железо? А насколько ужасна будет такая верстка, полная хаков 20-летней давности? В реальном мире (tm) проще, быстрее, дешевле, надежнее и даже морально правильнее пожертвовать удобством одного Тараса ради удобства тысяч единиц офисного планктона.

                                    Я не знаю насчет мейлру, но не стоит так пренебрежительно относиться к работе верстальщиков - это довольно сложный навык, основанный во многом на опыте, а не не формальных правилах, которые можно прочитать в учебниках.
                                    Ответить
                                    • Хаки не нужны. Нужно запретить Интернет Эксплорер, тогда дорогостоящая вёрстка не понадобится.

                                      Опера, например, и на старом железе не тормозит.
                                      Ответить
                                        • > нахер оперу, links рулит
                                          Нахер links, telnet рулит. Им и в IRC можно слазить, початиться. И сайты почитать.
                                          Ответить
                                          • когда меня искушают почитать сайты телнетом, я просто смотрю дамп пришедших пакетов на сетевую карту в hex виде
                                            Ответить
                                            • > когда меня искушают почитать сайты телнетом, я просто смотрю дамп пришедших пакетов на сетевую карту в hex виде

                                              А я подключаю осциллограф к витухе, и читаю сайт глядя на пачки импульсов.
                                              Ответить
                                              • согласись, в таком режиме даже свистопердящая майлрушечка работает отлично
                                                (кстати, что на майлрушечке может забыть адекватный человек?)
                                                Ответить
                                              • >А я подключаю осциллограф к витухе
                                                Нахер витуху. Голуби рулят.
                                                Ответить
                                                • > Нахер витуху. Голуби рулят.
                                                  Под них даже рфц есть.
                                                  Ответить
                                                  • >> Нахер витуху. Голуби рулят.
                                                    > Под них даже рфц есть.
                                                    Ладно бы просто рфц под голубей. А то ещё есть рфц под голубей с QoS.
                                                    Ответить
                                    • Да ладно, достаточно запретить свистение и пердёж на сайтах
                                      Ответить
                                      • >запретить свистение и пердёж
                                        Но тогда умрет весь офисный планктон, а затем и вся экосистема интернетов.
                                        Ответить
                                        • > умрет ... вся экосистема интернетов

                                          А ведь сначала html изобрели для быстрой навигации по научным публикациям, в него даже изображения не хотели добавлять. Куда катится мир...
                                          Ответить
                                          • >Куда катится мир...

                                            В гиппертекстовый апокалипсис.
                                            Ответить
                                  • >Нихуя не тормозит.
                                    Основным ограничивающим фактором является не процессор. Будет работать не 100мс, а 200 или 500, тут даже селерона-450 хватит.

                                    Тут проблема в другом. Своп снижает скорость любой системы до 386. Если отключить всё ненужное XP хавает немногим больше 100 метров памяти. Остается 90. На всё остальное.

                                    Я бы поверил если б ты сказал что у тебя 512 метров и все летает. Но вот только 512 SDRAM стоит как 4Gb DDR3. И ограничивающим фактором является платформа.

                                    Я бы поверил, если б ты писал код в vim или emacs.
                                    Но когда в далеком 2004 я обзавелся 512 метрами, то и тогда VS2003 показалась мне тормозным говном.

                                    Потому думаю это вброс. Ололо у меня на железе десятилетней давности все летает
                                    Ответить
                                    • @3.14159265 Мне удалось запустить Windows XP на машине с 32 мегабайтами оперативки. Скопировав содержимое диска Windows XPE на винчестер.
                                      Ответить
                                      • > на машине с 32 мегабайтами оперативки
                                        Если ставить в специальном режиме, вполне можно поставить и штатно. На 32 не пробовали, на 96 мегабайтах поставилось просто шикарно.
                                        Впрочем, если брать спецдистрибутивы, то можно многого добиться. Например, у меня семёрка летает на ноуте с VIA C7-M 754. Разве что памяти я туда насовал много.
                                        Ответить
                                        • про xp - на ноуте-селероне с 128М на борту минус 32М (память под встроенное видео) = 96М играл в фифу ~2003
                                          для этого надо было вручную поубивать все "ненужные" svchost (те вообще все службы, чья смерть не приводила к ребуту системы), из 96М оставалось занято около 25 и фифа таки работала
                                          обычная xp, не embedded
                                          Ответить
                                          • >для этого надо было вручную поубивать все "ненужные" svchost
                                            То понятно. Думаю каждый этим занимался. Много из этого в службах делается. Я вот тоже когда-то для игр прибивал всё, эксплолер первым делом кстати.
                                            Мне удавалось в xp и 70 метров сделать.

                                            >на машине с 32 мегабайтами оперативки
                                            Запустить-то можно... Своп выставляется в 4 гига и даже выше. Или стоп. В xp правило вроде было. Емнип 3*RAM_SIZE. Не суть. Короче со свопом запустить можно.
                                            >играл в фифу ~2003
                                            И проги тоже можно.
                                            НО ЗАЧЕМ?
                                            Ответить
                                            • > НО ЗАЧЕМ?
                                              128М в ноуте это всё, на что хватило тогда бабла, а поиграть-то хочется
                                              это уже с остальных зарплат уже и на апгрейд памяти, и харда были деньги
                                              Ответить
                                              • >это всё, на что хватило тогда бабла
                                                Ключевое слово _тогда_.
                                                Тем более что играть можно было и на 98-й.
                                                А зачем такое кому-то сейчас?
                                                Ответить
                                          • > для этого надо было вручную поубивать все "ненужные" svchost
                                            У меня была пара батников для запуска игрушек в таком режиме - первый отключает все ненужные на время игры службы через sc, и подменяет shell в реестре на второй батник вместо explorer'а и ребутит комп. Второй - стартует игрушку, а при выходе из нее возвращал службы и shell на место, и делал ребут...
                                            Ответить
                                            • @bormand,
                                              похоже на возможность в иксах выделять для игры отдельную систему.
                                              Ответить
                                • У меня аналогичное железо было до 2005 г. Я тогда еще не прогал даже)
                                  Ответить
                      • >по всей видимости моложе вас
                        >онлайн видео тоже тормозило
                        >онлайн видео
                        мда
                        Ответить
                        • буферизируется... там еще одимпиада предыдущая не закончилась наверное 🙂
                          Ответить
                      • А у меня на последнем курсе был 80486DX2-80. Офлайн-видео тормозило. По логике я здесь самый старый хрен.
                        Ответить
                        • >Офлайн-видео тормозило.
                          Оно даже сейчас у многих, на гигагерцовых процессорах тормозит.
                          Всё зависит от кучи нюансов
                          а) разрешения / битрейта
                          б) декодера
                          в) hdd
                          Просто full hd надо брать или достаточно просто в декодере отключить асмоптимизации.
                          Ответить
                        • Кстати прения выше напомнили мне одну историю. Сейчас самый народный и популярный кодек - AVC, он же H.264.
                          Историю с участием сумасшедшего фрика и клоуна всея рунета.

                          В общем дело было так.
                          Авторы самой православной имплементации энкодера x264 запилили патч для Hi10p. То бишь поддержку 10-битного цвета.
                          По поводу чего Dark Shikari, главный разработчик создал тред на форчане. Обилие бугурта переполнило тред и форумы.

                          Причиной тому парадокс, кодирование в Hi10p даже 8-битных источников давало неплохой профит сжатия и убирало бандинг - рипы стали выглядеть нормально. Секрет в повысившейся точности расчёта, а такой размер как 10 бит, никак удобно не помещается в регистры. Потому падение скорости кодинга/декодинга составило 2-3 раза.

                          Но самое страшное даже не в CPU. А в том что обычно видеокарта берет на себя львиную долю расчетов через DXVA. Так вот этот самый DXVA для Hi10p не работал. То есть процессору приходится полагаться только на свои силы.

                          Ну и многие анимешные релиз-группы начали штамповать рипы именно в Hi10p.
                          Ответить
                        • Чуть позже Hi10p докатился до рунета.
                          И тут на хабрапараше, в Hi10p треде отметился небывалым бугуртом некто Мицгол, ВНЕЗАПНО оказавшийся любителем китайских порномультиков.
                          Он кстати показателен тем что потратил кучу сил на реанимацию и откапывание давно подохших протоколов и технологий, но за столько лет не изобрел ничего нового и своего.

                          http://habrahabr.ru/post/129099/#comment_4273243

                          Если бы все были такими как Мицгол, то люди до сих пор сидели бы в пещерах. Зачем вкалывать, строить железные дороги, заводы и электростанции, если можно сидеть у огня в тёплой пещере?
                          ИЧСХ. Когда формат окажется на грани издыхания именно эти люди будут его защищать...
                          Ответить
                        • > По логике я здесь самый старый хрен.
                          Господа, не в курсе, где достать дрова для Acorp Sprinter под ZX-Spectrum Дельта-С 128? Ну или на худой конец, для 3G-huawei.
                          Ответить
                          • Всё-таки я здесь самый маленький...

                            У «Спектрума» есть подходящие интерфейсы, позволяющие подключить упомянутые модемы?
                            Ответить
                            • Если нету - всегда можно припаять пару MAX-232 и написать софтовую эмуляцию протокола 😉

                              А вот с 3G будут траблы. Спектрум по идее не потянет частоты, нужные для USB. Те же Atmel, насколько помню, 12МГц кварц требуют для работы с USB.

                              P.S. Дрова на внешние AT модемы - самое настоящее виндоблядство 🙂
                              Ответить
                              • > Дрова на внешние AT модемы - самое настоящее виндоблядство
                                WinModem? Поясните мысль.
                                Ответить
                                • Ну на WinModem драйвер нужен, т.к. он тупой, и без дров ничего не умеет.

                                  А вот на внешние модемы с RS-232 драйвер не нужен, т.к. максимум чем они отличаются - набором конфигурационных команд, которые один хрен вписывали в строку инициализации (что с дровами, что без). И только венда требует на такие модемы драйвера. Да и то не особо требует, можно вкатить "стандартный 56к модем" и почти всегда работает.

                                  P.S. Впрочем дрова на монитор (не путать с цветовым профилем, который действительно необходим для всех LCD) это тоже очередное виндоблядство.
                                  Ответить
                                  • Прочитал и вспомнил, что в шкафу лежит внешний usr courier. Наикрутейшая железяка была лет 10 назад.
                                    Ответить
                              • > Дрова на внешние AT модемы - самое настоящее виндоблядство

                                В том числе и на USB-модемы, ибо в Линухе все они работают либо с ACM, либо с usbserial.

                                А WinModem — это по сути звуковая карта?
                                Ответить
                                • > А WinModem — это по сути звуковая карта?
                                  По сути да. Емнип, там даже стояли те же самые чипы, что и в звуковухах.
                                  Ответить
        • Денди у меня не было, зато в школе были «Агаты», у которых был процессор, тоже совместимый с MCS 6502. Исследовать видеопамять тогда я не успел ввиду ограниченного времени, зато научился распидорашивать оперативную память и вызывать весёлые глюки выбором несуществующего видеорежима или записью мусора с помощью POKE.

          А запись программ на листок бумаги освоить пришлось, ибо свободных дискет у нас не было...
          Ответить
        • > Зато была dendy с клавиатурой и картридж с бейсиком...
          Да ладно! Такое чудо было?! Жизнь прожита зря...
          Ответить
          • Читайте мой пост ниже, это не денди, насколько я знаю. Смысл жизни восстановлен.
            Ответить
        • >Эээ. В центр вообще-то.
          В угол - больше шансов выиграть.
          В центр - только половина ответов противника выигрышных. 1/2.
          А в угол - всё проигрышные, кроме центра. Только 1/8.
          Ответить
          • Если в угол, то всё решается за один ход - в ответ получаешь центр и всё.
            Если в центр, то ещё можно побарахтаться, ответный угол ещё не факт, что ничья.
            Ответить
            • >то ещё можно побарахтаться, ответный угол ещё не факт, что ничья.
              Куда барахтаться? Там в основном форсированные варианты, за исключением ответа в противоположный угол.

              >то всё решается за один ход - в ответ получаешь центр и всё.
              Какой всё? Можно походить в противоположный угол. Наоборот начинать в центре - уныло.

              Капец. Игра изучена за годы вдоль и поперек, я думал тут не о чем спорить и всем очевидно почему ход в угол рулит.
              Ответить
              • > Там в основном форсированные варианты, за исключением ответа в противоположный угол.

                Вот именно. И ответ не самоочевиден.

                > Какой всё?

                Такое - игра становится ничьей за 1 ход, после которого всё самоочевидно.
                Ответить
                • >не самоочевиден.
                  >после которого всё самоочевидно.
                  Критерий самоочевидности? Без примера тут не обойтись.
                  Ответить
                    • Не факт. Человек существо нелогичное, может ответить симметрично - в другой угол.
                      В этом же и суть игры, что ты не обязан ходить куда-либо.

                      Я в школе только в углу и начинал, и постоянно выигрывал. После чего пришел к выводу что некоторые индивиды неспособны к обучению в принципе.
                      После того как сливает десять раз, и делает ничью в центре, всё равно продолжает ходить в углы.
                      Ответить
              • > почему ход в угол рулит
                Потому, что тогда противник всегда выигрывает. Конечно, если он играет не в первый раз, и не необучаемый идиот 😉

                При первом ходе в центр же все зависит от противника - либо он сводит игру в ничью (если он опытен), либо он проигрывает (если он нуп). Шансов на победу у него тупо нет.

                > В угол - больше шансов выиграть.
                Ага. Если противник ходит рандомом. В случае если он не рандомщик - шанс выиграть в точности равен нулю.
                Ответить
                • В КО шанс выиграть есть только тогда, когда противник не внимателен.
                  Вот например простой алгоритм(игрок: x/y):
                  x : 3/3
                  0: 2/2 (занимает центр)
                  x: 1/1
                  0: 3/1(невнимательность)
                  x: 1/3(роковой ход, противник в любом случае проигрывает)

                  А вот если бы 0 сходил 2/1 или 3/2 вместо 3/1, то была бы ничья.
                  Ответить
                  • Что вы пытались мне доказать? 😉 Вы 3.14159265 лучше доказывайте это. Он ведь сказал, что первый ход выгоднее делать в угол, не я.
                    Ответить
                    • Я вам обоим доказываю, что в КО главное внимательность, а не ходы.
                      Ответить
                      • Само собой. Игра - простейшая.
                        Но мы пишем AI. Пытаемся сделать его эффективным.
                        Теория вероятностей подсказывает, что ход после которого у противника единственно верный ничейный вариант, лучше чем ход после которого 4 ничейных варианта.
                        Ответить
                        • Теория вероятностей говорит, что у вариантов могут быть разные веса, ага.
                          Ответить
                        • А вот ещё теорвер
                          из
                          ..x
                          .x.
                          o..
                          есть только 2 ничейных хода и 4 проигрышных
                          И имеется аж целых три класса (по симметрии) ходов.
                          Из
                          ..x
                          .o.
                          x..

                          есть 4 ничейных хода и 2 проигрышных
                          при этом всего лишь два класса (по симметрии) ходов
                          Ответить
                          • > могут быть разные веса, ага.
                            Могут. Но тут это неуместно.

                            Если желаешь можешь написать простейшую тулзу и рекурсивно/методом Монте-Карло проверить центр или угол дает больше выигрышных концовок учитывая только вынужденные ответы противника. В остальных случаях он ходит рандомно.
                            Ответить
                          • Противоречишь сам себе.
                            http://govnokod.ru/13001#comment176954
                            >>> то всё решается за один ход - в ответ получаешь центр и всё.

                            Из
                            ..x
                            .o.
                            x..

                            >>есть 4 ничейных хода и 2 проигрышных

                            Тем более вероятность 4 ничейных ходов надо умножать на 1/8, потому что к ним ведет единственный ход.
                            Не стоит рассматривать только конкретный вариант, надо смотреть всё дерево ходов в целом.
                            Ответить
                          • >есть только 2 ничейных хода и 4 проигрышных
                            То есть.
                            1-й ход даёт нам 50% уверенность в выигрыше.
                            Второй ход отсекает от оставшихся 50% еще 2/3.
                            50+50*2/3=83.3%
                            Следовательно вероятность проиграть 16.666%=1/6.

                            При ходе в угол 1-й ход даёт нам сразу 7/8=87.5% вероятности.
                            Еще и остается некая вероятность от оставшейся 1/8.
                            Ответить
                            • >вероятность проиграть 16.666%=1/6.
                              Вероятность сведения вничью= 100%-83.3%
                              selffix
                              ничью я мысленно рассматривал, как стратегическую неудачу, то бишь проигрыш
                              Ответить
                              • И вся эта херня только для равновероятного случая.

                                > Могут. Но тут это неуместно.
                                Играем против болванчика что ли?
                                Ответить
                                • >Играем против болванчика что ли?
                                  А что, нормальному человеку будет интересно играть в 3х3?
                                  Ответить
                        • Именно что. Тут один-два варианта ведения игры, потому эффективный ИИ будет эффективным, если он будет рассчитывать на невнимательность, в противном случае выводить на ничью.
                          В других случаях найти выигрышную комбинацию практически не возможно.
                          Ответить
                • >Потому, что тогда противник всегда выигрывает.
                  Какого хера? Когда он отвечает в центр - ничья. В противном случае проигрыш.
                  Давайте выигрышную комбинацию.
                  Ответить
          • Кстати надо попробовать поизобретать самообучающийся алгоритм, которому изначально не даются правила крестиков-ноликов, и он может о них узнать только опытным путем, постоянно проигрывая.
            Ответить
            • А чё изобретать, всё уже придумано. Достаточно кажись 10 спичечных коробков и 20 шариков.
              Ответить
            • Лучше уж разгадать тайну толедовских шахмат. Это куда интересней.
              Ответить
                • емнип заинтересовали они только меня и борманда.
                  смешно другое - где все те кто начинал писать шахматы с интерфейса?
                  Ответить
          • > А в угол - всё проигрышные, кроме центра.
            как это, если ты начнешь с угла, то аналогично, у соперника будут проигрышные только ходы не в угол/центр, т.е. те же 4/8 = 1/2
            а, понял 🙂
            Ответить
          • Ну примерно такой, да. Только более китайский, без надписи сюбор. С кривейшим надмозговым переводом на коробке и в мане.

            > Так то ж не денди.
            Да денди она, денди. Плата совместимая на 146%, просто на дополнительный порт запаяли контроллер клавиатуры, и картридж приложили.
            Ответить
            • Вы что подразумеваете под "денди"? И СЮБОР и Денди - это клоны японского FamiCom, так что различий в их устройстве действительно мало, учитывая что это клоны одной и той же вещи, но они так же мало имеют и отношения друг к другу, насколько я понимаю. Называть клаву дендей не стоит, думаю.
              Ответить
              • Денди отличается от своих прародителей FamiCom и NES тем, что у нее CPU и GPU крутятся на разных частотах (ради совместимости с местными телеками и европейскими игрушками). Здесь стояла именно такая плата. Ну а то, что к ней клавиатуру припаяли на свободный порт... это особо ничего не меняет. Схемотехника там именно дендивская.
                Ответить
                  • Вот про частоты: http://wiki.nesdev.com/w/index.php/Clock_rate. Как видишь CPU крутится очень близко к NTSC, а PPU (аля GPU) на PAL'овской.

                    Про то что схемотехника там такая же как и в обычной денди... Ну если там идут все обычные картриджи, цепляются самые обычные джойстики да пистолеты... Да все там 1:1 было в моей приставке и обычной денди. Если на глаз - схема отличалась несколькими проводками, уходящими на контроллер клавы. Насчет сюбра не знаю - не видел ни разу его.
                    Ответить
                    • P.S. А еще там на корпусе был нарисован слоненок и надпись Dendy 😉
                      Ответить
                          • > Оно у тебя до сих пор есть?
                            Неа ;( Давным-давно отдал племяннику...

                            > Играешься?
                            Поэтому играться приходится на эмуляторе с комповским геймпадом 😉
                            Ответить
                            • > А ещё там ... был нарисован слонёнок
                              Тогда вы совершенно правы, это не может быть не денди, ибо видно глазами. Я просто не знал, что они существуют. Но вас уже заминусовали, к сожалению.

                              > отдал племяннику
                              Племянник взял, сохранил и созидает, или профейлил?
                              Ответить
                              • > Но вас уже заминусовали, к сожалению.
                                Тут не хабр, ничего страшного 😉

                                > Племянник взял, сохранил и созидает, или профейлил?
                                Да у него давно уже комп. А приставка наверное пылится где-нибудь на шкафу.
                                Ответить
                        • А что он аппаратно умел? Особенно может что-то интересное? Вижу ты гуру по нему, раз программировал регистры.
                          Ответить
                          • Пара видеостраниц, пара знакогенераторов (примерно как текстовые режимы на PC, клеточками 8х8).

                            Попиксельный скроллинг по горизонтали или по вертикали. В некоторых картриджах стояла дополнительная видеопамять, которой хватало на 4 страницы, и тогда скроллинг работал во все стороны.

                            Железная поддержка спрайтов, которых могло быть всего 64 (из-за этого огромные боссы, как правило, стояли на одноцветном фоне, т.к. рисовались в фоновой странице, а не из спрайтов).

                            Если интересно поподробнее: http://wiki.nesdev.com/w/index.php/PPU
                            Ответить
                            • >примерно как текстовые режимы на PC, клеточками 8х8
                              При этом он работает в графическом режиме? А то текстовой режим на денди практически бесполезен.

                              Кстати, во времена дос текстовые знакогенераторы можно было использовать только в текстовом режиме. В графическом они ни как не работали.
                              Ответить
                              • В том и стеб, что она всегда работает в "текстовом" режиме со знакогенераторами. Что спрайты, что бекграунды, все составлено из квадратиков 8х8. Причем на большинстве картриджей, для их удешевления, эти знакогенераторы вшиты в ПЗУ, и поменять их нельзя.

                                Просто за счет попиксельного скроллинга и попиксельного позиционирования спрайтов это смотрится совсем неплохо, по сравнению с теми же CGA игрушками 😉

                                А графического режима как такового там и не было. Проц бы просто не справился с ним, да и памяти пришлось бы слишком много ставить.
                                Ответить
                                • хрена. это получается все спрайты 8на8 (то есть по сути символы) и каждый спрайт можно запрограммировать на другую произвольную картинку.
                                  И сколько таких символов-спрайтов можно было сделать?
                                  это круто
                                  Ответить
                                  • Ну 2 знакогенератора по 256 символов, емнип. Но разместить на экране можно было максимум 64 спрайта (выбрав для каждого один из этих 512 рисунков 8х8).

                                    Кстати у этого PPU есть бага (ну или фича), что больше 8 спрайтов на сканлайн он рисовать не умеет, и они начинают мерцать или пропадать...
                                    Ответить
                                      • > денди ещё выпускают
                                        Да до сих пор полно дендиподобных клонов. Недавно вот попадались на глаза приставки со встроенными играми (картриджи тоже понимают, но штук 100 там сразу вшито). Явно лицензионная версия 😉
                                        Ответить
                                        • так вроде были картриджи, в которые штук 100 как раз было вшито
                                          Ответить
                                          • > так вроде были картриджи, в которые штук 100 как раз было вшито
                                            Ну были. Но тут то прям в пзу приставки 😉
                                            Ответить
                                        • А ты АОП (аспектно ориентированное программирование) освоил? В чем суть и с чего посоветуешь начать? Какой язык?
                                          Ответить
                            • А как ты исследовал с помощью поке в бейсике регистры? У тебя были спецификации или интернет?

                              У меня тоже такая клава-денди была. Я исследовал на ней бейсик, так как неоткуда было взять команды. Ни интернета ни компа не было.
                              Ответить
                              • Я чуствую, что потерял поовину удовольствия из-за того что не нал про команду пок.
                                Ответить
                                • А PEEK'ом можно было читать дампы памяти 🙂 Так я откопал список всех команд этого бейсика, и пытался понять, что же они делают. Собственно так нашлись высокоуровневые команды по управлению спрайтами, которые там, оказывается, были.
                                  Ответить
                                  • меня так бесило, что тот бейсик не сохранял программы. ведь не так уж и сложо было припаять небольшую флешку под это.
                                    к слову настройки ос того картриджа же запоминались. да и некоторые другие программы
                                    Ответить
                                    • > к слову настройки ос того картриджа же запоминались. да и некоторые другие программы
                                      У моего не запоминались вообще. Все проги переписывал на бумажку 😉 Да там и прог то по сути не было - бейсик, падающие буквы для тренировки клавиатуры, музыкальный редактор, да хрень с арифметикой.
                                      Ответить
                                      • вот музыкальный редатор, фотороботы, архитектор запоминали у меня реультаты работы. настройки системы и блокнот тоже запоминали
                                        Ответить
                              • Все наугад, методом тыка, откуда в то время взяться интернету и спекам 😉 Причем PPU любил повисеть, если неудачно потрогать некоторые регистры.

                                Ну вот из доков читал в то время книжки по архитектуре древних 8 битных процов (не таких как дендивский 6502), журналы типа Радио, в которых описывались Радио-86РК и Специалист (оттуда и выкопал тот самый POKE), ну и книжки типа Кнута...
                                Ответить
                                • кнут. бейсик. поделил на ноль.
                                  как связан кнут и охретектура?
                                  Ответить
                                  • > как связан кнут
                                    Никак 😉 Просто читал его в то время. Еще какую-то книжку по прологу тогда с другом раскуривали...
                                    Ответить
                                    • и как тебе пролог? помому жалко, что его забросили. это было сильно. программы некоторого класса сильно упрощались. как и в случае с функциональщиной. только в прологе класс упрощаемых задач был шире. имхо неоправдано забыли
                                      Может когда-нибудь он в роли статически типизированного функционально логического Mercury вернется?
                                      Ответить
                                      • > и как тебе пролог?
                                        В то время казалось очень круто. Ну а так - очень узкая область у пролога - переборные задачки с бектрекингом. И без интеграции с чем-то типа сишки - та еще жопа, ибо гуй на нем писать противопоказано, а без гуя класс задачек становится еще уже.
                                        Ответить
                                        • любые задачи на это ложатся
                                          ну а насчет отсутствия интеграции с другими языками - правда.
                                          была бы она и жил бы он до сих пор
                                          Ответить
                                          • > любые задачи на это ложатся
                                            Да вот не любые. Само собой, на любом тьюринг полном языке можно решить любую задачу. Вот только какие-то решаются красиво и элегантно. А какие-то выглядят как говно, как не крутись.

                                            Вот и у пролога - сам бектрекинг юзать очень удобно. А императивный обвес для общения с юзером - лучше не вспоминать.
                                            Ответить
                                            • имхо пролог не торт. но вот логическое программирование само по себе очень торт
                                              его нужно развивать и внедрять в макакомассы
                                              Ответить
                                        • А сейчас тебе уже не кажется круто? Почему? Нет ничего приятне чем решить сложную задачуна графах (без оптимизации кода) на прологе в пару строк
                                          Ответить
                      • >Physical processor
                        Да. На 8-битных консолях была шикарная физика.
                        Помню как в Марио от удара сверхреалистично разлетались кирпичи.
                        Ответить
      • > еще на спектруме
        а там, кстати, можно было развернуться. лазербейсик, суперкод...даже паскаль был
        Ответить
  • Помню тему на гдрушечке, где мы соревновались, кто в меньшее число символов уложит проверку конца игры в титато.
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8