Cкрипт Для Диаграмм

Тема в разделе "Мастерская", создана пользователем atoku, 13 окт 2006.

  1. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    test
    Код:
    [fen]2k1B3/ppB5/3P3p/7P/3K4/2Pn2r1/1P6/8 w - - 0 1[/fen]

    надо нормальные фигуры поставить
  2. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    потом можно будет делать и разных размеров... пока только 19 точек клетка, остальные размеры подбираются.
    есть другая проблема, почему-то между горизонталями появляется свободное место. почему и как с этим бороться?
  3. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Доска смотрится Цельной, без разрывов...
    В Скрипт ещё не добавил «class=nope»
    Для этюдов подойдёт :)
    А если вставить рядом ТРИ ФЕНА?
  4. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн


    Надо бы ещё кнопочку для вставки тэга приделать (нарисовать) :)
  5. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    это попозже :) я даже не знаю, какой файл отвечает за эти кнопки. в базовых файлах форума панельки ведь нет...
  6. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Ivanov-Petrov Ход белыхSergeev, 1999 мат в 18 ходов
    Формат для заданий (задач и этюдов)
    КОД:

    Код:
    [table][tr][td][b]Ivanov-Petrov[/b][fen]rnbqkbnr/pppp1ppp/4p3/8/1P6/8/P1PPPPPP/RNBQKBNR[/fen][b]Ход белых[/b][/td][td][b]Sergeev, 1999[/b][fen]rnbqkbnr/pppp1ppp/4p3/8/1P6/8/P1PPPPPP/RNBQKBNR[/fen][b]мат в 18 ходов[/b][/td][/tr][tr][td][fen]rnbqkbnr/pppp1ppp/4p3/8/1P6/8/P1PPPPPP/RNBQKBNR[/fen][/td][td][fen]rnbqkbnr/pppp1ppp/4p3/8/1P6/8/P1PPPPPP/RNBQKBNR[/fen][/td][/tr][/table]
    Добавлено: Не работает тэг таблички :(
    Надо добавлять... Будет смотреться - хорошо и компактно...
  7. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    на всякий случай, публикую СВОИ Тэги в файле parser.php, может, кому - надо... ;)
    Сравните и добавьте, если нет

    Код:
    $pattern = array('#\[b\](.*?)\[/b\]#s',
                         '#\[i\](.*?)\[/i\]#s',
                         '#\[u\](.*?)\[/u\]#s',
                         '#\[url\]([^\[]*?)\[/url\]#e',
                         '#\[url=([^\[]*?)\](.*?)\[/url\]#e',
                         '#\[email\]([^\[]*?)\[/email\]#',
                         '#\[email=([^\[]*?)\](.*?)\[/email\]#',
                         '#\[ul\](.*?)\[/ul\]#',
                         '#\[ol\](.*?)\[/ol\]#',
                         '#\[uli\](.*?)\[/uli\]#',
                         '#\[oli\](.*?)\[/oli\]#',
                         '#\[ent=(.*?)\]#',
                         '#\[color=([a-zA-Z]*|\#?[0-9a-fA-F]{6})](.*?)\[/color\]#s',
                         '#\[font=(.*?)](.*?)\[/font\]#',
                         '#\[align=(.*?)\](.*?)\[/align\]#',
                         '#\[style="(.*?)"\](.*?)\[/style\]#',
                         '#\[hr /\]#',
                         '#\[hr\]#',
                         '#\[table\](.*?)\[/table\]#',
                         '#\[caption\](.*?)\[/caption\]#',
                         '#\[tr\](.*?)\[/tr\]#',
                         '#\[td\](.*?)\[/td\]#',
                         '#\[s\](.*?)\[/s\]#',
                         '#\[pre\](.*?)\[/pre\]#',
                         '#\[sup\](.*?)\[/sup\]#',
                         '#\[sub\](.*?)\[/sub\]#',
                         '#\[img\](.*?)\[/img\]#',
                         '#\[alpha\](.*?)\[/alpha\]#',
                         '#\[fen\](.*?)\[/fen\]#',
                         '#\[fen_s\](.*?)\[/fen_s\]#',
                         '#\[kren_s\](.*?)\[/kren_s\]#',
                         '#\[h\](.*?)\[/h\]#');
    
    
        $replace = array('<strong>$1</strong>',
                         '<em>$1</em>',
                         '<span class="bbu">$1</span>',
                         'handle_url_tag(\'$1\')',
                         'handle_url_tag(\'$1\', \'$2\')',
                         '<a href="mailto:$1">$1</a>',
                         '<a href="mailto:$1">$2</a>',
                         '<ul>$1</ul>',
                         '<ol>$1</ol>',
                         '<li>•&nbsp;&nbsp;$1</li>',
                         '<li>$1</li>',
                         '&$1;',
                         '<span style="color: $1">$2</span>',
                         '<span style="font-family: $1">$2</span>',
                         '<div align="$1">$2</span>',
                         '<span style="$1">$2</span>',
                         '<hr />',
                         '<hr />',
                         '<table>$1</table>',
                         '<div align="center">$1</div>',
                         '<tr>$1</tr>',
                         '<td>$1</td>',
                         '<del>$1</del>',
                         '<pre>$1</pre>',
                         '<sup>$1</sup>',
                         '<sub>$1</sub>',
                         '<img border="0" src="$1" alt="$1"$1>',
                         '<img border="0" src="http://kasparovchess.crestbook.com/scripts/29x29/alpha29/grey/diagol.php?position=$1" alt="$1"$1>',
                         '<img border="0" src="http://mynuke.host.sk/29x29/diagol.php?position=$1" alt="$1"$1>',
                         '<img border="0" src="http://mynuke.host.sk/24/diagol.php?position=$1" alt="$1"$1>',
                         '<script language="javascript">tmp = fen2diag("$1"); document.write(tmp);</script>', //added
                         '<span style="background-color: #FFFF00; color: #000000">$1</span>');
  8. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Возьми фигурки и клетки отсюда
    Видимо, надо переименоваить как надо и сделать формат *.GIF
    И будет - большая диаграммка..
    Надо пробовать - фигурки красивые... :)
  9. ChessZone Роман Вилявин

    • Участник
    Рег.:
    21.02.2006
    Сообщения:
    829
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Харьков
    Оффлайн
    Ух, глаза режут диаграммки... Может на те что юзаем уже ("Alpha" кажется) можно заменить?
  10. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Кстати, - да... Совсем забыл: у PalView - отдельные Фигурки и клетки..
    Можно...
    Однако...
    Нет.. Технология другая... Клетки там как Фон, а нам нужен рисунок, например, Белая фигурка на тёмной клетке... Такого там нет, но...
    Пробовать надо...
  11. ChessZone Роман Вилявин

    • Участник
    Рег.:
    21.02.2006
    Сообщения:
    829
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Харьков
    Оффлайн
    Фигурки и клетки как отдельные рисунки в ChessBase есть. Неплохие вроде
  12. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    После ряда умных действий (по заявкам телезрителей) - получил-таки я Большую диаграммку м Большими фигурками...
    Пример смотрим - здесь

    То, что делал - секретно - не для глаз злоумышленников. Поделюсь только с krey :)
  13. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    показать новый мод скрипта? ;)
  14. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Фигурки забери по ссылке выше... (если надо)
    Что за мод?
    название?
    можно на официальный сайт послать ;)
  15. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    не открывается у меня почему-то ссылка...
    а вот он -
    Код:
    function fen2diag(fen, size)
    {
            var     result  = '<table border="1" class="nope" cellpadding="0" cellspacing="0"><tr><td nowrap>';
            var     LEN     = fen.length;
            var     i,
                    c       = 0,
                    count   = 0;
            var     currChar;
            var     path    = '<IMG SRC="img/19/';
            
            switch(size)
            {
            case 1:
                    path    = '<IMG SRC="img/21/'; break;
            case 2:
                    path    = '<IMG SRC="img/24/'; break;
            case 3:
                    path    = '<IMG SRC="img/29/'; break;
    /*        default:
                    path    = '<IMG SRC="img/19/';*/
            };
            
            var     control = 0, aux = "";
    
            for(i = 0; i < LEN; i++)
            {
                    currChar = fen.charAt(i);
                    if(currChar == ' ')
                            break;
                    else aux += currChar;
            }
            fen = aux;
            LEN     = fen.length;
    
            for(i = 0; i < LEN; i++)
            {
                    currChar = fen.charAt(i);
                    if(currChar > '0' && currChar < '9')
                            control +=parseInt(currChar);
                    else
                    {
                            switch (currChar) {
                            case 'K': case 'Q': case 'R': case 'B': case 'N': case 'P':
                            case 'k': case 'q': case 'r': case 'b': case 'n': case 'p':
                                      control++;
                                      break;
                            case '/':continue;
                            default:
                                    control +=100;
                           }
                           
                    }
            }
            if(control != 64)
            {
                    fen = "8/8/8/8/8/8/8/8";
                    LEN     = fen.length;
            }
    
            for(i = 0; i < LEN; i++)
            {
                    currChar = fen.charAt(i);
                    if(currChar > '0' && currChar < '9')
                    {
                            for(t = 0; t < parseInt(currChar); t++)
                            {
                                    result += path;
                                    count++;
                                    if( (count%2) == 0 )
                                    {
                                            result += 1;
                                    }
                                    else
                                    {
                                            result += 0;
                                    }
                                    result +='.GIF">';
                            }
                    }
                    else if(currChar == '/')
                    {
                            count++;
                            result += "<br />";
                    }
                    else if(currChar == ' ')
                    {
                            break;
                    }
                    else
                    {
                            count++;
                            if( count%2 == 0 )
                            {
                                    c = 1;
                            }
                            else
                            {
                                    c = 0;
                            }
                            result += path;
                            switch (currChar) {
                            case 'K': case 'Q': case 'R': case 'B': case 'N': case 'P':
                                      result += currChar + c;
                                      break;
                            case 'k': case 'q': case 'r': case 'b': case 'n': case 'p':
                                      result += currChar.toUpperCase() + (c + 2);
                                      break;
                           }
                            result += '.GIF">';
                    }
    
            }
            result += "</td></tr></table>\n";
            return result;
    }
  16. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Ссылку ещё раз попробуй
    Скрипт - понял...
    всё в одном...
    Я просто создал второй - аналогичный, но с другим названием, и папкой для фигурок (чтоб не путались)
    А как название тэга будет выглядеть? :)
  17. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    в будущем -
    Код:
    [fen=0]КАКОЙ_ТО_FEN[/fen]
    и вместо 0 можно будет писать 0, 1, 2, 3...
  18. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    У меня Вопрос...
    А выигрыш в Части Траффика при использовании Данного Скрипта, действительно будет БОЛЬШОЙ? :rolleyes:
    СтОит ли овчинка выделки?..
    А то слишком сложно всё получается: и с тэгами и с «огненными лисичками»
    Да, и vasa - не нравятся они :p
  19. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    vasa не нравится размер :)
    впрочем, если что, можно отказаться от этого скрипта в пользу диаграмм, просто добавить для них теги...
  20. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    выигрыш трафика... не знаю, если есть. но так можно страницы сохранять.
  21. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Фигурки стали 25 (увеличились)
    Это те же фигурки ?
    - увеличенные средством ХТМЛ-тэгов
    - переделаны в рисовательной программе
    т.е. не стандартные, а своя разработка?
    Смотрятся неплохо... :)
  22. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    вот это :)
  23. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Где Новые фигурки и клетки можно скачать? :)
    и ещё...
    В этом топике (он-лайн и тексты с Мемориала Таля) ужасно тормозит. Нигде больше подобного не наблюдается...
    Там именно сабжевые диаграммки (те, что обсуждаем здесь). Может скрипт, которая Ява, не справляется с обработкой большого количества диаграмм, кодов, запросов? Думается, что одно-цельные диаграммки загружались бы быстрее...
  24. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    ну не знаю... я могу переделать их быстро на одноцельные.
  25. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Переделывать не надо: надо - добавить! ;)
    Составные диаграммы - хороши для Этюдов, для отдельных позиций...
    Для он-лайном и анализов с обилием диаграммок - лучше - цельные (конечно, - Альфа :) )
  26. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    а фигурки предлагаешь качать по одной штучке?
    Выложи где-нибудь, пожалуйста, свой Эксклюзив :)
  27. vasa Опытный перворазрядник

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    35.296
    Симпатии:
    17.577
    Репутация:
    583
    Адрес:
    Ростов-на-Дону
    Оффлайн
    Только и категорично - альфа!
  28. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    А лучше - 2 (две ;))
    И назвать этих друзей:
    - 29 - по-крупнее,
    - 24 - по-мельче..

    То бишь сделать Тэги

    Код:
    [24]FEN[/24]
    
    [29]Drugoi_FEN[/29]
    НЕ заменять, а - добавить. На любителя...
  29. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Кстати, это - другая Тема, которая обсуждается - здесь
  30. Crest Админ, МГ

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    57.242
    Симпатии:
    21.128
    Репутация:
    627
    Адрес:
    Москва, Россия
    Оффлайн
    Блин, да что ж такое!
    Вчера у меня в онлайне все диаграммы нормально ставились - со стороны белых. А теперь такая ерунда получается - http://kasparovchess.crestbook.com/viewtopic.php?pid=37898#p37898
    Чертополох, перевертыши...
    Из одного и того же Бейза фены вытаскиваю, ничего не меняю. Стало быть это наши скрипты шалят?
  31. Tulean Учаcтник

    • Участник
    Рег.:
    03.07.2006
    Сообщения:
    577
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Я так понял, что если из ЧБ взять ФЕН позиции при ходе черных, то отобразится позиция со стороны черных.
    Для того, чтобы было со стороны белых, в ФЕНе надо исправить "b" на "w".
  32. Инсайдер Bruce Wayne

    • Участник
    • Старожил
    Рег.:
    11.02.2006
    Сообщения:
    700
    Симпатии:
    3
    Репутация:
    0
    Адрес:
    Gotham City
    Оффлайн
    Отлично фен-диаграммы получились. А нельзя вместо двойного тэга {fen}{/fen} сделать одиночный [d]? Три знака - намного короче одиннадцати!
  33. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    это уже давно есть :) я писал - эквивалент - fen и fenb
    не надо экономить на знаках! ;)
    если честно, я лучше кнопку приделаю. ок?
  34. vasa Опытный перворазрядник

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    35.296
    Симпатии:
    17.577
    Репутация:
    583
    Адрес:
    Ростов-на-Дону
    Оффлайн
    Ловим на слове! :p
    Ок!
  35. Antuan moderator

    • Команда форума
    Рег.:
    24.02.2006
    Сообщения:
    6.316
    Симпатии:
    2.551
    Репутация:
    283
    Адрес:
    Estonia
    Оффлайн
    Да, увидел в Других темах: всё расбросано...
    Нормально, пойдёт.. Будет Ассоциировать, что FENB - это FENБольшой

    С одиночной буквой может и не получиться: всё надо делать по подобию с уже существующей Дюжиной Тэгов...

    Проверка Кнопаря [​IMG]


    Позиция из моей старой партии: искал выигрыш за Белых (с ничьёй в кармане) :)

    Кнопка Работает без Ошибок...

    Хорошая работа... (не кнопки, а ВэбМастера ;))

Поделиться этой страницей