aaa.cpp
#include
#include"LOU.h"
using namespace std;
int main()
{
LOU m(1,0);
while(1)
m.gl();
return 0;
}
ceng.cpp
#include
#include"CENG.h"
#include
#include
#include"REN.h"
#include
CENG::CENG()
{
z=0;
up=0;
down=0;
}
void CENG::xj()
{
p=new REN;
q=p;
p->next=NULL;
}
void CENG::sc()
{
int a;
srand(time(NULL));
a=rand()%10;
if(a!=0)
{
t=new REN;
t->next=NULL;
p->next=t;
p=p->next;
}
cout< getch();
}
void CENG::sb()
{
p=q->next;
while(p!=NULL)
{
if(p->outqu()>z)
p->disn(1);
else
p->disn(2);
p=p->next;
}
cout< getch();
}
void CENG::tj()
{
p=q->next;
while(p!=NULL)
{
if(p->outn()==1)
up++;
else
if(p->outn()==2)
down++;
p=p->next;
}
cout< getch();
}
void CENG::sj(int a)
{
z=a;
}
int CENG::outup()
{
return up;
}
int CENG::xs1()
{
return z;
}
int CENG::xs2()
{
int a=0;
p=q->next;
while(p!=NULL)
{
if(p->outqu()>a)
a=p->outqu();
p=p->next;
}
return a;
}
int CENG::xs3()
{
int a=0;
p=q->next;
while(p!=NULL)
{
if(p->outqu() a=p->outqu();
p=p->next;
}
return a;
}
void CENG::disup()
{
p=q->next;
while(p!=NULL)
{
if(p->outn()==1)
p->disn(3);
p=p->next;
}
}
void CENG::disdown()
{
p=q->next;
while(p!=NULL)
{
if(p->outn()==2)
p->disn(3);
p=p->next;
}
}
int CENG::del(int a)
{
int b=0;
p=q->next;
while(p!=NULL)
{
if(p->outqu()==a)
{
p->disn(0);
b++;
}
p=p->next;
}
return b;
}
int CENG::outdown()
{
return down;
}
ceng.h
#include
#include"REN.h"
using namespace std;
class CENG
{
public:
void xj();
void sc();
void sb();
void tj();
void disup();
void disdown();
void sj(int);
int del(int);
int outup();
int xs1();
int xs2();
int xs3();
int outdown();
CENG();
protected:
int up,z,down;
REN *p,*q,*t;
};
lou.cpp
#include
#include"LOU.h"
#include
#include
#include
LOU::LOU(int a,int b)
{
n=a;
m=b;
}
void LOU::out(int n)
{
int a;
for(a=19;a>=1;a--)
{
if(a!=n)
cout<<'t'< else
cout<<'t'< }
}
void LOU::sc()
{
srand(time(NULL));
a=(rand()%19);
ceng[a].sc();
ceng[a].sb();
ceng[a].tj();
}
void LOU::gl()
{
int i,j,c,d;
for(i=0;i<19;i++)
{
ceng.xj();
ceng.sj(i+1);
}
cout< sc();
while(1)
{
while(n<20)
{
for(i=0,c=0;i<19;i++)
{
if(ceng.xs2()>n)
c=1;
}
for(i=n+1,d=0;i<20;i++)
{
if((ceng[i+1].outup()+ceng[i-1].outdown())!=0)
d=1;
}
if(d==1||c==1)
{
out(n);
getch();
cout< n++;
if(ceng[n-1].outup()>0)
{
m=m+ceng[n-1].outup();
ceng[n-1].disup();
}
for(j=0;j<19;j++)
{
m=m-ceng[n-1].del(n);
}
sc();
}
}
while(n>2)
{
for(i=0,c=0;i<19;i++)
{
if(ceng.xs3() c=1;
}
for(i=n-1,d=0;i>2;i--)
{
if((ceng[i+1].outup()+ceng[i-1].outdown())!=0)
d=1;
}
if(d=1||c==1)
{
out(n);
getch();
cout< n--;
if(ceng[n-1].outdown()>0)
{
m=m+ceng[n-1].outdown();
ceng[n-1].disdown();
}
for(j=0;j<19;j++)
{
m=m-ceng[n-1].del(n);
}
sc();
}
}
}
}
lou.h
#include
#include"CENG.h"
using namespace std;
class LOU
{
public:
LOU(int,int);
void gl();
void sc();
void out(int n);
private:
int n,m,a;
CENG ceng[19];
};
ren.cpp
#include
#include
#include "ren.h"
#include
REN::REN()
{
srand(time(NULL));
qu=(rand()%19)+1;
n=0;
}
void REN::disn(int a)
{
n=a;
}
int REN::outqu()
{
return qu;
}
int REN::outn()
{
return n;
}
ren.h
#ifndef REN_N_N
#define REN_N_N
#include
using namespace std;
class REN
{
public:
REN();
int outqu();
int outn();
void disn(int a);
REN *next;
private:
int qu;
int n;
};
#endif