Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / HTML, JavaScript, VBScript, CSS Новый топик    Ответить
 Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Шахматы в 1 кБ на JS. Это реально.

Я в начале не поверил.
Потом посмотрел код. - Реально.
5 окт 20, 04:04    [22208877]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
автор

<canvas id="c"></canvas>
<script>for(B=i=y=u=b=i=5-5,x=10,I=[],l=[];l[B]="ECDFBDCEAAAAAAAAIIIIIIIIMKLNJLKM@G@TSb~?A6J57IKJT576,+-48HLSUmgukgg OJNMLK IDHGFE".charCodeAt(B)-64,B++<120;I[B-1]=B%x?B/x%x<2|B%x<2?7:B/x&4?0:l[i++]:7);function X(c,h,e,s){c^=8;for(var o,S,C,A,R,T,G,d=e&&X(c,0)>1e4,n,N=-1e8,O=20;++O<99;)if((o=I[T=O])&&(G=o^c)<7){A=G--&2?8:4;C=o-9?l[61+G]:49;do if(!(R=I[T+=l[C]])&&!!G|A<3||(R+1^c)>9&&G|A>2){if(!(R-2&7))return 78-h<<x;n=G|(c?T>29:T<91)?o:6^c;S=(R&&l[R&7|32]*2-h-G)+(G?0:n-o?110:(A<2)+1);if(e>h||1<e&e==h&&S>2|d){I[T]=n;I[O]=0;S-=X(c,h+1,e,S-N);if(!(h||e-1|B-O|T-b|S<-1e4))return W(),c&&setTimeout("X(8,0,2),X(8,0,1)",50);I[O]=o;I[T]=R}if(S>N||!h&S==N&&Math.random()<.5)if(N=S,e>1)if(h?s-S<0:(B=O,b=T,0))return N}while(!R&G>2||(T=O,(G||A>2|(c?O>78:O<41)&!R)&&++C*--A))}return N}function W(){i="<table>";for(u=18;u<98;document.body.innerHTML=i+=++u%x-9?"<th width=60 height=60 onclick='I[b="+u+"]>8?W():X(0,0,1)'style='font-size:50px'bgcolor=#"+(u-B?u*.9&1||9:"d")+"0f0e0>&#"+(I[u]?9808+l[67+I[u]]:160)+";":u++&&"<tr>")B=b}W()</script>

5 окт 20, 04:05    [22208878]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Пока разобрался, что вся шахматная доска формируется циклом, в котором меняется 1 цифра в цвете клетки и прорисовываются шахматные фигуры из Юнкода.

function W()

Занимает приблизительно - одну четвёртую кода
5 окт 20, 04:49    [22208879]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
При нажатии происходит:

I[b=21]>8?W():X(0,0,1)

I[b=22]>8?W():X(0,0,1)

и тд.
5 окт 20, 04:59    [22208880]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
ECDFBDCEAAAAAAAAIIIIIIIIMKLNJLKM - это разметка фигур со сдвигом их по табличке символов до шахматных знаков
5 окт 20, 06:55    [22208882]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
https://nanochess.org/chess4.html
5 окт 20, 07:16    [22208884]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Шахматный пакет Toledo Javascript. 10 мая 2013 г.
Оскар Толедо Г. biyubi@gmail.com
(c) Авторские права 2009-2013 Оскар Толедо Г.

Этот пакет содержит следующие файлы:

toledo_javascript_chess_3.html
Toledo Javascript Chess, используя только Unicode
графика для отображения фигур. 2299 байт.

toledo_javascript_chess_1.html
Toledo Javascript Chess, используя только буквы для
отображение частей. 2159 байт.

toledo_javascript_chess_2.html
Toledo Javascript Chess, используя графику для
экспонаты. 3130 байт.

0.gif Пустой квадрат
1.gif Черная пешка
2.gif Черный король
3.gif Черный рыцарь
4.gif Черный слон
5.gif Черная ладья
6.gif Черная королева
9.gif Белая пешка
10.gif Белый король
11.gif Белый рыцарь
12.gif Белый слон
13.gif Белая ладья
14.gif Белая королева
Части GIF могут быть размером до 40x40 пикселей.
(в настоящее время 8x8 для экономии места)

tiny_chess_1.html
Крошечные шахматы (1023 байта Javascript!)

