НачалоТостер

5K Шахматишки

Д. К.
08 МАЙ 04:34  Preobragenskiy
Жирный у Дугласа исходник. Вот сутреца навоял, 2290 байт. Минимакс 3 полухода. Баги нужно еще конешо пофиксить, но уже завтра наверно. <SCRIPT> var m=0,a,b,d="lksfwsklpppppppp PPPPPPPPLKSFWSKL"; function C(x,y){ if(m==0){a=x;b=y;m=1;} else if(m==1){e=B(1,d);n=S(y*8+x,G(b*8+a,d),d);n=S(b*8+a," ",n); for(i=0;i<e.length;i++)if(e[i]==n){R();d=N(n,0,0);R();break;}m=0;}} function W(s){document.write(s);} function G(x,n){return n.substr(x,1)} function S(x,s,n){return n.substr(0,x)+s+n.substr(x+1)} function R(){for(var y=0;y<8;y++)for(var x=0;x<8;x++)D.rows[y].cells[x].innerText=G(y*8+x,d);} W("<TABLE id=D>");for(var y=0;y<8;y++){W("<TR>");for(var x=0;x<8;x++)W("<TD onclick='C("+x+","+y+");' align=center valign=middle style='width:20px;height:20px;background-color:" + (((x%2==1&&y%2==0)||(x%2==0&&y%2==1))?"Gray":"White") + "'>"+G(y*8+x,d)+"</TD>");W("</TR>");}W("</TABLE>"); function T(c){return c.toLowerCase()} function L(c){return T(c)==c&&c!=""} function M(a,b,t,n,e,i,j){c=G(b,n); if((c==" "&&i!=1)||((!t&&!L(c))||(t&&L(c))&&j!=1)){ r=G(b,n);n=S(b,G(a,n),n);n=S(a," ",n);e[e.length]=n;return r==" ";}return 0;} function Z(x,z,t,n,e,o){for(var i=0;i<z.length;i++){y=x;while(M(x,y+=z[i],t,n,e)&&o!=1);}} function H(t,n){e=B(t==0?1:0,n,1);for(i=0;i<e.length;i++)if(e[i].indexOf(t==0?"w":"W")==-1)return 1;return 0;} function B(t,n,p){var e=new Array();l=new Array(8,-8,1,-1);s=new Array(-9,-7,9,7);k=new Array(-17,-15,-6,-10,17,15,6,10); for(var x=0;x<64;x++){c=G(x,n);g=L(c);if((g&&!t)||(!g&&t))if(T(c)=="p"){u=L(c)?1:-1;j=x+8*u; if(M(x,j,t,n,e,0,1))if((!t&&x>7&&x<16)||(t&&x>47&&x<56))M(x,x+16*u,t,n,e,0,1);M(x,j+1,t,n,e,1);M(x,j-1,t,n,e,1);} else if(T(c)=="k")Z(x,k,t,n,e,1);else if(T(c)=="s")Z(x,s,t,n,e);else if(T(c)=="l")Z(x,l,t,n,e); else if(T(c)=="f"){Z(x,s,t,n,e);Z(x,l,t,n,e);}else if(T(c)=="w"){Z(x,s,t,n,e,1);Z(x,l,t,n,e,1);}} if(p!=1){v=0;q=new Array();for(var z=0;z<e.length;z++)if(!H(t,e[z])) q[v++]=e[z];e=q;}return e;} var h=new Array();h["p"]=1;h["k"]=3;h["s"]=3;h["l"]=5;h["f"]=9;h["w"]=100; function I(v,t){x=0;l=(t==1?0:1000);for(i=0;i<v.length;i++)if((t==0&&v[i]>l)||(t==1&&v[i]<l)){l=v[i];x=i;}return x;} function N(n,u,t){if(u<1){e=B(t,n);if(e.length>0){v=new Array();for(i=0;i<e.length;i++)v[i]=N(e[i],u+1,t==0?1:0);return (u?v[I(v,t)]:e[I(v,t)]);}}r=100;for(x=0;x<64;x++){c=G(x,n);if(c!=" ")r+=h[T(c)]*(L(c)?1:-1)};return r;} </SCRIPT> Короче Украина Чемпион :-D
17 ДЕК 14:02  Igor
ходит она одинаково. вот можно воспроизвести победу над ним. указываю ходы только для белых - для прикола - дважды прошло: 1. e4 2. e5 3. d4 4. K f3 5. K b-d2 6. S d2 7. S b5 8. D f3 9. 0-0 10. S d7 11. D d5 12. D d4 13. D a7 14. D b7 15. L a-c1 16. D c8 - мат ;)
15 АВГ 16:20  Sergei
Блин когда windows будет хотя бы 10k
15 АВГ 16:13  редакция Тостера
Но-но, мы тоже способны обыграть 5КБ JavaScript-а. Впрочем, разница между людьми все же есть, слава Богу.
15 АВГ 15:45  Денис
Насчет детского мата - не знаю. Достаточно стабильно ходит d5. Кстати, пара ходов у него вообще была на грани гениальности. Но что странно, 5КБ JavaScript-а способны обыграть редакцию Тостера и половину моих сотрудников, а Deep Blue с ее наворотами Каспарова еле одолела. Значит, есть между людьми разница. И очень большая.
15 АВГ 15:16  ser_g
Не знаю, не знаю... десткий мат он получил с первого раза, я-то поиграть рассчитывал... на второй раз игра затянулась, и он действительно съел королем :(
15 АВГ 05:07  Nick Nick
Нуууу... Слабовата, слабовата машинка... ;-) 1100 Максимум дам.. то есть твёрдый 4й разряд. Поздравляю ;)) ЗЫ: - сам правда я 1й , с баллом кмс, но это так, к слову..
14 АВГ 13:39  Play'
Помнится, на древнем компьютере 8088 тоже были шахматы в пять килобайт, но, конечно, не на JavaScript:) Графика, кстати, там была получше...
14 АВГ 11:53  rosenbom
И всё-таки, программка глючит... 100% выяснено, что ест защищённую фигуру королём, т.е. обрекая оного на верную смерть :)
14 АВГ 09:53  Евгений
Снусмумрик, да, действительно, попадает. Я, кстати, почитал отзывы на их сайте, оказалось, что шахматы - это просто избитая тема, каждый год есть пара таких участников. Поэтому никакого места и не дали. Но в этом году решена задача ооочень здорово! У меня ни разу ошибок не было.
13 АВГ 13:57  McV
Но какой же тугой! Двадцатую минуту на восьмсотом пне думает.. И кажется надолго. Впрочем, еще не вечер :))
13 АВГ 12:05  Снусмумрик
Евгений, вы не правы. Всё вместе занимает 5088 байт. Максим, это странно -- я играю уже несколько дней, и ни разу ничего подобного не было.
13 АВГ 11:36  Максим
Это нечестные шахматы! Компьютер часто игнорирует себе мат. Либо ходит, как будто ему нет шаха, или съедает фигуру, которая ему мат поставила. Впрочем, на второй ход он может, из вежливости, уйти от вчерашнего шаха. :)
13 АВГ 11:21  Евгений
Обалденная игра! Почему ее до сих пор нет в мобильных телефонах? У меня, например, туда IE всунут, почему бы и шахматишки не впихнуть? Кстати, по-моему, он не стал победителем, т.к. чуть-чуть не уложился в 5К. Или я ошибаюсь?

К статье
Copyright  ©  2001—2002 «Тостер»