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

Крестики-нолики или попытка сдать питон

30.04.2024, 16:50. Показов 683. Ответов 1

Студворк — интернет-сервис помощи студентам
Господа мыслители, мне нужна ваша помощь. Будучи новичком в питоне передо мной стоит задача написать код игры крестики нолики так чтобы компьютер играл с человеком и пытался его победить, то есть надо попытаться вписать логику по которой он должен играть. Вы когда сами играете с другим человеком , вы же пытаетесь заблокировать его ходы и быстрее собрать выигрышную комбинацию. Специально дана легкая играя в которой все выигрышные комбинации можно перечислить легко.

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

напишите пожалуйста либо новый код либо на основе этого код, который решает эту задачу

P.S заранее спасибо
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import random
 
board = list(range(1, 10))
 
def draw_board(board):
    print("-" * 13)
    for i in range(3):
        print("|", board[0 + i * 3], "|", board[1 + i * 3], "|", board[2 + i * 3], "|")
    print("-" * 13)
 
def take_input(player_token):
    valid = False
    while not valid:
        if player_token == "x":
            player_move = input("куда поставим " + player_token + "? ")
            try:
                player_move = int(player_move)
            except ValueError:
                print("некорректный ввод. вы уверены, что ввели число?")
                continue
        else:
            player_move = random.randint(1, 9)
        if 1 <= player_move <= 9:
            if str(board[player_move - 1]) not in "xo":
                board[player_move - 1] = player_token
                valid = True
            else:
                print("эта клетка уже занята!")
        else:
            print("некорректный ввод. введите число от 1 до 9.")
 
def check_win(board):
    win_lines = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (0, 3, 6), (1, 4, 7), (2, 5, 8), (0, 4, 8), (2, 4, 6))
    for each in win_lines:
        if board[each[0]] == board[each[1]] == board[each[2]]:
            return board[each[0]]
    return False
 
def results(board):
    counter = 0
    win = False
    while not win:
        draw_board(board)
        if counter % 2 == 0:
            take_input("x")
        else:
            take_input("o")
        counter += 1
 
        notification = check_win(board)
        if notification:
            print(notification, "победа!")
            win = True
            break
        if counter == 9:
            print("ничья!")
            break
 
    draw_board(board)
 
results(board)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.04.2024, 16:50
Ответы с готовыми решениями:

Крестики-нолики. Минимакс. Надо сдать лабу. Преподавательница - зверь
Доброго времени суток, уважаемые форумчане! Прошу вас о помощи. Преподавательница зверь!! Спрашивает о каждой строчке в коде. Который раз...

Бесконечные крестики-нолики или пять в ряд
Может кто помочь с исходниками для игры &quot;Пять в ряд&quot; без границ по типу такого приложения tic.netlify.app Как только не искал, но на C#...

Сетевой чат на WinSock или крестики-нолики по сети
народ обьясните плиз как нужно написать сетевой чат на винсоке или крестики-нолики чтобы по сети игралось. Если есть у кого исходник то...

1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
30.04.2024, 19:39
Pidge2, я в детстве писал программу крестики-нолики, она основывалась на магическом квадрате
492
357
816
Компьютер, начинает либо из угла, либо из центра и всегда выбирает ход, позволяющий ему построить сумму 15 и не дать сопернику построить эту сумму. Успех гарантирован: компьютер в худшем случае играет вничью. Алгоритм прост, а писать код мне просто неохота - нет стимула
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.04.2024, 19:39
Помогаю со студенческими работами здесь

Консольная игра крестики-нолики.Нужно сделать поле 10на10,при этом чтобы остался выигрыш 5в ряд или по диаголи
Консольная игра крестики-нолики. Нужно сделать поле 10 на 10, при этом чтобы остался выигрыш 5 в ряд или по диагонали. Помогите...

Крестики-нолики. Выбор между игрой с компьютером или игрой с Человеком
Написал небольшой код игры Крестики Нолики 5х5 с возможностью игры PvP (Игрок против Игрока). Ломаю голову как добавить в код возможность...

Автоматический перезапуск игры "Крестики - нолики" в случае победы или ничьей
Автоматический перезапуск игры в случае победы или ничьи(Крестики нолики)

System.AccessViolationException: Попытка чтения или записи в защищенную память - попытка 3
Уже простите за некомпилируемый код, просто я переустановил Windows, и Visual Studio удалилась, только сегодня днем установил. Код там...

System.AccessViolationException: Попытка чтения или записи в защищенную память - попытка 2
В предыдущей теме некто вообразил, что код зацикливается, поэтому приходится выкладывать более широкую модель. Надеюсь, до целого проекта...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru