Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2019, 02:38   #1
dizenda
Новичок
Джуниор
 
Регистрация: 28.08.2019
Сообщений: 1
По умолчанию Шах и мат в шахматах

Спрограммировал уникальные шахматы 15 моделей.
Есть простенькая ошибка,как я прописал проверку шаха.
Шах ставится отлично,но есть недоразумение при снятии шаха,при защите короля


Вот вы программировали шахматы?
Как можно прописать попроще проверку шаха?
Я сделал алгоритм по своей логике,и это не идеально


На доске есть клетки $sh[120];
Доска 10х12
Как знающие люди прописывают обработку клеток?
Логически у меня всё работает,но метод несовершенен
Как говорил один программист ,нужна "матрица ходов",но её делать не умею

В моей обработке что то не так,защищаюсь от шаха конем,клетка перекрывает шах,и равна - 4,а код обрабатывает шах,и не видит коня,говорит клетка равна - 0

Это вариант 6,седня играл,и попал на свой алгоритм http://chess.liozenda.ru/


Код:



if($sh[$i]=='15' | $sh[$i]=='17')  {  // проверка белый ферзь влево есть ли шах
                           if($sh[$i-1]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='40' & $sh[$i-4]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='40' & $sh[$i-4]=='40' & $sh[$i-5]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='40' & $sh[$i-4]=='40' &  $sh[$i-5]=='40' & $sh[$i-5]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='40' & $sh[$i-4]=='40' &  $sh[$i-5]=='40' & $sh[$i-6]=='40' & $sh[$i-7]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='40' & $sh[$i-4]=='40' &  $sh[$i-5]=='40' & $sh[$i-6]=='40' & $sh[$i-7]=='40' & $sh[$i-8]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='40' & $sh[$i-4]=='40' &  $sh[$i-5]=='40' & $sh[$i-6]=='40' & $sh[$i-7]=='40' & $sh[$i-8]=='40' & $sh[$i-9]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='40' & $sh[$i-4]=='40' &  $sh[$i-5]=='40' & $sh[$i-6]=='40' & $sh[$i-7]=='40' & $sh[$i-8]=='40' & $sh[$i-9]=='40' & $sh[$i-10]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i-1]=='40' & $sh[$i-2]=='40' & $sh[$i-3]=='40' & $sh[$i-4]=='40' &  $sh[$i-5]=='40' & $sh[$i-6]=='40' & $sh[$i-7]=='40' & $sh[$i-8]=='40' & $sh[$i-9]=='40' & $sh[$i-10]=='40' & $sh[$i-11]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }

                           }  // конец белый ферзь влево




if($sh[$i]=='15' | $sh[$i]=='17')  {  // проверка белый ферзь вправо есть ли шах
                           if($sh[$i+1]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='40' & $sh[$i+4]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='40' & $sh[$i+4]=='40' & $sh[$i+5]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='40' & $sh[$i+4]=='40' &  $sh[$i+5]=='40' & $sh[$i+5]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='40' & $sh[$i+4]=='40' &  $sh[$i+5]=='40' & $sh[$i+6]=='40' & $sh[$i+7]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='40' & $sh[$i+4]=='40' &  $sh[$i+5]=='40' & $sh[$i+6]=='40' & $sh[$i+7]=='40' & $sh[$i+8]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='40' & $sh[$i+4]=='40' &  $sh[$i+5]=='40' & $sh[$i+6]=='40' & $sh[$i+7]=='40' & $sh[$i+8]=='40' & $sh[$i+9]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='40' & $sh[$i+4]=='40' &  $sh[$i+5]=='40' & $sh[$i+6]=='40' & $sh[$i+7]=='40' & $sh[$i+8]=='40' & $sh[$i+9]=='40' & $sh[$i+10]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }
                           if($sh[$i+1]=='40' & $sh[$i+2]=='40' & $sh[$i+3]=='40' & $sh[$i+4]=='40' &  $sh[$i+5]=='40' & $sh[$i+6]=='40' & $sh[$i+7]=='40' & $sh[$i+8]=='40' & $sh[$i+9]=='40' & $sh[$i+10]=='40' & $sh[$i+11]=='6')  {  $proverka=true; echo '<br>Шах черному  королю от ферзя + ['.$i.'], <font size=1><strong>( Возможно ошибка )</strong></font>'; }

                           }  // конец белый ферзь вправо
dizenda вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запустить сетевую игру в уже готовых шахматах angrystrike WPF, UWP, WinRT, XAML 0 23.07.2018 14:20
Выделение хода в шахматах через Shape Rybi Общие вопросы Delphi 18 12.11.2015 18:21
Алгоритм поиска лучшего хода в шахматах Foxpronet Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 06.04.2014 10:44
выборка клетки в шахматах на С #Legalas Помощь студентам 6 04.04.2012 13:25