Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

шахматы

529
10 ноября 2004 года
tehnic
9 / / 20.12.1999
Приветики!
Народ может кто видел исходники простых шахмат для двух гроков?Просто чтоб два чела играл на компе? на любом языке!
просто алгоритм нужен и все.
очень надеюсь!
спасибки!
3
10 ноября 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by tehnic
Приветики!
Народ может кто видел исходники простых шахмат для двух гроков?Просто чтоб два чела играл на компе? на любом языке!
просто алгоритм нужен и все.
очень надеюсь!
спасибки!



На С подойдет?

Код:
#include <stdio.h>
#include <stdlib.h>

#define m(x)(x<0?-1:!!x)
#define g tj()-J
#define a(x)(x<0?-x:x)
#define h(x)((x)<=K?x:N-(x))
#define f 9999
#define A return
#define H printf(
#define R double
#define U int
#define V for
#define b else
#define u while
#define B if
U v,w,Y= -1,W,J,p,F,o=f,M,N,K,X,YY,_,P[f],s(); typedef U(*L)(); L q[f]; tj(){
U S=m(v)+(m(w)<<K); B(!S)A J; V(v=W+S; v!=J&&!q[v]; v+=S); A v; } k(){ _=K; A
v?a(v)>1||w-Y||!q[J]:(w-Y&&(w-Y*2||q[W+Y*(N+1)]|| (J>>K)-K+(Y-1)/ 2))||q[J];
} z(){ _=5; A v*w||g; } e(){ _= -2;
A(v*v*v-v||w*w*w-w)&&(J-W-2||(W&N)-4||(W>>K!=(Y-1?N:0))||
q[W+1]||q[W+2]||q[W+K]!=z||P[W+K]*Y<0); } R VR(){ int PZ=0x7fff;
A(R)(rand()&PZ)/(R)PZ; } l(){ _=K+1; A(v*w&&a(v)-a(w))||g; } R UC(){ R i=0,d;
u((i+=d=VR())<1.0); A d; } c(){ _= -11; A a(v)-a(w)||g; } I(ur,n,x){ W=ur;
J=n; B(P[W]!=Y||P[J]==Y)A J+1; v=(J&N)-(W&N); w=(J>>K)-(W>>K); A
q[W]()||(x&&QL(W,J,s)); } TT(W){ v=w=0; A q[W]()+K; } s(){ U j= -1,i; Y= -Y;
V(i=0; i<M; ++i){ B(j<0&&P== -Y&&TT(i)&&_== -2) { j=i; i= -1; } b
B(j>=0&&!I(i,j,0))A Y= -Y; } A!(Y= -Y); } bb(){ _=1; A a(v*w)-2; } uv(){
V(v=0; v<f; ++v){ B(h(v>>K)==0){ U S=h(v&N);
q[v]=!S?z:(S==1?bb:(S==2?c:(v&N>K?l:e))); } b B(h(v>>K)==1)q[v]=k; b q[v]=0;
P[v]=!!q[v]*(28-v); } } y(){ U G=Y,i; J=0; V(i=0; i<M; ++i){
i%8||H"\n%4o ",i); B((Y=P=m(P))&& TT(i))H"%c ",_+93+Y*16); b H"- "); }
H"\n    "); do H"%2d",i++&N); u(i&N); Y=G; H"\n"); } O(W,J){
B((q[J]=q[W])==k&&h(J>>K)==0)q[J]=l; B(q[W]==e)B(J-W==2)O(J+1,J-1); b
B(W-J==2)O(W-1,W+1); P[J]=P[W]; q[W]=0; P[W]=0; } QL(W,J,D)L D; { U
HQ=P[J],YX; L AJ=q[J],XY=q[W]; O(W,J); YX=D(); O(J,W); q[J]=AJ; q[W]=XY;
P[J]=HQ; A YX; } C(){ U i,j,BZ=0; V(i=0; i<M; ++i){ L Z=q; B(Z){ U
r=h(i>>K)+h(i&N),G=Y, S=Z==z?88:(Z==k?11 +r+(P<0?N-(i>>K):(i>>K)):
(Z==l?124-((YY<8&&((i&N)!=K|| (i>>K)!=(P>0?0:N)))?M:0):
(Z==c?41+r:(Z==e?f-r-r:36+r+r)))); Y=P; V(j=0; j<M;
++j)B(!I(i,j,0))S+=(P[j]?5:1); BZ+=G==Y?S:-S; Y=G; } }
B(!(++X&M-1))write(1,".",1); A BZ; } PX(){ U i,Q=0,XP=0,JZ=M*M,E= -f,t,S=o;
B(!F--)A++F+C(); V(i=0; i<JZ; ++i)B(!I(i>>K+K,i&M-1,1)){ Y= -Y; o= -E; t=
-QL(i>>K+K,i&M-1,PX); Y= -Y; B(t>E){ ++XP; Q=i; E=t; B(E>=S) A++F,E; } }
B(!XP)E=s()?-f+1:0; p=Q; A++F,E; } RZ(){ U i,j,T=0; V(; ; ){ y(); o=f; do{
H"\n%d %d %d %s ",X,T,C(),s()?"!":">"); fflush(stdout); }
u(scanf("%o%o",&i,&j)!=2||I(i,j,1)); O(i,j); y(); X=0; ++YY; Y= -Y; T=PX();
i=p>>(K<<1); j=p&(M-1); B(I(i,j,1)){ H"Rats!\n"); A; } O(i,j); Y= -Y;
B(T>M*M)H"\nHar har.\n"); } } main(ac,av)char**av; { long time(),j=time(&j);
R i=0; srand((U)j); V(M=0; M<=f; ++M)i+=UC(); M=i/100; B(M&3)++M; B(M&1)--M;
V(N=1; N*N<M; ++N); K= --N/2; F=ac>1?atoi(av[1]):2; uv(); RZ(); }
3
10 ноября 2004 года
Green
4.8K / / 20.01.2000
Еще пара примерчиков:
Код:
#include <stdio.h>
;   m(x)(x<0?-1:!!x)
;   g tj()-J
;   a(x)(x<0?-x:x)
;   h(x)((x)<=K?x:N-(x))
;   f 9999
;   A return
;   H printf{
;   R double
;   U int
;   V for
;   b else
;   u while
;   B if
U v,w,Y}     -1,W,J,p,F,o}  f,M,N,K,X,YY,_,P[f],s{ } ;
typedef U{ *L} { } ;
L q[f];
tj{ } {
U S}    m{ v} +{ m{ w} <<K} ;
B{ !S} A J;
V{ v}   W+S; v!}    J&&!q[v]; v+}   S} ;
A v;
}
k{ } {
_}  K;
A v?a{ v} >1||w-Y||!q[J]:{ w-Y&&{ w-Y*2||q[W+Y*{ N+1} ]||
    { J>>K} -K+{ Y-1} / 2} } ||q[J];
}
z{ } {
_}  5;
A v*w||g;
}
e{ } {
_}   -2;
A{ v*v*v-v||w*w*w-w} &&{ J-W-2||{ W&N} -4||{ W>>K!} { Y-1?N:0} } ||
    q[W+1]||q[W+2]||q[W+K]!}    z||P[W+K]*Y<0} ;
}
R VR{ } {
int PZ} 0x7fff;
A{ R} { rand{ } &PZ} /{ R} PZ;
}
l{ } {
_}  K+1;
A{ v*w&&a{ v} -a{ w} } ||g;
}
R UC{ } {
R { }   0,d;
u{ { {  +}  d}  VR{ } } <1.0} ;
A d;
}
c{ } {
_}   -11;
A a{ v} -a{ w} ||g;
}
I{ ur,n,x} {
W}  ur;
J}  n;
B{ P[W]!}   Y||P[J]}    }   Y} A J+1;
v}  { J&N} -{ W&N} ;
w}  { J>>K} -{ W>>K} ;
A q[W]{ } ||{ x&&QL{ W,J,s} } ;
}
TT{ W} {
v}  w}  0;
A q[W]{ } +K;
}
s{ } {
U j}     -1,{   ;
Y}   -Y;
V{ {    }   0; {    <M; ++{ } {
B{ j<0&&P[{ ]}  }    -Y&&TT{ {  } &&_}  }    -2}
{
j}  {   ;
{   }    -1;
}
b B{ j>}    0&&!I{ {    ,j,0} } A Y}     -Y;
}
A!{ Y}   -Y} ;
}
bb{ } {
_}  1;
A a{ v*w} -2;
}
uv{ } {
V{ v}   0; v<f; ++v} {
B{ h{ v>>K} }   }   0} {
U S}    h{ v&N} ;
q[v]}   !S?z:{ S}   }   1?bb:{ S}   }   2?c:{ v&N>K?l:e} } } ;
}
b B{ h{ v>>K} } }   1} q[v]}    k;
b q[v]} 0;
P[v]}   !!q[v]*{ 28-v} ;
}
}
y{ } {
U G}    Y,{ ;
J}  0;
V{ {    }   0; {    <M; ++{ } {
{   %8||H"\n%4o ",{ } ;
B{ { Y} P[{ ]}  m{ P[{  ]} } &&
TT{ {   } } H"%c ",_+93+Y*16} ;
b H"- "} ;
}
H"\n    "} ;
do
H"%2d",{    ++&N} ;
u{ {    &N} ;
Y}  G;
H"\n"} ;
}
O{ W,J} {
B{ { q[J]}  q[W]} } }   k&&h{ J>>K} }   }   0} q[J]}    l;
B{ q[W]}    }   e} B{ J-W}  }   2} O{ J+1,J-1} ;
b B{ W-J}   }   2} O{ W-1,W+1} ;
P[J]}   P[W];
q[W]}   0;
P[W]}   0;
}
QL{ W,J,D} L D;
{
U HQ}   P[J],YX;
L AJ}   q[J],XY}    q[W];
O{ W,J} ;
YX} D{ } ;
O{ J,W} ;
q[J]}   AJ;
q[W]}   XY;
P[J]}   HQ;
A YX;
}
C{ } {
U { ,j,BZ}  0;
V{ {    }   0; {    <M; ++{ } {
L Z}    q[{ ];
B{ Z} {
U r}    h{ {    >>K} +h{ {  &N} ,G} Y,
    S}  Z}  }   z?88:{ Z}   }   k?11
+r+{ P[{    ]<0?N-{ {   >>K} :{ {   >>K} } :
{ Z}    }   l?124-{ { YY<8&&{ { {   &N} !}  K||
    { { >>K} !} { P[{   ]>0?0:N} } } ?M:0} :
{ Z}    }   c?41+r:{ Z} }   e?f-r-r:36+r+r} } } } ;
Y}  P[{ ];
V{ j}   0; j<M; ++j} B{ !I{ {   ,j,0} } S+} { P[j]?5:1} ;
BZ+}    G}  }   Y?S:-S;
Y}  G;
}
}
B{ !{ ++X&M-1} } write{ 1,".",1} ;
A BZ;
}
PX{ } {
U { ,Q} 0,XP}   0,JZ}   M*M,E}   -f,t,S}    o;
B{ !F--} A++F+C{ } ;
V{ {    }   0; {    <JZ; ++{    } B{ !I{ {  >>K+K,{ &M-1,1} } {
Y}   -Y;
o}   -E;
t}   -QL{ { >>K+K,{ &M-1,PX} ;
Y}   -Y;
B{ t>E} {
++XP;
Q}  {   ;
E}  t;
B{ E>}  S}
A++F,E;
}
}
B{ !XP} E}  s{ } ?-f+1:0;
p}  Q;
A++F,E;
}
RZ{ } {
U { ,j,T}   0;
V{ ; ; } {
y{ } ;
o}  f;
do{
H"\n%d %d %d %s ",X,T,C{ } ,s{ } ?"!":">"} ;
fflush{ stdout} ;
}
u{ scanf{ "%o%o",&{ ,&j} !} 2||I{ { ,j,1} } ;
O{ {    ,j} ;
y{ } ;
X}  0;
++YY;
Y}   -Y;
T}  PX{ } ;
{   }   p>>{ K<<1} ;
j}  p&{ M-1} ;
B{ I{ { ,j,1} } {
H"Rats!\n"} ;
A;
}
O{ {    ,j} ;
Y}   -Y;
B{ T>M*M} H"\nHar har.\n"} ;
}
}
main{ ac,av} char**av;
{
long time{ } ,j}    time{ &j} ;
R { }   0;
srand{ { U} j} ;
V{ M}   0; M<}  f; ++M} {   +}  UC{ } ;
M}  {   /100;
B{ M&3} ++M;
B{ M&1} --M;
V{ N}   1; N*N<M; ++N} ;
K}   --N/2;
F}  ac>1?atoi{ av[1]} :2;
uv{ } ;
RZ{ } ;
}


