За последние 24 часа нас посетили 16892 программиста и 1179 роботов. Сейчас ищут 1608 программистов ...

[ Кибершахматы ] на PHP

Тема в разделе "Прочие вопросы по PHP", создана пользователем Dremax, 6 янв 2024.

  1. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Vladimir Kheifets,

    Прошло 8 лет,я решил рискнуть...И впервые попросить

    Можете на примере 4х клеток написать Drag & Drop ??

    Код (Text):
    1.            <? $x=$x+'1'; ?> <div class="cell dark" id="E1" style="background-color:<? echo $color_b[$x]; ?>"><img src="<?echo $arImages[$sh[60]]?>" <? echo 'width='.$width; echo 'height='.$height; ?>></div>
    2.  
    3.             <? $x=$x+'1'; ?> <div class="cell" id="F1" style="background-color:<? echo $color_b[$x]; ?>"><img src="<?echo $arImages[$sh[61]]?>" <? echo 'width='.$width; echo 'height='.$height; ?>></div>
    4.  
    5.             <? $x=$x+'1'; ?> <div class="cell dark" id="G1" style="background-color:<? echo $color_b[$x]; ?>"><img src="<?echo $arImages[$sh[62]]?>" <? echo 'width='.$width; echo 'height='.$height; ?>></div>
    6.  
    7.             <? $x=$x+'1'; ?> <div class="cell" id="H1" style="background-color:<? echo $color_b[$x]; ?>"><img src="<?echo $arImages[$sh[63]]?>" <? echo 'width='.$width; echo 'height='.$height; ?>></div>
    8.  

    У меня все доски работают,но я давно думаю переделать "анимацию" доски
    Если не поможете - ниче страшного

    Я никогда не писал функции на JS,мне этот язык всегда был не интересен

    [[[-- А если платно - то какая цена у такого скрипта?? --]]]
     
  2. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Добрый день!
    Проблема в том, что необходимо на JS определить правила ходов,
    т.к. нужно проверять на какую клетку может пойти каждая фигура.
    Сейчас у Вас после каждого хода полностью перезагружается доска и всю логика игры в РНР.
    На сайте https://www.chess.com нет Drag & Drop на JS анимирован выбор фигуры и ход,
    но конём как пешкой сходить запрещают.
    Может быть такой анимации Вам достаточно?
    Вы уверены, что готовы перетаскивать из PHP логику анализа ходов в обработчик на JS?
    Я мог бы Вам помочь с JS, подвигать с анимацией фигуры, но я не в теме компьютеных шахмат.
    Удачи!
     
  3. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
  4. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Привет

    Я перевел запасной сайт на PHP 8.2, почти вся работа сделана

    Вставил туда Вам код JS - фигура реально тут же прыгает

    Но не записывается ход:
    Код (Text):
    1.     document.cookie = "hod_shto1=" + hod_ot;
    2.       document.cookie = "hod_kuda1=" + hod_to;
    3.    
    Ваш код JS я понимаю на 46%,я этот язык не учил

    Посмотреть как фигура прыгает по dbclick можно здесь ИИ в шахматах (chess-rmx.net)

    Слева в углу вывел "Ход откуда" и "Ход куда" - не считывается
     
  5. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Добрый день.Вы пишите что можете помочь.Помогите

    Корректность ходов на JS мне добавлять не надо

    Мне давали в 2016 году для ходов такой код:
    Код (Text):
    1.  
    2.  
    3.       <script language="JavaScript">
    4.      
    5.      chess = {
    6.                 moveIt:false,
    7.                 moveTo:false
    8.             };
    9.             chess.init = function(){
    10.                 $('.cell').click(chess.onClick);
    11.             };
    12.             chess.onMove = function(data){
    13.                 // проверяем инфу полученую отскрипта - можно ли двигать
    14.                 // если можем - двигаем
    15.                 chess.moveTo.html(chess.moveIt.html());
    16.                 chess.moveIt.html('');
    17.                 chess.moveIt.removeClass('selected');
    18.                 chess.moveIt=false;
    19.                 chess.moveTo=false;
    20.           };
    21.             chess.onClick=function(e){
    22.                 e.preventDefault();
    23.                 e.stopPropagation();
    24.                 var cell = $(this);
    25.                 if (chess.moveIt===false){
    26.                     // еще не выбрана фигура для перемещения
    27.                     cell.addClass('selected');
    28.                     chess.moveIt = cell;
    29.                }else{
    30.                     // если выбрана фигура
    31.                     if(cell.html()==='<img src="picture/kletka-0.png" width="46height=46">' | cell.html()>''){
    32.  
    33. // var hod_shto =  document.cookie;
    34.  
    35.               var  shto=chess.moveIt.attr('id');
    36.        document.cookie = "hod_shto=" + shto;
    37.  
    38. // var hod_kuda =  document.cookie;
    39.        
    40. var  kuda=cell.attr('id');
    41.    document.cookie = "hod_kuda=" + kuda;
    42.  
    43.                         // если новая клетка пустая значит можно двигать отправляем запрос
    44.                         // отправку закоментировал, т.к. показыва функционал только на клиенте
    45. //                      $.ajax({
    46. //                          url:<скрипт_принимающий_информацию_о_ходе>,
    47. //                          data:{from:chess.moveIt.attr('id'),to:cell.moveIt.attr('id')}, //передали в скрипт ячейки
    48. //                          dataType:'json',    // формат в котором будут возвращены
    49. //                                              //данные от скрипта. json будет удобнее в данном случае
    50. //                          success:chess.onMove // обработка данных поступивших от php скрипта
    51. //   });
    52.                         chess.moveTo=cell; // можно либо так, либо в $.ajax передать в качестве значения
    53.                                             // параметра context, но поменять под это принимающую ф-ию
    54.                       //  chess.onMove(); // эта строка не нужна если раскоментироватьблок выше
    55.                                         // просто эмулирую что получен положительный ответ
    56. }
    57.                     else if(cell.attr('id')===chess.moveIt.attr('id')){
    58.                         //выбрана та же кетка - снимаем выделение
    59.                         cell.removeClass('selected');
    60.                         chess.moveIt = false;
    61.                     } else {
    62.                         // выбрана другая фигура
    63.                       //  chess.moveIt.removeClass('selected');
    64.                      //   chess.moveIt = false;
    65.                      //   cell.addClass('selected');
    66.                      //   chess.moveIt = cell;
    67.                     };
    68.                 };
    69.                 return false;
    70.             };
    71.             $(document).ready(function(){
    72.                 chess.init();
    73.             });
    74.         </script>
    Я в этом коде не разбирался,просто вывел координаты хода,работает и ладно

    Клетки прописаны на <div>:
    Код (Text):
    1.  
    2.    <div class="cell dark" id="A8" style="background-color:<? echo $color_b[$x]; ?>"><img src="<?echo $arImages[$sh[20]]?>" <? echo 'width='.$width; echo 'height='.$height; ?>></div>
    3.             <? $x=$x+'1'; ?> <div class="cell" id="B8" style="background-color:<? echo $color_b[$x]; ?>"><img src="<?echo $arImages[$sh[21]]?>" <? echo 'width='.$width; echo 'height='.$height; ?>></div>
    4.             <? $x=$x+'1'; ?> <div class="cell dark" id="C8" style="background-color:<? echo $color_b[$x]; ?>"><img src="<?echo $arImages[$sh[22]]?>" <? echo 'width='.$width; echo 'height='.$height; ?>></div>
    5.             <? $x=$x+'1'; ?> <div class="cell" id="D8" style="background-color:<? echo $color_b[$x]; ?>"><img src="<?echo $arImages[$sh[23]]?>" <? echo 'width='.$width; echo 'height='.$height; ?>></div>
    Мне нужна помощь,переделать эту "никакую" анимацию доски

    [[[ Спасибо ]]]
     
  6. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Вы видели Вчера, в 12:45 моё сообщение?
    Нашёл шахматы с анимацией на HTML5, JS, CSS
    https://www.codepel.com/html5-games/javascript-chess-game-source-code/
    https://www.codepel.com/demo/javascript-chess-game-source-code/
     
  7. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Посмотрел по 2 раза,это программа "ниочем",у меня программа намного мощнее

    [[[ Сейчас у меня "лёг" хостинг - 7 часов не доступны сайты и файловый менеджер ]]]
     
  8. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    912
    Симпатии:
    143
    Юзай этот https://infinityfree.net/redir/152223 , если английский чутка шаришь.
     
  9. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Мои шахматы теперь на PHP 8.2
    Исправлять пришлось немного
     
  10. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Мне не понравилось на PHP 8.2 - сайт долго загружается ,ощущается что php слишком тяжелый
    Код оставил на месте,а php на хостинге откатал обратно на 5.2 - сайт стал летать
     
  11. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    У меня получилось перейти на PHP 8.2 - но отказал JS полностью ...Обновление доски не работало,ход фигурой не работало
    Помучился 4 дня и в итоге откатал весь код на старое состояние PHP 5.2

    Посоветуйте что нибудь,что делать.Создал 2 темы в разделе JS - там не помогают
     
  12. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    912
    Симпатии:
    143
    смотри в консоли браузера, что рассыпается
    за что ненавижу JS, иногда молча рассыпается (
     
  13. Дюран

    Дюран Активный пользователь

    С нами с:
    9 мар 2018
    Сообщения:
    284
    Симпатии:
    21
    В том демо нормальный пользовательский интерфейс для игры на javascript. И подсказки по возможностям хода.
    У вас этого нет
     
  14. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Добрый день!
    Как обещал сделал анимацию ходов на JS и CSS
    Работает так: по клику по фигуре она поддергивается типа очень хочет ходить, по клику на клетку куда
    фигура плавно перелетает в эту клетку. Правила ходов не обработываются. Пока только анимация ходов.
    Затем информация о ходе: клета откуда, клета куда, название фигуры (выбирается из img src )
    отправляется через XMLHttpRequest (GET Request , Response type JSON) на url: processing.php
    В processing.php обрабатывается GET Request и возвращается в JS JSON Response без перезагрузки страницы.
    В JS JSON Response декодируется в объект и из него выбирается информация о ответном ходе, полученная из processing.php (PHP 8.2)
    В PHP пока, для демонстрации ответного хода, рандомно выбираются колонки полей.
    PHP:
    1. <?
    2. //Обработчик AJAX Request
    3. $hod_shto1 = $_GET["hod_shto1"];
    4. $hod_kuda1 = $_GET["hod_kuda1"];
    5. $hod_piece = $_GET["hod_piece"];
    6. /*
    7. здесь ИИ должен реагировать на ход игрока и делать свой следущий ход.
    8. За неимение ИИ для тестa присвоены случайные столбцы от "A" до "H"
    9. */
    10. $letters = range("A","H");
    11. $ind = random_int(0, 7);
    12. $col = $letters[random_int(0, 7)];
    13. $hod_shto2 = $col."7";
    14. $hod_kuda2 = $col."5";
    15. $out = [
    16.     "hod_shto1" => $hod_shto1,
    17.     "hod_kuda1" => $hod_kuda1,
    18.     "hod_piece" => $hod_piece,
    19.     "hod_shto2" => $hod_shto2,
    20.     "hod_kuda2" => $hod_kuda2
    21. ];
    22.  
    23. //Отправляем JSON Response
    24. header('Content-Type: application/json; charset=utf-8');
    25. echo json_encode($out);
    26. ?>
    Демо: https://www.alto-booking.com/developer/chessPieceAnimation/script
    Коды: https://www.alto-booking.com/developer/chessPieceAnimation/script/chess.zip
    К сожалению, быстрее не смог.
    Удачи!
     
    #39 Vladimir Kheifets, 15 янв 2024
    Последнее редактирование: 15 янв 2024
  15. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Здрасьте
    Все сработало,фигуры медленно летают.Вы большой талант в программировании.Премного благодарен.

    Я налаживал доску,в такой вид:
    Код (Text):
    1. <tr><td class="  " bgcolor=#505050 width=20 height=58>8</td>
    2.   <td class="cell" bgcolor=#707070  id=A8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    3.   <td class="cell dark" bgcolor=#505050  id=B8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    4.   <td class="cell" bgcolor=#707070  id=C8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/>  </td><? $s=$s+'1'; ?>
    5.     <td class="cell dark" bgcolor=#505050  id=D8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    6. <td class="cell" bgcolor=#707070  id=E8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>>
    7. <td class="cell dark" bgcolor=#505050  id=F8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    8. <td class="cell" bgcolor=#707070  id=G8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    9. <td class="cell dark" bgcolor=#505050  id=H8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?></tr>
    Фигуры ведь перерисовывать надо со сменой позиции

    Вот та программа с игрой компьютера,ваша анимация работает:
    https://xn--80aabqnls4av1a5a5b.xn--p1ai/studiere/dosa.php

    На основном сайте 8 вариантов шахмат написаны через <div id=A1> ,я там хотел бы тоже сделать анимацию
    Занимаюсь по уроку JS ,вот что получилось:
    https://chess-rmx.net/variant2/doska_js.php

    В общем доска на ИИ была сделана на PHP я догнал,что JS не работает через echo
    Теперь доска сделана через html

    Прогресс не стоит на месте,все развивается
    На сайте "Кибершахмат" сделал входную страницу и опцию "Сменить логин"
     
  16. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Добрый день!
    По поводу HTML.
    Советую Вам не перегружать код атрибутами bgcolor=#707070, bgcolor=#505050
    Лучше их убрать из тэгов и определить в CSS
    Код (CSS):
    1. :root{
    2. --color-dark: #505050;
    3. --color-light: #707070;
    4. --cell-size: 52px;
    5. }
    6.  
    7. .dark, .light{
    8.   height: var(--cell-size);
    9.   width: var(--cell-size);
    10. }
    11. .dark{
    12.   background-color: var(--color-dark);
    13. }
    14.  
    15. .light{
    16.   background-color:var(--color-light);
    17. }
    и затем в HTML тэгах td убрать bgcolor и заменить class="cell" на class="light" и class="cell dark" на class="dark"

    Вы ошибаетесь, что "JS не работает через echo". JS код не исполняется на стороне сервера.
    РНР генерирует HTML код и отправляет его в браузер клиента.
    Поэтому в РНР через echo можно вставляться JS, CSS и любые тэги, например,
    Код (PHP):
    1. <?
    2. .....
    3. echo <<<HTML
    4. <script>
    5. var a="$a";
    6. </script>
    7. HTML;
    8. ?>
    9. <!-- или так  -->
    10. <?
    11. echo "<script>";
    12. ?>
    13. var a="<?=$a?>";
    14. </script>
    Честно говоря, не здорово выглядит переворачивание доски поле перезагрузки страницы (после каждого хода).
     
  17. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Убрал #707070 и #505050 - в текстовом редакторе махом все заменил
    Переворачивание доски запросто могу отменить

    Это написано
    if($storona=='1') {
    //показываем для белых
    }

    if($storona=='2') {
    //показываем для черных
    }

    Игра ИИ это эксперимент,там компьютер играет слабо
    Я пытался анимацию поставить на доску с <div id=A1> , не сработало

    Было бы прекрасно на всех 8 вариантах сделать drag&drop

    В одной строчке указано td я поменял на div:

    cells = document.querySelectorAll(".сhess-board div[id]");

    Не прокатило

    Сделал <div class="chess-board">
     
  18. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Изменил HTML так
    HTML:
    1. <div class="сhess-board">
    2.   <div  id=A8 >
    3.     <img src="../picture/tura_black.png"/>
    4.   </div>
    5.   <div id=B8 >
    6.     <img src="../picture/kon_black.png"/>
    7.   </div>
    8. <div id=C8 >
    9.       <img src="../picture/slon_black.png"/>
    10.   </div>
    11. </div>
    изменил в JS
    Код (Javascript):
    1. window.addEventListener("load", (event) => {
    2.   cells =  document.querySelectorAll(".сhess-board div[id]");
    3.   cellsPosition = {};
    4.   for (var i = 0; i <cells.length; i++)
    5.   {
    6.     cells[i].addEventListener("click",function(){fe(this);});
    7.     id = cells[i].id;  
    8.     pos = cells[i].getBoundingClientRect();
    9.     T = parseInt(pos.y) + 3;
    10.     L = parseInt(pos.x) + 3;
    11.     cellsPosition[id] = [T, L];
    12.     if(cells[i].innerHTML.includes("img"))
    13.       setStyle(cells[i], getPosProp(T, L), 1);
    14.   }
    15.    console.log(cellsPosition);
    16. });
    Здесь определются top и left для каждой клетки и запиписываются в объект cellsPosition и для каждого дочернего элемент img присаиваются свойства top и left клетки.
    добавил console.log(cellsPosition) посмотрите и можете убрать.
    Выдаёт
    Код (Javascript):
    1. Object { A8: (2) [], B8: (2) [], C8: (2) [] }
    2. A8: Array [ 29, 11 ]
    3. B8: Array [ 53, 11 ]
    4. C8: Array [ 77, 11 ]
    5. <prototype>: Object {}
    Всё работает без проблем.
    Нужно проверять Ваш HTML. В дереве DOM нарyшена cтруктура parent -> children
     
    #43 Vladimir Kheifets, 16 янв 2024
    Последнее редактирование: 16 янв 2024
  19. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Чтобы подсвечивать ходы такая каша получилась
    Вроде бы умно,а вроде бы слишком длинно:
    Код (Text):
    1. <? if($color_b[$s]!='#404040') { $d='cell'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=A8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    2.  
    3. <? if($color_b[$s]!='#404040') { $d='cell dark'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=B8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    4.  
    5. <? if($color_b[$s]!='#404040') { $d='cell'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=C8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/>  </td><? $s=$s+'1'; ?>
    6.  
    7. <? if($color_b[$s]!='#404040') { $d='cell dark'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=D8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    8.  
    9. <? if($color_b[$s]!='#404040') { $d='cell'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=E8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>>
    10.  
    11. <? if($color_b[$s]!='#404040') { $d='cell dark'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=F8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    12.  
    13. <? if($color_b[$s]!='#404040') { $d='cell'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=G8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    14.  
    15. <? if($color_b[$s]!='#404040') { $d='cell dark'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=H8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?></tr>
    Укороченный код доски есть,но на нем не работает анимация(
     
  20. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Дополнение. Не уложился в time-out
    Отдельная тема переворачивание досок.
    Предложение.
    HTML доски статичиские.
    Нужно заготовить два варианта для игрока белыми и игрока черными и записать их файлах на сервере.
    Когда игрок заходит на сайт, наверное должна быть авторизация и выбор парнера - ИИ или другой игрок, если таковой есть. Затем выбор белыми и черными.
    Затем на сервере генерируется HTML и в него встраиваетс HTML код доски, считанный из файла.
    Далeе всё, что касается ходов игрока обрабатыается JS.
    Я сделал функуию denyClicks. Сейчас она блокирует пустой ход, клик по фигурам противника.
    В неё необходимо добавить проверку правил ходов.
    При отправке HTML в бразер необходимо в JS определить перменные: имя игрока, и его цвет - черными или белыми он играет.
    После каждого хода игрока, ход противника должен получатьcя из AJAX Response и ходы противника должны отображаться на доске функцией movePiece.
    Очевидно, что для каждого игрока должна заводится SESSION.
    Если не понятно объяснил, спрашивайте.
    Может и знатоки что-то посоветуют.
    Удачи!
    --- Добавлено ---
    Простите, не понял. Вы написали, что доску переделали на дивах. Что имеется ввиду под подветкой ходов?
    Если это подсказка правил ходов, то это должно быть как всех у кого есть анимация т.е. JS
    Между прочим в chess.com просто блокируется клики без подсказок.
     
  21. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Понимаете,у меня 2 программы...Одна отдельная программа это игра с ИИ
    И еще основной сайт https://кибершахматы.рф

    Игрой ИИ можно не заниматься,это тестовый эксперимент,эту опцию ваще можно удалить

    А на основном сайте совсем другая доска и другой код JS
    На "кибершахматах" доски на 8 вариантах написаны на <div id=A!>
    Вы там не увидите исходник,код прячется за shess.php,я создавал 2 темы чтобы помогли и переделали JS

    Я ваще не знаю JS,у меня в шахматах ни одной функции ,оператор function() нигде не использовал

    Все опции написаны на IF ELSE ,это мое любимое

    Вы большой профессионал,я вас ценю,Вы первый человек за 8 лет кто реально помог

    Например на варианте #2 начните новую игру,там нет никакой анимации,и JS не работает на PHP 8.2
    Меня немного совесть мучает,что сайт написан на PHP 5.2

    ПОДСВЕТКА: Сделайте ход E2-E4 ход подсвечивается цветом #404040 ИИ в шахматах (xn--80aabqnls4av1a5a5b.xn--p1ai)
     
  22. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Простите, не понял. Вы написали, что доску переделали на дивах. Что имеется ввиду под подветкой ходов?
    Если это подсказка правил ходов, то это должно как всех у кого есть анимация т.е. JS
    Между прочим в chess.com просто блокируется клики без по
     
  23. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Подсветка ходов: Допустим я хожу E2-E4 ,это ход с 53 клетки на 37 клетку.Записываю в файл 2 строчки 53 и 37,и потом эти клетки высвечиваю цветом #404040

    Код (Text):
    1. <? if($color_b[$s]!='#404040') { $d='cell'; } else $d=''; $col='bgcolor="'.$color_b[$s].'"'; ?><td class="<? echo $d; ?>" <? echo $col; ?>  id=A8 ><img src="../<? echo $arImages[$fexo[$s+1]]; ?>"/></td><? $s=$s+'1'; ?>
    У меня 2 доски на сайте,одна доска на ИИ написана на <table<tr><td>
    На основном сайте на 8 вариантах доска написана на <div id=A1>

    Мне надо сделать анимацию на <div id A1>

    Я ваш код JS пытался переделать с td на div - у меня не сработало

    Вот здесь сделайте 1 ход - работатет ваша анимация и подсветка ИИ в шахматах (xn--80aabqnls4av1a5a5b.xn--p1ai)

    [[[ Сейчас у меня другая временная идея: Написать анкеты и профили на сайте,пока думаю ]]]
     
  24. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    418
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Добрый день!
    Переделал полностью разбивку. Tеперь grid и div.
    Написал утилиту ChessboardMaster, котoрая создаёт и записывает на сервере два html файла для игроков белыми и чёрными фигурам.
    Вызывается один раз. Перед вызовом нужно изменить файл ChessboardConfig
    PHP:
    1. <?
    2. //$patch = "../picture/";
    3. $patch = "https://%D0%BA%D0%B8%D0%B1%D0%B5%D1%80%D1%88%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B.%D1%80%D1%84/picture/";
    4. $ext = ".png";
    5. ?>
    CSS и JS выделил в отдельные файлы.
    Demo1:
    https://www.alto-booking.com/developer/chessPieceAnimation/script/ChessboardMaster.php
    Create chessbord and save in files:
    whitePayerChessBord.html
    blackPayerChessBord.html

    Demo2:
    https://www.alto-booking.com/developer/chessPieceAnimation/script
    $_SESSION["playerPieces"] --> "white" or "black" default "white"

    Коды:
    https://www.alto-booking.com/developer/chessPieceAnimation/script/chess.zip
    Screenshot 2024-01-18 124636.jpeg
     
  25. Dremax

    Dremax Активный пользователь

    С нами с:
    13 фев 2015
    Сообщения:
    154
    Симпатии:
    4
    Запустил на сайте папку chess - работает
    Подсключил Chessboard.js и Chessboard.css к своему варианту #2 - не работает
    От файла .css зависит анимация??

    Понимаю Ваш JS на 45% ,но этот язык не знаю

    Провозился 1 час,не настроил.Еще вернусь к этому вопросу,может сработает
    Я не представляю где ошибка.Или моя доска не совпадает под JS или от файла стиля зависит

    Надо наладить