Giter Club home page Giter Club logo

tictactry's Introduction

TicTacTry

попытка разбить на команду написание крестиков-ноликов

<Крестики-нолики для двух игроков( с возможностью второй игрок = бот)>

  1. ф1. Печать поля(вход list, выход list, можно без выхода). - Serega
  2. ф2. Ввод пользователя.Проверка заполненности ячейки. (вход list, метка (X или О, или bool), выход int:1-9,метка,list (совпадает со входом на 6) - Илья
  3. ф3. Мозги бота(вход метка (X или О), вход list, выход int:1-9, метка (X или О),list (совпадает со входом на 6)) - Антон?
  4. ф4. Проверка победы.(вход массив(List), выход флаг(bool) победы) Геннадий
  5. ф5. Начало игры крестики или нолики? (сделали выход символа (X или О)) - Таня
  6. ф6. Запись хода на поле(вход int:1-9,метка игрока,list, выход list, bool на записан ход или нет). Зачем нужна эта функция ? Чтобы расшифровывать цифру поля на двумерный список и проверять валидность хода(пустое ли поле). - Антон
  7. ф7. Сборная функция(наш main,в котором вызываются вышеописанные функции) - Антон

нумерация

1 2 3
4 5 6
7 8 9

наполнение ("X ,"O"," ") (заглавная латиница)

Пример списка с состоянием поля list_game = [['x','o','o'],['o','x','x'],['x','o',' ']] . Чтобы победить, нужно сделать запись в 9-е поле, list_game[2][2] ='x'

Как работает сборная функция - так как она сильно связана с проверкой победы и ничьи, то от того,какая будет функция 4 сильно будет зависеть. Пока наиболее готовая версия функции 4 у Гены, так что отталкиваемся от его логики.

  1. Старт, импорт всех подфункций.
  2. Вызываем функцию 5 и определяем, чем играет пользователь.
  3. Если у игрока метка крестиков - вызываем ф2.
  4. Передаем ответ в ф6.
  5. Если у игрока нолики - спрашиваем в консоли, играет ли он с ботом или с живым игроком 2 # этот шаг как раз можно добавить в функцию 5, и возращать помимо метки 1го игрока символом еще метку bot = False или true
  6. Проверяем ответ на косяки, потом либо вызываем мозги бота ф3, либо ф2 для игрока 2(метка O)
  7. Каждый вызов ф2 и ф3 считается в сборной функции по переменной счетчика и находится внутри цикла.
  8. На счетчике = 5 начинает вызываться ф4 после каждой ф2 и ф3.
  9. Если ф4 выдала нам флаг победы = True, делаем return строки поздравительной надписи, можно с вариацией расшифровки метки игрока или победы бота
  10. По достижении счетчика = 9 , если флаг победы до сих пор = False , объявляется ничья, делаем return строковой надписи.

Почему return ? Потому что он позволяет закончить игру в процессе, прямо изнутри цикла. Break, насколько я понял по докам, только прервет нам цикл со счетчиком ходов, и прогонит то ,что мы после цикла сделали(в нашем случае, return ничья)

PS: к чему можно стремиться, почитайте описание https://habr.com/ru/post/403903/ , а здесь сам код на lua https://github.com/echo-Mike/STTT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.