Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

Микроигры / Крестики-Нолики. Игра с компьютером

  • На этом уроке мы добавим в игру Крестики-Нолики искуственный интеллект.
    Мы напишем алгоритм, который будет искать наилучший ход для позиции.
  • Дата отправки отчёта: 6 января
  • Задание выполнено: за 3 час. 00 мин.
  • Чему научился: Научился разрабатывать искусственный интеллект программы на примере игры «Крестики-нолики», передаче параметров по значению и с ключевым словом out.
  • Что было сложным: Алгоритм задачи сложноват. Пока довольно сложно для меня.
    Также не понял, почему при использовании ключевого слова ref в функции программа стала работать некорректно.
  • Комментарии: Большое спасибо! Замечаний нет.
    Теперь компьютер обыграть сложно. Можно это сделать только в том случае, когда моделируется ситуация, когда компьютер за нолики не защищается, а нападает при наличии одного нолика в строке, запускается случайная генерация, и комп ставит два нолика рядом (правильное решение – два нолика на одной строке по углам). Этот случай Е.В. показал в конце урока. Я сделал так же, и после нескольких попыток тоже выиграл.
  • Оценка видео-уроку:
Отчёт от 7645 за Микроигры / Крестики-Нолики. Игра с компьютером




Оцени работу

 
Сохранить страницу:

24. Оля
Оля
ответить
→  Александр Львович  # Микроигры / Крестики-Нолики. Игра с компьютером / 2016-01-06 22:01

Александр, все хорошо, главное теперь ты исправился!!! С праздником тебя!!! :)


7645. Александр Львович
Александр Львович
ответить
→  Евгений Витольдович  # Микроигры / Крестики-Нолики. Игра с компьютером / 2016-01-06 21:07

> Чтобы понять, почему не работает, нужно посмотреть урок в курсе Теория ООП - чем структура отличается от класса.
Да, Евгений Витольдович, большое спасибо за ответ. Надеюсь посмотреть этот урок.


7645. Александр Львович
Александр Львович
ответить
→  Оля  # Микроигры / Крестики-Нолики. Игра с компьютером / 2016-01-06 21:05

Да, спасибо, Оля, забыл переименовать! :(


24. Оля
Оля
ответить
→  Александр Львович  # Микроигры / Крестики-Нолики. Игра с компьютером / 2016-01-06 20:53

Александр, очень рада твоим результатам, хорошо постарался, однако видно что ты спешил и даже форму не переименовал, огорчил меня, такая красивая игра и без названия! :)


1. Евгений Витольдович
Евгений Витольдович
ответить
→  Александр Львович  # Микроигры / Крестики-Нолики. Игра с компьютером / 2016-01-06 16:55

Чтобы понять, почему не раотает, нужно посмотреть урок в курсе Тероия ООП - чем структура отличается от класса.


  • Отчёт оценивали:
    8275Tekashnik+1   4004Елена+1   4435Мурад+1   5489Serg+1   6203Николай (nick27m)+1   1Евгений Витольдович+1   7276Ильшат+1   6925Артём+1   8407Наталья+1   4395Денис+1   4992Николай+1   1710Степан+1   3664данила+1   459Сергей Сергеевич+1   6484Вячеслав+1   24Оля+1   8Василевская Елена0   8520Сергей Колупаев0   8005Александр+1   5868Vera+1   Посетитель+1   6458Илья+1  

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Повторил работу с STL алгоритмами поиска, подсчета элементов, созданием своего функтора поиска выигрышной линии.
Трудности: 1) Реализовать асинхронный выбор ячейки для Игрока-Человек. 2) Выиграть у компьютера игрой ноликами (второй скриншот).
Логика работы игры Крестики-Нолики была написана в прошлом уроке. Мне не хотелось менять, ломать, модифицировать работающий код. По сути, нет разницы кто играет, человек или компьютер, правила игры от этого не меняются. Главное, чтобы игрок мог посмотреть на игровое поле, оценить ситуацию и сообщить координаты хода. Поэтому искал решение, пришел к похожему варианту, предложенному во второй части курса ООП. Выделил интерфейс Игрок, реализовал его в двух классах Игрок-Человек и Игрок-Компьютер. Добавил новую оболочку для Логики, которая принимает ввод от Игрока и перенаправляет его Логике. Здесь были некоторые проблемы со вводом от Игрока-Человека, так как он асинхронный. Алгоритм Компьютера не менял, взял из урока. Результатом доволен, понравилось играть с компьютером :)
Научился: Составлять алгоритм для ИИ (искусственного интеллекта)
Трудности: Алгоритм
Пришлось потрудиться чтобы обыграть искусственный интеллект