Программа отправлена ​​на конкурс JS1K, заняла 2 место!
Проверьте это на:
http://js1k.com/
http://js1k.com/demo/750/

Играйте в шахматы против компьютера по акции только ферзь
и без рокировки и без прохода.

Щелкните исходный квадрат, а затем целевой квадрат для перемещения
кусок, это будет подтверждать ходы.

Использует графику Unicode для шахматных фигур.

tiny_chess_2.html
Та же программа, но с рокировкой и на проходе, только
использует 1251 байт Javascript !.

readme.txt
Этот файл.

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

Посетите http://www.nanochess.org для получения дополнительной информации и других
интересные биты.
5 окт 20, 07:28    [22208887]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Расшифровка кода есть. Но насколько я понял - в его книге. А книгу он продаёт.
5 окт 20, 07:46    [22208891]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
&#"+(I[u]?9808+l[67+I[u]]:160)

- это то что будет изображено в клетке
Если I[u] не существует - то будет неразрывный пробел.
Если I[u] существует 9808+l[67+I[u]]
5 окт 20, 08:40    [22208898]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
Alibek B.
Member

Откуда:
Сообщений: 3724
Непонятно возбуждение.
В демо-сценах есть и более впечатляющие примеры.
Например kkrieger.
5 окт 20, 09:22    [22208908]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Alibek B.,

у вас есть описание кода? Алгоритм. Я не нашёл.
Ковыряю потихоньку код. Делюсь
Что не так? Любите стрелялки? - Я не против

Сообщение было отредактировано: 5 окт 20, 16:04
5 окт 20, 16:05    [22209168]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Разочарование...
Это как фокус...
Я частично разобрался в коде... - Не получил никаких новых знаний.
5 окт 20, 19:04    [22209241]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18326
miltorg
Это как фокус...
Я частично разобрался в коде... - Не получил никаких новых знаний.
поделись в чем фокус
5 окт 20, 19:24    [22209244]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
вадя,

Ну например вместо простого массива - пишется цикл.

for (
B = i = y = u = b = i = 5 - 5, x = 10, I = [], l = [];
l[B] = "ECDFBDCEAAAAAAAAIIIIIIIIMKLNJLKM@G@TSb~?A6J57IKJT576,+-48HLSUmgukgg OJNMLK IDHGFE".charCodeAt(B) - 64, B++ < 120;
I[B - 1] = B % x ? B / x % x < 2 | B % x < 2 ? 7 : B / x & 4 ? 0 : l[i++] : 7
);

вместо:

l= [5,3,4,6,2,4,3,5,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,13,
11,12,14,10,12,11,13,0,7,0,20,19,34,62,-1,1,-10,10,-11,-9,9,11,10,20,-11,-9,-10,-20,-21,-19,-12,-8,8,12,19,21,45,39,53,43,39,39,-32,15,10,14,13,12,11,-32,-32,9,4,8,7,6,5,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,
NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,
NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN];

I = [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,5,3,4,6,2,4,3,5,7,7,1,1,1,1,
1,1,1,1,7,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,7,7,0,0,
0,0,0,0,0,0,7,7,9,9,9,9,9,9,9,9,7,7,13,11,12,14,10,12,11,13,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7];

Сообщение было отредактировано: 5 окт 20, 19:47
5 окт 20, 19:50    [22209255]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Там таких фокусов - очень много. То есть код искусственно искажается чтоб получить минимальный размер.
5 окт 20, 19:53    [22209257]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18326
miltorg,

ну с построением, это не сложно, это я разобрался
я не нашел как обрабатываются события
5 окт 20, 20:09    [22209262]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
вадя,

Я ведь писал:

автор
При нажатии происходит:

I[b=21]>8?W():X(0,0,1)

I[b=22]>8?W():X(0,0,1)

и тд.
5 окт 20, 20:10    [22209263]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18326
miltorg,

гы !
в элементах поленился развернуть таблицу
5 окт 20, 20:16    [22209264]     Ответить | Цитировать Сообщить модератору
 Re: Шахматы в 1 кБ на JS. Это реально.  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Для тех кто говорит что во всём разобрался.
Как изменить код чтоб ходили только белые? А черные - не двигались.
5 окт 20, 20:21    [22209267]     Ответить | Цитировать Сообщить модератору
Все форумы / HTML, JavaScript, VBScript, CSS Ответить