Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/75: Рейтинг темы: голосов - 75, средняя оценка - 4.85
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678

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

13.01.2021, 19:06. Показов 16721. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите функцию tic_tac_toe(field), которая принимает на вход список списков 3х3 — поле игры в крестики-нолики.

На этом поле отражен игровой момент: незанятой (пустой) клетке соответствует '-', крестикам и ноликам соответственно 'x' и '0'.

Ваша функция должна попытаться определить, есть ли победитель в данном игровом моменте и вывести фразу x win, если победили «крестики» или 0 win, если победили «нолики».

В случае, когда однозначно определить победителя не представляется возможным необходимо вывести слово draw.

Пример
Ввод

data = """0 - 0
x x x
0 0 -"""

field = [line.split() for line in data.split('\n')]
tic_tac_toe(field)
Вывод
x win
Примечания
Игровая ситуация задается корректно, то есть расположений, для которых существует несколько исходов, например, такого:

0 0 0
x x x
- - -

быть не может.


Python
1
2
3
4
5
6
7
8
9
10
11
def tic_tac_toe(field):
    flag = 'False'
    for i in field:
        if ''.join(i) == 'xxx': 
            print('x win')
            flag = 'True'
        elif ''.join(i) == '000': 
            print('0 win')
            flag = 'True'
    if flag == 'False': 
        print('draw')
выше тест который - проходит, а второй уже нет
Ввод
data = """0 - x
- 0 -
x x 0"""

field = [line.split() for line in data.split('\n')]
tic_tac_toe(field)
Ожидаемый результат
0 win
Вывод
draw
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.01.2021, 19:06
Ответы с готовыми решениями:

Крестики-нолики
Напишите класс TicTacToeBoard для игры в крестики-нолики, который должен иметь следующие методы: new_game() – для создания новой игры;...

Крестики-нолики
Мне надо сделать игру крестики-нолики, как бы... игра простая, в интернете бесконечное количество вариантов, но есть один нюанс: поле...

Крестики-нолики
Напишите функцию Tic_tac_toe(field), которая принимает на вход список списков 3х3 - поле игры в крестики-нолики. Незанятой (пустой) клетке...

26
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
13.01.2021, 20:52
Студворк — интернет-сервис помощи студентам
iSmokeJC, бань его сразу, стервеца, хотел скрыть от нас пруфы))))
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
13.01.2021, 20:58
Цитата Сообщение от iSmokeJC Посмотреть сообщение
.
Цитата Сообщение от Welemir1 Посмотреть сообщение
бань его сразу, стервеца, хотел скрыть от нас пруфы))))
0
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
13.01.2021, 21:49  [ТС]
iSmokeJC, что мне скинуть? Скажите

Добавлено через 49 секунд
Welemir1, какие пруфы? Я никому ничего в лс не кидал,потому что что скинуть в док-во? Сказал же что не записываю уроки
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
14.01.2021, 11:38
Ychenyi, это уже местный юмор, не обращай внимания, просто учителя потом запиши на видео.
0
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
14.01.2021, 11:39  [ТС]
Welemir1,
Цитата Сообщение от Welemir1 Посмотреть сообщение
учителя потом запиши на видео.
окей
0
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,317
14.01.2021, 13:54
полу по теме))
в школе играли в тетрадке в эту игру с безразмерным полем до 5-ти крестов
не у кого нет кода? я играл в эту игру онлайн-нормальный алгоритм-иногда у него выигрывал)) код в JS-вроде есть у меня, а как у Вашего алгоритма я выиграю?
0
0 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 4
19.03.2023, 09:02
решил особо не заморачиваться с упрощением логики кода. вышло эта белиберда, которую, кстати, зачли)))

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def tic_tac_toe(field):
    for i in range(3):
        if all(map(lambda x: x == 'x', field[i])):
            print('x win')
            return 0
        elif all(map(lambda x: x == '0', field[i])):
            print('0 win')
            return 0
    for i in range(3):
        if all(map(lambda x: x == 'x', [field[j][i] for j in range(3)])):
            print('x win')
            return 0
        elif all(map(lambda x: x == '0', [field[j][i] for j in range(3)])):
            print('0 win')
            return 0
    if all(map(lambda x: x == 'x', [field[i][i] for i in range(3)])):
        print('x win')
        return 0
    elif all(map(lambda x: x == '0', [field[i][i] for i in range(3)])):
        print('0 win')
        return 0
    elif all(map(lambda x: x == 'x',[list(reversed(field[i]))[i] for i in range(3)])):
        print('x win')
        return 0
    elif all(map(lambda x: x == '0',[list(reversed(field[i]))[i] for i in range(3)])):
        print('0 win')
        return 0
    print('draw')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.03.2023, 09:02
Помогаю со студенческими работами здесь

Крестики - нолики
Есть готовый код, дали задание разобрать логику кода, шаг за шагом... что-то у меня всё запуталось в голове, может кто-то поможет...

Нолики-крестики
Напишите программу, которая определяет, кто выиграл в крестики-нолики на увеличенном квадратном поле, выстроив подряд по горизонтали или по...

Крестики-нолики
Напишите функцию tic_tac_toe(field), которая принимает на вход список списков 3х3 — поле игры в крестики-нолики. На этом поле отражен...

Крестики-нолики
Два игрока играют в крестики-нолики. Напишите программу, которая после каждого хода игрока проверяет поле и, если игра завершилась, выводит...

Крестики-нолики
Пишу крестики нолики, этот кусок кода отвечает за считывание матрицы и проверку на победителя, вот в чем заключается проблема: Не понимаю...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru