Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 05.11.2023
Сообщений: 26

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

17.01.2024, 21:41. Показов 698. Ответов 1

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

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

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

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

Пример
Ввод
Python
1
2
3
4
5
6
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
- - -

быть не может.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2024, 21:41
Ответы с готовыми решениями:

Крестики-нолики
Дано поле для игры крестики-нолики N \times NN×N, на котором уже можно определить исход игры. Определите победителя или ничью. n - целое...

Крестики-нолики
Создайте консольную программу Крестики-нолики согласно теоретических сведений.Крестик

Крестики-нолики
Крестики-нолики (Время: 1 сек. Память: 16 Мб Сложность: 19%) Крестики-нолики Крестики-нолики – логическая игра между двумя...

1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
18.01.2024, 06:50
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def tic_tac_toe(field):
    n = len(field)
    s = ''
    for i in range(n):
        s += ''.join(field[i])
    win_arr = []
    for i in range(n):
        win_arr.append(s[i*n:i*n+n])
        win_arr.append(s[i::n])
    win_arr.append(s[::n+1])
    win_arr.append(s[n-1:n*2+1:n-1])
    for symb in 'xo':
        if symb * n in win_arr:
            print(f'{symb} win')
            break
    else:
        print('draw')
 
data = """- - x
- x -
x - -"""
field = [line.split() for line in data.split('\n')]
tic_tac_toe(field)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2024, 06:50
Помогаю со студенческими работами здесь

Задача (крестики, нолики)
Вводится текущее игровое поле для игры "Крестики-нолики" в виде следующей таблицы: # x o x # x o o # Здесь # - свободная клетка....

крестики нолики, как очистить ввод ?
from random import choice, randint def draw_board_lite(board): print(' ' + board + ' | ' + board + ' | ' + board) ...

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

Создайте программу, которая реализует игру «Крестики-нолики» через ООП
Создайте программу, которая реализует игру «Крестики-нолики». Для этого напишите: 1. Класс, который будет описывать поле игры. ...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru