Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
2 / 1 / 1
Регистрация: 16.04.2020
Сообщений: 39

Ход бота в игре крестике нолики

05.05.2020, 07:44. Показов 5065. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс игрока и класс бота.
Есть матрица 3х3

Тут всё просто
Ход игрока заключается в том, что по координатам матрицы (X, Y) ставлю символ Х или О.

Python
1
2
3
4
5
6
7
8
9
10
class Player:
    def __init__(self, char, field):
        self.char = char
        self.field = field
 
    def turn(self):
            crds = input("\nВведите координаты:\n> ").split()
            x = int(crds[0])
            y = int(crds[1])
            self.field.set_cell(x, y, self.char)
- Мне надо создать класс Bot(Player).
- Переопределить метод turn у класса Player
- И придумать алгоритм хода бота.
т.е. он будет брать первую попавшуюся пустую клетку
либо он будет случайным образом выбирать пустую клетку.
пустая клетка у меня определяется константой EMPTY_CELL = "_"
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2020, 07:44
Ответы с готовыми решениями:

Реализовать ход компьютера в игре крестики-нолики
Хочу реализовать крестики нолики с компютером. Но не знаю как это норм реализовать. Часть кода с игроком сделал а от как сделать чтобы комп...

Крестики-Нолики. Ход компьютера
Если у кого-то вдруг осталась реализация ходов компьютера для игры крестики-нолики, буду ПРЕМНОГО БЛАГОДАРЕН, если поделитесь. Я почитал...

Крестики-нолики. Ход компьютера
Необходимо, чтобы компьютер не просто ходил рандомными числами, но мешал выиграть игроку и пытался выиграть сам. Заранее спасибо)

1
2 / 1 / 1
Регистрация: 16.04.2020
Сообщений: 39
05.05.2020, 13:48  [ТС]
так же у меня есть класс игрового поля Field

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Field:
    EMPTY_CELL_VALUE = '_'
 
    def __init__(self):
        self.size = 3
        self.cells = []
        self.empty_cells = self.size * self.size
        for i in range(self.size):
            self.cells.append([Field.EMPTY_CELL_VALUE] * self.size)
 
 
class Player:
    def __init__(self, char, field):
        self.char = char
        self.field = field
 
    def turn(self):
            crds = input("\nВведите координаты:\n> ").split()
            x = int(crds[0])
            y = int(crds[1])
            self.field.set_cell(x, y, self.char)
я думаю это будет выглядеть как то так
Мне надо как то обратиться к переменной size из класса Field.
И у списку cells из класса Field
При ходе бота, он ищет первую пустую ячейку в поле.
и если он её находит, то записывает в неё char (крестик или нолик)

Но, как обратиться к переменным родительского класса Field?

Python
1
2
3
4
5
6
class Bot(Player):
    def turn(self):
        for i in range(super().size)
            for j in range(super().size)
                if field.cells[i][j] == EMPTY_CELL_VALUE:               
                   field.set_cell(i, j, Field.char)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2020, 13:48
Помогаю со студенческими работами здесь

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

Ход сервера в карточной игре
Добрый вечер. Есть маленькая игра(для примера урежем её до минимума-я ставлю белое, сервер, в ответ, черное). Мне нужно реализовать вот...

Крестики нолики против ПК(бота)
В виндовс форм С# Добавлено через 48 секунд Помогите пожалуйста!

Крестики нолики против ПК(бота)
создаёшь функцию которая тебе с помощью рандома выбивает цифру, от 1 до 9 которая будет соответствовать одному из квадратов, далее она...

Программа, показывающая следующий ход в игре
как написать код для кнопочки чтобы он показывал следующий ход в игре? То есть обьясню, вот у меня есть база данных всевозможных ходов и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru