Как сделать шахматы на python
Перейти к содержимому

Как сделать шахматы на python

  • автор:

Условие

Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово YES , а если в разные цвета — то NO . Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

Решение

x1 = int(input()) y1 = int(input()) x2 = int(input()) y2 = int(input()) if (x1 + y1 + x2 + y2) % 2 == 0: print('YES') else: print('NO')

Комментарии

Аноним :
объясните пожалуйста задачу))
Аноним :
то есть решение
Аноним :

Если сумма всех цифр номеров строк и столбцов сложить ,то если цвета одинаковые,то число кратно 2,а иначе, т.е. если цвета разные,то число не кратно 2.

Добавить комментарий Отменить ответ

ЕГЭ на соточку для чайников

Прошу прощения, что так долго пропадал. Питошка вернулся, да еще и с группой в вконтакте, подписывайтесь. Помимо этого, на питошке откроется новая рубрика, в которой будут четкие объяснения всех заданий ЕГЭ и ОГЭ по информатике, внимательно прочитав которые, я уверен, вы улучшите свои баллы на экзамене ��

Написание шахмат за 1 час с помощью СhatGPT

Цель этого эксперимента — проверить способности написания кода chatGPT.

Давайте посмотрим на диалог, который у меня был с chatGPT

Вопрос: Давай вместе напишем программу шахмат на Python

Ответ: Конечно, это звучит очень интересно! Прежде чем мы начнём, я должен упомянуть, что написание полнофункциональной шахматной программы является нетривиальной задачей и, вероятно, потребует значительного количества времени и усилий. Однако мы, безусловно, можем начать с обсуждения некоторых основных концепций и идей, которые были бы задействованы в таком проекте.

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

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

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

Наконец, нам нужно было бы реализовать какой-то пользовательский интерфейс, такой как интерфейс командной строки или графический пользовательский интерфейс, чтобы позволить игрокам взаимодействовать с программой и делать свои ходы.

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

Вопрос: Начни с генерации кода шахматной доски

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

Pygame шахматная доска 8х8

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

import pygame as pg pg.init() RES = WEDTH, HEIGHT = 800, 800 sc = pg.display.set_mode(RES) BLACK = (0, 0, 0) WHITE = (255, 255, 255) BLEDZOLOT =(238,232,170) OHRA = (160,82,45) FPS = 60 size = 100 y = 0 clock = pg.time.Clock() while True: for event in pg.event.get(): if event.type == pg.QUIT: pg.quit() quit() count = 0 for run in range(8): for x in range(8): if y % 2 == 0: x += 100 if count % 2 == 0: pg.draw.rect(sc, BLEDZOLOT, [size*x, size*y, size, size]) else: pg.draw.rect(sc, OHRA, [size*x, size*y, size, size]) count += 1 y += 1 pg.display.update() clock.tick(FPS) 

Отслеживать

задан 5 фев 2022 в 13:14

91 6 6 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

for x in range(8): for y in range(8): if (x + y) % 2 == 0: pg.draw.rect(sc, BLEDZOLOT, [size*x, size*y, size, size]) else: pg.draw.rect(sc, OHRA, [size*x, size*y, size, size]) 

Отслеживать

ответ дан 5 фев 2022 в 13:23

19.6k 6 6 золотых знаков 22 22 серебряных знака 56 56 бронзовых знаков

Saved searches

Use saved searches to filter your results more quickly

Cancel Create saved search

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Шахматы на Python

SergeyLebidko/PyChess

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

555f6f7 Aug 5, 2020

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time

README.md

Простая шахматная программа. Написана на python 3.7 (с использованием библиотеки pygame 1.9.6). Для начала новой партии необходимо запустить файл start_white.pyw (играть белыми) или start_black.pyw (играть черными). Файлы пакета game_pack:

  • game.py Функции, входящие в файл необходимы для создания и работы интерфейса. Они отрисовывают доску, фигуры, доступные ходы, сообщения, выводимые пользователю, принимают и обрабатывают щелчки мышкой.
  • params.py Параметры игры: цветовые константы, типы ходов, список приоритетов фигур и т.д.
  • figures.py Файл содержит классы, описывающие шахматные фигуры. Все они унаследованы от одного общего класса Figure (в свою очередь унаследованного от pygame.sprite.Sprite), содержащего код, необходимый для хранения координат фигур и их перерисовки. Каждый класс фигуры, содержит метод get_actions, который возвращает список клеток, на которые могла бы походить фигура.
  • boards.py Содержит классы, необходимые для представления игрового поля (Board), ходов (Move) и селектора фигур (SelectorBoard), используемого при выборе фигуры, на которую следует заменить пешку, дошедшую до края поля. Самый сложный и функциональный из них — Board. Он представляет игровое поле и действия на нём. Board содержит методы для получения списка доступных на поле ходов, применения ходов и их отката, а так же оценки текущей позиции. При получении списка доступных ходов учитывается возможность рокировки (как левой, так и правой), взятия пешки на проходе, конверсии пешки в другую фигуру. Также ходы фильтруются и отбрасываются те, которые ведут к шаху собственному королю (например, ходы, открывающие удар дальнобойным фигурам противника). При получении оценки текущей позиции учитываются относительная сила отдельных фигур (конь ценнее пешки, ферзь ценнее коня), позиция фигур на доске (слонам предпочтительно занять главные диагонали, коням предпочтительно быть как можно ближе к центру поля и т.д.), защита своих фигур и атака на чужие (напрмер, чем больше фигур противника находится под ударом, тем сильнее ваша позиция).
  • ai.py В файле содержится код, необходимый для расчета ответного хода компьютера. Использован алгоритм минимакс с отсечением заведомо неудачных позиций. Для ускорения работы просчет ведется на 4 хода вперед (таким образом, на ответный ход компьютер тратит максимум несколько секунд на процессоре core i5-2500). Также оптимизирован порядок просчета ходов: вначале оцениваются ходы-взятия, которые заведомо быстрее ведут к значимым изменениям на доске и быстрее вызывают отсечение.

Скриншоты приведены ниже

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *