• Где ошибка в коде C#?

    Exomode
    @Exomode
    Архитектор ПО
    const int FieldWidth = 3;
        const int FieldHeight = 3;
    
        int[,] array = new int[FieldWidth, FieldHeight];
    
        //Ввод нуля и последующая проверка на выигрыш.
        public void Enter0()
        {
          int x, y;
    
          while (!int.TryParse(Console.Read(), out x) || x < 0 || x >= FieldWidth) continue; // Здесь можно обработать неверный ввод.
          while (!int.TryParse(Console.Read(), out y) || y < 0 || y >= FieldHeight) continue; // Здесь можно обработать неверный ввод.
    
          array[x, y] = 0;
          draw_array();
          if (Check(x, y))
            Player.Win();
        }


    И везде в коде тройки замените на константы.
    Ответ написан
    1 комментарий
  • Где ошибка в коде C#?

    WNeZRoS
    @WNeZRoS
    Зачастую дебаггер показывает на следующую строку (инструкцию) после проблемной, как в этом случае.
    У вас, чтобы всё работало, x и y должны быть равны числу 0, 1 или 2. А Console.Read читает символ, а не число. Т.е. введя 0, вы получите символ '0', что соответствует числу 48.
    Вам нужно обработать ввод, отсечь не правильные символы и преобразовать символы в числа.
    Ответ написан
    4 комментария
  • Стоит ли сейчас учить C для создания 2D игр?

    @stratosmi
    Вы как то уж чересчур серьезно подходите к выбору языка.
    Язык, тем более, что такой примитивный как С, - учится довольно быстро.

    Учатся долго и сложно - алгоритмы, парадигмы, паттерны, принципы, шаблоны и т.п.
    Но - все эти алгоритмы и т.п. - зато прекрасно можно применять и в другом языке программирования, хотя они изначально были изучены для иного языка.

    Для С как минимум есть программные библиотеки создания игр. Считать ли их полноценными движками? А зачем для 2D какой-то сверхсложный движок?
    Ответ написан
    6 комментариев
  • Стоит ли сейчас учить C для создания 2D игр?

    YershovAleksandr
    @YershovAleksandr
    Java Developer
    Могу предложить два варианта:
    1) C# и далее работа с Unity3d. Быстрый способ, много информации на русском языке.
    2) Более глубокое изучение принципов и технологий. Будет сложно но интересно!
    Иметь в запасе знания по С/С++ всегда полезно, и не нужно сразу себя ограничивать 2D.
    Рекомендую быстро пробежать классическим урокам по 3D pmg.org.ru/nehe (англоязычный оригинал nehe.gamedev.net/). Для С++ рекомендую "с++ за 21 день" БЕЗ ШУТОК!! Там ровно то что тебе нужно для начала, а читать книги Страуструпа на 2000 страниц это безумие при твоих целях.
    Когда все уроки закончатся (или надоест их делать) твой движок это https://cocos2d-x.org/cocos2dx
    Удачи!
    Ответ написан
    Комментировать