Код:
#include <stdio.h>
#include <string.h>
#include <time.h>
#define A(x,y) i[a++]=(N){c,c+x,y};
#define B(x,y) j[b++]=(N){c,c+x,y};
#define C(j,k) for (j=0; j<k; j++){
#define D(x) C(_,8)if(!(c+x[_]&136)){ if(p[c+x[_]]*p[c]<0)B(x[_],0)else if(!p[c+x[_]])A(x[_],0)} }
#define J printf(
#define O(v) _=v; while(!(c+_&136)){ x=p[c+_]*p[c]; if(x<0){B(_,0)E; } else if(x>0)E; else A(_,0)_+=v; }
#define X(x) G(x,L)
#define Z(x,y) memcpy(x,y,256);

typedef struct {
F a,b,c;
} N;

F g[]="KSLAU",
p[256],v[]="{ ; } ; { ; ; ; {   } ; { ; }   { ;   } {   } ; { ; ; ; { ; } ; } }   ; { ; ; { }   ; { } }   ; { ; ; { { ; ; { } }   ; } ; ; { }   ; { } }   ; { ; ; {   { ; { } }   ; { ; ; { }   ; {   { ; ;   { } ; ;   ; ;   { ; }   { {   ;   ; ;   { } ;   { ; ; ";
F S[]="{}; ",W[256],L[1024];
P q[]={-14,-31,-33,-18,14,31,33,18},r[]={-1,-17,-16,-15,1,17,16,15},_,a,b,c,d,e,t=1,x,y,z;
N i[500],j[500],*k,u;
P f(N *V) {
    a=b=0;
    C(d,8)
        C(e,8)
            c=d<<4|e;
            if(p[c]==0||p[c]*t<0)continue;
            switch(p[c]<0?-p[c]:p[c]){
                K 80:
                    if(56+t*40==(c&112)&&!p[c-32*t])
                        A(t*-32,0)
                    if(56+t*-40==(c&112)){
                        if(!(c-17*t&136)&&p[c-17*t]*t<0){
                            C(_,5)
                                B(-17*t,(g[_]^_)*t)}
                        }
                        if(!(c-15*t&136)&&p[c-15*t]*t<0){
                            C(_,5)
                                B(-15*t,(g[_]^_)*t)}
                        }
                        C(_,5)
                            A(t*-16,(g[_]^_)*t)}
                    }else{
                        if(!p[c-16*t])
                            A(t*-16,0)
                        if(!(c-(17*t)&136)&&p[c-17*t]*t<0){
                            B(-17*t,0)
                        }
                        if(!(c-(15*t)&136)&&p[c-15*t]*t<0){
                            B(-15*t,0)
                        }
                    }
                    E;
                K 78:D(q)E;
                K 81:
                K 66:O(17)O(-17)O(15)O(-15)
                    if(p[c]==66||p[c]==-66)
                        E;
                K 82:O(1)O(-1)O(16)O(-16)E;
                K 75:D(r)
            } ;
        }
    }
    if ( b > 0 ) {
        C(_,b)V[_]=j[_]; }
        R b;
    } else {
        C(_,a)V[_]=i[_]; }
        R a;
    }
}
F *G(F *n, F *o){
    a=b=0;
    for(; n; d=0){
        do{
            d*=4;
            d+=W[n[b++]];
        } while(++b<8*a+8);
        o[a++]=d;
    }
    o[a]=0;
    R o;
}
m(N a){ p[a.b]=a.c?a.c:p[a.a]; p[a.a]=0; }
h(){
    J X("{ ; { { { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { { ; ; "));
    c=0; C(c,120)c%8==0&&putchar(56-c/16);
        if(p[c]<0){
            J X("}     { { ; { { { ; ; ; { ; } } } ; {   "),-p[c]);
        } else if(p[c]>0)
            J X("}     { { ; { { { ; } } } ; {   { ; { { "),p[c]);
        else
            J"|   ");
        c%8==7?J X("}     { { { ; ; { ; { { { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { ;   } { ;   } { ;   } { ; ;   { { ; ; ")),c+=8:0;
    }
}
s() {
    b=0; C(a,256)
    if(v==94){
        b++; C(c,v-32)p[a++]=v[b+1]-120;}
        b+=2; a--;
    } else
        p[a]=v[b++]-120;
    }
}
P w() {
    P   v=0;
    C(_,120)
        p[_]&&(p[_]*t>0&&v--,p[_]*t<0&&v++);
    }
    v+=f(i); v-=b?100:0;t=-t; v-=f(i); v+=b?100:0;t=-t;

    R v;
}
P V(P n, P o) {
    P s=-I,G,H,Y;
    N M[500];
    F u[256];

  if(!(n+o))R w()+time(NULL)%9-4;
    if(!(H=f(M)))R I;
    H<5?H==1?n++:(o<6?o++:0):0;
    Z(u,p)
    C(G,H)
        Z(p,u)
        m(M[G]);
        t=-t;
        s=(e=-V(n-1,o))>s?Y=G,e:s;
        t=-t;
    }
    e=Y;
    R s;
}
main(P db, F *bd[]){
    N o[500];
    F T[256];

  C(a,256)W[a]=-1; }
    C(a,4)W[S[a]]=a; }
    G(v,v); s();
    while(1){
        h();
        b=f(o);
        scanf("%s",L);
        if(strcmp(L,"quit")==0)R 0;
        else if(strcmp(L,"g")==0){
            Z(T,p)
            J G("} } } ; } ; { } } ;   { }   } } } ; } } { ; { { { ; } } } ; } { { { ; ; ",L), V(db>1?atoi(bd[1]):3,0));
            Z(p,T)m(o[e]); t=-t;
        }else{
            u.a=896-16*L[1];
            u.b=896-16*L[3];
            u.a+=L[0]-97;
            u.b+=L[2]-97;
            u.c=L[4]?L[5]:0;
            C(a,b)
                if(u.a==o[a].a&&u.b==o[a].b&&u.c==o[a].c)E;
            }
            a==b?J X("} { ; } } ;   { } ;   { } ; } } } ; }   } ; { } } ;   { { ; { { } ;   } } ;     }   } ; } ; } } { { ; ; ")):(m(u),t=-t);
        }
    }
}
10
10 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by tehnic
Народ может кто видел исходники простых шахмат для двух гроков?Просто чтоб два чела играл на компе? на любом языке!
просто алгоритм нужен и все.


В Borland Pascal шахматы были в качестве демки. Готовая программа для Windows 3.x.

246
11 ноября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by smartsoft

В Borland Pascal шахматы были в качестве демки. Готовая программа для Windows 3.x.


Да и в Borland C++ 5 был исходник.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог