Насколько я помню, доска в этом компьютере пассивная, сугубо для наглядности и самоконтроля. Все ходы игрока сообщаются компьютеру с помощью клавиатуры.
Насколько я помню, доска в этом компьютере пассивная, сугубо для наглядности и самоконтроля. Все ходы игрока сообщаются компьютеру с помощью клавиатуры.
Ну, эти- наверное, ДА.. А вот которую я видел- там именно фигуры переставляли, и шахматный компьютер это "видел".. И ходы делал- перемигивался светодиодами на клетках с фигурой и куда её переставить.. Плохо помню, я сам шахматами не увлекаюсь, и это было тридцать лет назад..
К сожалению зачиповать каждую фигуру тоже не получится. Хочу это реализовать только с помощью переключателей на доске(+/-). Каждая ячейка поля имеет свой адрес, при изначальной расстановке каждая ячейка с фигурой(+ переключателя, фигура на поле) имеет свой идентификатор и запрограммирована на определенные шаги. это будет запрограммировано в микроконтроллер, ему только останется считывать данные, и проверять их, при определённых условиях отправлять сигнал на светодиод. Такое можно реализовать?
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
меня тут немного не поняли. эти шахматы не должны со мной играть, нужно что бы они просто показывали, что я сходил не правильно и всё. Микропроцессор должен дать сигнал на светодиод, если конкретная точка поля сходит не туда. Например: пешки на поле 3*3 Данное поле состоит из 9 переключаталей с координатами х1у1, х1у2, ..., х3у3. Пешка стоит на переключателе х1у2(+ переключатель замкнут), взяли пешку, переключатель в положение "-", контроллер посчитал куда должна встать пешка(где должен замкнуться переключатель), если совпадает, то идём дальше, если замкнулся другой переключатель, значит подаётся сигнал на диод. Изначальное положение переключателю будет присвоено значение пешки, которое сохранится для нее в течение всей игры, например П с координатами х1у2, и все её перемещения будут по формуле ХхУу=Х(х+1)У(у-1)илиХ(х+1)У(у)илиХ(х+1)У(у+1) (нумерацию клеток поля надеюсь поняли)
Вопрос то в том, возможно ли такое реализовать и как это сделать проще?
нужно что бы они просто показывали, что я сходил не правильно и всё.
Для этого ваша система должна иметь алгоритм всех допустимых ходов для каждой фигуры в каждый момент времени, иначе ей не с чем будет сравнивать, и не от чего отталкиваться. А искусственный интеллект, к сожалению, ещё не изобрели. Даже у шахматного компьютера, который упоминался выше, есть своё ПЗУ (хоть и небольшое) с базой дебютов и алгоритмами. При этом безусловно подразумевается, что игрок ходит в соответствии с правилами, иначе у компьютера просто наступает overflow.
Цитата:
возможно ли такое реализовать
Возможно. Для начала придётся вам написать (либо найти в сети) алгоритм допустимых ходов для МК под ваши условия (только пешки, доска 3х3).
Вам потребуется микроконтроллер. Вот вам пример моей шахматной программы. Разумеется, там есть контроль правильности ходов. Общая идея следующая. Поле представляется массивом 16x16 (чтобы удобно было не следить за выходом за границы массива) заданного типа CELL.
//структура полей доски:AHIIIIEWB0MFFF //W-фигура белая //B-фигуры чёрная //F-тип фигуры (0-фигуры нет) //M-ходила ли фигура //E-край доски //I-индекс фигуры в массиве для поиска фигур (0-15) //H-была короткая рокировка (флаг ставится только у короля и ладьи) //A-была длинная рокировка (флаг ставится только у короля и ладьи)
//сдвиг индекса #define INDEX_SHIFT 8 //маска белых #define MASK_WHITE WHITE //маска чёрных #define MASK_BLACK BLACK //маска цвета #define MASK_COLOR (MASK_WHITE|MASK_BLACK) //маска типа #define MASK_TYPE BYTE8(0,0,0,0,0,1,1,1) //маска границы #define MASK_BORDER BYTE8(1,0,0,0,0,0,0,0) //маска,ходила ли фигура #define MASK_IS_MOVED BYTE8(0,0,0,0,1,0,0,0) //маска индекса фигуры в массиве #define MASK_INDEX ((BYTE8(0,0,0,0,1,1,1,1))<<INDEX_SHIFT) //маска рокировки #define MASK_CASTLING (BYTE8(0,0,1,1,0,0,0,0)<<8)
//---------- //Типы данных //---------- //полное значение ячейки #define CELL_FULL_VALUE 0xffffffff //тип фигуры #define FIGURE_TYPE long #define FIGURE_COLOR long #define COORD long #define CELL long #define ENGINE_BOOL long #define ZOBRIST_COLOR long #define ENGINE_TRUE 1L #define ENGINE_FALSE 0L #define ZOBRIST_BLACK 0 #define ZOBRIST_WHITE 1
Получается вот такой вот массив CELL Board[256];//шахматная доска с полем посередине (16x16)
Ходы фигур описываются как
Код:
//---------- //ходы фигур //---------- long KingMove[9]={16,-16,1,-1,17,-17,15,-15,0};//ходы короля long QueenMove[9]={16,-16,1,-1,17,-17,15,-15,0};//ходы ферзя long RookMove[5]={16,-16,1,-1,0};//ходы ладьи long BishopMove[5]={17,-17,15,-15,0};//ходы слона long KnightMove[9]={32+1,32-1,16+2,16-2,-(32+1),-(32-1),-(16+2),-(16-2),0};//ходы коня
А дальше вам потребуется разобраться с функцией Move_MoveOn. К сожалению, переделать её под вас мне сейчас некогда, тем более, что всё это делалось для компьютера, а не для микроконтроллера. Тут много нужно вспоминать даже мне, хоть я и автор. Впрочем, может быть, я это и сделаю позже. Вообще, в книжке Корнилова "Программирование шахмат" это есть.
Добавлено after 37 minutes 56 seconds: В принципе, выкинул всё ненужное. Осталась только обработка ходов. Правда, для микроконтроллера потребуется много памяти - в этом плане нифига не оптимально. Сперва собирается список ходов, а потом ваш ход ищется среди них.
Тем, что в дебюте и в эндшпиле просчитать исход партии очень сложно. Тот же эндшпиль имеет окончания на десятки ходов. Для этого применяют таблицы Налимова - это резко улучшит игру программы в началах и в окончаниях. И, кстати, уровень КМС - это весьма немного.
Для этого ваша система должна иметь алгоритм всех допустимых ходов для каждой фигуры в каждый момент времени, иначе ей не с чем будет сравнивать, и не от чего отталкиваться.
Я думаю, тут все проще, просто тредстартер не может свою мысль выразить. Скорее всего, под "неправильным" ходом он имеет в виду ходы, не разрешенные для фигуры правилами шахмат. Например, конь ходит буквой "Г" и любой корректный ход система должна разрешать, а если коня переставить на клетку рядом - должна выдать ошибку. Слон ходит по диагонали, а ладья - по прямой, соответственно, попытка поставить слона по прямой, а ладью - по диагонали должна пресекаться. Непонятно только, зачем это надо - для детского шахматного кружка?
Последний раз редактировалось Alkul Пн май 01, 2017 14:35:54, всего редактировалось 2 раз(а).
Скорее всего, под "неправильным" ходом он имеет в виду ходы, разрешенные для фигуры правилами шахмат. Например, конь ходит буквой "Г" и любой корректный ход система должна разрешать, а если коня переставить на клетку рядом - должна выдать ошибку.
В этих правилах нет понятия "связывания" фигуры. А оно не менее важное.
- Только что здесь стояла ладья, а теперь ее уж нет? - Значит и не было. - Куда же она девалась, вы ее выиграли? - Выиграл. - На каком ходу? (12 стульев)
Квжется, лет ...дцать тому назад я встречал подобную бредятину: доска - 64 октальные панельки, у фигуры в нижней части - в ламповом цоколе перемычками закодирован тип и цвет. Со считыванием проблем нет. Другой вопрос - а на хрена? СпойлерЗавидую автору белой завистью: сколько у чела свободного времени, чтоб хернейтворчеством заниматься! Я вот вроде на пенсии, а весь день крутиться приходится: уборка, мелкий ремонт, покормить котов и себя, стирка, в магазины, аптеки... Вот выберешь часок в форум забежать..
Сейчас этот форум просматривают: wladimir031054 и гости: 260
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения