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

    +139

    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
    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, 14 Мая 2013

    Комментарии (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) проще, быстрее, дешевле, надежнее и даже морально правильнее пожертвовать удобством одного Тараса ради удобства тысяч единиц офисного планктона.

                                      Я не знаю насчет мейлру, но не стоит так пренебрежительно относиться к работе верстальщиков - это довольно сложный навык, основанный во многом на опыте, а не не формальных правилах, которые можно прочитать в учебниках.
                                      Ответить
                                    • показать все, что скрыто>Нихуя не тормозит.
                                      Основным ограничивающим фактором является не процессор. Будет работать не 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
                                              И проги тоже можно.
                                              НО ЗАЧЕМ?
                                              Ответить
                                            • показать все, что скрыто> для этого надо было вручную поубивать все "ненужные" svchost
                                              У меня была пара батников для запуска игрушек в таком режиме - первый отключает все ненужные на время игры службы через sc, и подменяет shell в реестре на второй батник вместо explorer'а и ребутит комп. Второй - стартует игрушку, а при выходе из нее возвращал службы и shell на место, и делал ребут...
                                              Ответить
                                    • показать все, что скрыто>Да не, не тормозит же говнокод.
                                      С андроида открываешь?
                                      Ответить
                                  • показать все, что скрытоУ меня аналогичное железо было до 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) это тоже очередное виндоблядство.
                                    Ответить
                                • показать все, что скрыто> Дрова на внешние AT модемы - самое настоящее виндоблядство

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

                                  А 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.
                              Ответить
                          • показать все, что скрытоИменно что. Тут один-два варианта ведения игры, потому эффективный ИИ будет эффективным, если он будет рассчитывать на невнимательность, в противном случае выводить на ничью.
                            В других случаях найти выигрышную комбинацию практически не возможно.
                            Ответить
                  • показать все, что скрыто>Потому, что тогда противник всегда выигрывает.
                    Какого хера? Когда он отвечает в центр - ничья. В противном случае проигрыш.
                    Давайте выигрышную комбинацию.
                    Ответить
            • показать все, что скрытоКстати надо попробовать поизобретать самообучающийся алгоритм, которому изначально не даются правила крестиков-ноликов, и он может о них узнать только опытным путем, постоянно проигрывая.
              Ответить
            • показать все, что скрыто> А в угол - всё проигрышные, кроме центра.
              как это, если ты начнешь с угла, то аналогично, у соперника будут проигрышные только ходы не в угол/центр, т.е. те же 4/8 = 1/2
              а, понял :)
              Ответить
          • показать все, что скрыто> dendy с клавиатурой
            СЮБОР? http://tinyurl.com/ct6wcv5
            Так то ж не денди.
            Ответить
            • показать все, что скрытоНу примерно такой, да. Только более китайский, без надписи сюбор. С кривейшим надмозговым переводом на коробке и в мане.

              > Так то ж не денди.
              Да денди она, денди. Плата совместимая на 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 ;)
                        Ответить
                      • показать все, что скрытоPPU? Physical processor unit?
                        Ответить
                        • показать все, что скрытоPicture Processing Unit емнип.
                          Ответить
                          • показать все, что скрытоА что он аппаратно умел? Особенно может что-то интересное? Вижу ты гуру по нему, раз программировал регистры.
                            Ответить
                            • показать все, что скрытоПара видеостраниц, пара знакогенераторов (примерно как текстовые режимы на PC, клеточками 8х8).

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

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

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

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

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

                                  А графического режима как такового там и не было. Проц бы просто не справился с ним, да и памяти пришлось бы слишком много ставить.
                                  Ответить
                              • показать все, что скрытоА как ты исследовал с помощью поке в бейсике регистры? У тебя были спецификации или интернет?

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

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

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