SAUͨüĶսƽ̨ͨЭ˵д淶
==============================================================================


һ̼ͨż
    SAUͨüĶսƽ̨̨Ͳ֮䣬ܵ׼ضʵֽ̼ͨţЧضԿ̨Ͳʵ˼Ρ̨ͲĳֻҪñ׼뺯ͿԽյƽ̨͵ҲֻҪñ׼Ϳƽ̨Ϣ


ƽ̨벩ͨЭ

    1ݸʽ涨ƽ̨벩ͨŵַʽдݣЧϢ command word+[' '+parameters]+'\n'ʽֿͷзβмѡƽ̨͵ЧϢԶˡ

    2ݳȹ涨ƽ̨벩ͨŵһȲ256ֽڣַ'\0'

    3涨ά̷ΪάȣϽΪԭ㡣Ϊ̷Χ޶0~9ΪѹĳȣԴдĸ֣Ӵдĸ 'A'ʼĸб궨
    4ƽ̨-ͨЭ鶨У"name?","name","new","move","accept","refuse","take","taked","end","quit","error"ʮһ֡"name?","new","move","accept","refuse","take","taked","end","quit","error"Ϊƽ̨洫"name","move"Ϊƽ̨֡ںУ"[""]"ĲΪѡ

    5ƽ̨淢

        1)"name?" 
            ܣ
                ѯ
            ʽ
                "name?+'\n'"
            
                
            ˵
                "name?" Ϊ޲ֻƽ̨淢͡

        2)"new" 
            ܣ
                
            ʽ
                "new+' '+side+'\n'"
            
                sideִָɫֵΪblackwhite
            ˵
                "new" ֪ͨ洴֡sideֵΪblack壬Ӧƽ̨"move"sideֵΪwhite壬Ӧȴ淢֪ͨ"move"

        3)"move" 
            ܣ
                ֪ͨ
            ʽ
                "move+[' '+position list]+'\n'"
            
                position listб
            ˵
                "move" ֪ͨ濪ʼ壬Ϊһŷб갴ַλ֣֮䲻ӿոַһ꣬һַʾ꣬ڶַʾꡣӰΧķ걸Ϣģɻ֪Էŷбͬÿһʾһ㡣бΪ岽һеһΪӵʼ꣬Ϊ꣬ΪӵꡣѷҪϰбһϰꡣ

        4)"accept" 
            ܣ
                ŷ֪ͨ
            ʽ
                "accept+'\n'"
            
                
            ˵
                ڻӰΧУȷƽ̨ύŷ
            
        5)"refuse" 
            ܣ
                ŷܾ֪ͨ
            ʽ
                "refuse+'\n'"
            
                
            ˵
                ڻӰΧУȷƽ̨ܾύŷ
            
        6)"take" 
            ܣ
                ֪ͨ
            ʽ
                "take+' '+num+' '+position list+'\n'"
            
                numб
                position listб
            ˵
                take ֪ͨӡڻӰΧ治֪δαƳ̵ķ걸ϢģͲĵӻӲԿͨԡmove Ĵó

        7)"taked" 
            ܣ
                ֪ͨ
            ʽ
                "taked+' '+num+' '+position list+'\n'"
            
                numб
                position listб
            ˵
                ο"take"
            
        8)"end" 
            ܣ
                ֪ͨĽ
            ʽ
                end+[' '+win]+'\n'
            
                winʤֵΪblackwhite
            ˵
                win ɿޣָʤ

        9)"quit"
            ܣ
                ֪ͨ˳
            ʽ
                end+'\n'
            
                
            ˵
                

        10)"error" 
            ܣ
                ֪ͨŷ
            ʽ
                error+'\n'
            
                
            ˵
                error Ϊ޲ֻƽ̨淢͡

    6ƽ̨

        1)name 
            ܣ
                Ӧ
            ʽ
                name+' '+engine name+'\n'
            
                engine nameơ
            ˵
                name Ӧƽ̨ name? 

        2)move 
            ܣ
                Ӧŷ
            ʽ
                move+' '+position list+'\n'
            
                position listŷб
            ˵
                move Ӧƽ̨ move  new black position listοƽ̨淢͵ move ˵

    7˵

        ڶĽйУƽֻ̨淢͵ġmoveûֶԲĳȣתĽա


д淶

    ƽ̨ز"name?"ѯʱҪ"name"ԻӦƽ̨Ϊûÿʼ׼

    Ŀʼʱƽ̨"new"ִɫͬʱ֪ͨĿʼַblackʼ塣

    ĽеĹУƽ̨"move"֪ͨ濪ʼ壬ֵ֪ŷӰΧ⣩
    
    Ľƽ̨"end"֪ͨĹֹ

    жزʱƽ̨"quit"

    windowsƽ̨Լڽƽ̨Ҫ"fflush(stdin);"ˢ뻺ƽ̨ݺҪ"fflush(stdout);"ˢ
    ڻӰΧУ"taked"ؽһ"move"ڴ"taked"ʱˢ뻺

    ʾ

1ͨʾܣ
--------------------------------------------------------------
#define BLACK 0
#define WHITE 1
#define EMPTY 2

typedef struct _Point{ //ṹ
	int x,y;
}Point;

typedef struct _Step{ //ṹ
	Point first,second;
	int value;
}Step;

int Board[19][19];//̽ṹ

int connect6(int argc, char *argv[])
{
	Step step;//ʱṹ
	char message[256];//ͨϢ
    int computerSide;//ִɫ
    int start=0;//Ծֿʼ

	//˴óʼ
    //...
    
    //ѭ
	while (1)
	{
		fflush(stdout);
        
        //ȡƽ̨Ϣ
		scanf("%s", message);
        
        //
		if(strcmp(message,"move")==0)//
		{
			scanf("%s", message);//ȡŷ
            fflush(stdin);
            
			step.first.x=message[0]-'A';
			step.first.y=message[1]-'A';
			step.second.x=message[2]-'A';
			step.second.y=message[3]-'A';
            
            //
            Board[step.first.x][step.first.y]=computerSide^1;
            Board[step.second.x][step.second.y]=computerSide^1;
            //...
            
			//ŷstepṹ
            //...
            
            //
            Board[step.first.x][step.first.y]=computerSide;
            Board[step.second.x][step.second.y]=computerSide;
            //...
            
            //ŷ
			printf("move %c%c%c%c\n",step.first.x+'A',step.first.y+'A',step.second.x+'A',step.second.y+'A');
		}
		else if(strcmp(message,"new")==0)//
		{
            int i,j;
            
			scanf("%s",message);//ȡִɫ
            fflush(stdin);
            
			if(strcmp(message,"black")==0)//ִ
				computerSide=BLACK;
			else//ִ
				computerSide=WHITE;
            
            //ʼ
            for(i=0;i<19;++i)
                for(j=0;j<19;++j)
                    Board[i][j]=EMPTY;
            //...
            
            start=1;
            
            if(computerSide==BLACK)
            {
                //ɵһŷstepṹ
                //...
                
                //
                Board[step.first.x][step.first.y]=computerSide;
                //...
                
                //ŷ
                printf("move %c%c@@\n",step.first.x+'A',step.first.y+'A');
            }
		}
        else if (strcmp(message, "error") == 0)//ŷ
        {
            fflush(stdin);
            
            //...
        }
		else if (strcmp(message, "name?") == 0)//ѯ
		{
            fflush(stdin);
            
            //
			printf("name xxxx\n");
		}
		else if (strcmp(message, "end") == 0)//Ծֽ
		{
            fflush(stdin);
            
			start = 0;
            //...
		}
		else if (strcmp(message, "quit") == 0)//˳
		{
            fflush(stdin);
            
            //...
			printf("Quit!\n");
			break;
		}
	}
	return 0;
}


2ӰΧͨʾܣ
----------------------------------------------------------------
#define BLACK 0
#define WHITE 1
#define EMPTY 2

typedef struct _Point{ //ṹ
	int x,y;
}Point;

typedef struct _Step{ //ṹ
	Point point;
	int value;
}Step;

int Board[10][10];//̽ṹ

int PhantomGo()
{
	Step step;//ʱṹ
	char message[256];//ͨϢ
    int computerSide;//ִɫ
    int start=0;//Ծֿʼ

	//˴óʼ
    //...
    
    //ѭ
	while(1)
	{
		fflush(stdout);
        
		//ȡƽ̨Ϣ
		scanf("%s", message);
        
        //
		if (strcmp(message, "accept") == 0)                     //ύŷ
		{
			fflush(stdin);
            
			//
            Board[step.point.x][step.point.y]=computerSide;
            //...
		}
		else if (strcmp(message, "refuse") == 0)                //ύŷܾ
		{
			fflush(stdin);
                
			//ŷstepṹ
            //...

            //ŷ
            if (...)//ŷ
                printf("move %c%c\n",step.point.x+'A',step.point.y+'A');   
            else//Pass
				printf("move pass\n");
		}
		else if (strcmp(message, "move") == 0)
		{
			scanf("%s", message);
			if (strcmp(message, "go") == 0)
			{
				fflush(stdin);
                
go:				//ŷstepṹ
                //...
                
                //ŷ
                if (...)//ŷ
                    printf("move %c%c\n",step.point.x+'A',step.point.y+'A');   
				else//Pass
					printf("move pass\n");
			}
			else if (strcmp(message, "pass") == 0)//Էpass
			{
				fflush(stdin);
                
				//...
				goto go;
			}
		}
		else if (strcmp(message, "take") == 0)//
		{
			int num;
            
            fflush(stdin);
            
			scanf("%d", &num);//ȡĿ
			scanf("%s", message);//ȡб
            
			for (int k = 0; k < num; k++)
			{
				x = message[2 * k] - 'A';
				y = message[2 * k + 1] - 'A';
				Board[x][y] = EMPTY;
                //...
			}
            //...
		}
		else if (strcmp(message, "taked") == 0)//Է
		{
            int num;
            
			scanf("%d", &num);//ȡĿ
			scanf("%s", message);//ȡб
            
			for (int k = 0; k < num; k++)
			{
				x = message[2 * k] - 'A';
				y = message[2 * k + 1] - 'A';
				Board[x][y] = EMPTY;
                //...
			}
            //...
		}
		else if (strcmp(message,"new") == 0)//½
		{
            int i,j;
            
			scanf("%s",message);//ȡִɫ
            fflush(stdin);
            
			if(strcmp(message,"black")==0)//ִ
				computerSide=BLACK;
			else//ִ
				computerSide=WHITE;
            
            //ʼ
            for(i=0;i<10;++i)
                for(j=0;j<10;++j)
                    Board[i][j]=EMPTY;
            //...
            
            start=1;
            
            if(computerSide==BLACK)
            {
                //ɵһŷstepṹ
                //...
                
                //
                Board[step.point.x][step.point.y]=computerSide;
                //...
                
                //ŷ
                printf("move %c%c\n",step.point.x+'A',step.point.y+'A');
            }
		}
        else if (strcmp(message, "error") == 0)//ŷ̷Χ
        {
            fflush(stdin);
            
            //...
        }
		else if (strcmp(message, "name?") == 0)//ѯ
		{
            fflush(stdin);
            
            //
			printf("name xxxx\n");
		}
		else if (strcmp(message, "end") == 0)//Ծֽ
		{
            fflush(stdin);
            
			start = 0;
            //...
		}
		else if (strcmp(message, "quit") == 0)//˳
		{
            fflush(stdin);
            
            //...
			printf("Quit!\n");
			break;
		}
	}
	return 0;
}


3ͨʾܣ
----------------------------------------------------------------
#define BLACK 0
#define WHITE 1
#define EMPTY 2

typedef struct _Point{ //ṹ
	int x,y;
}Point;

typedef struct _Step{ //ṹ
	Point start,end;
	int value;
}Step;

int Board[6][6];//̽ṹ

int SuLa()
{
	Step step;//ʱṹ
	char message[256];//ͨϢ
    int computerSide;//ִɫ
    int start=0;//Ծֿʼ

	//˴óʼ
    //...
    
    //ѭ
	while (1)
	{
		fflush(stdout);

		//ȡƽ̨Ϣ
		scanf("%s", message);
        
        //
		if (strcmp(message,"move") == 0)//
		{
		    scanf("%s", message);//ȡŷ
            fflush(stdin);
            
			step.start.x=message[0]-'A';
			step.start.y=message[1]-'A';
			step.end.x=message[2]-'A';
			step.end.y=message[3]-'A';
            
            //
            Board[step.end.x][step.end.y]=Board[step.start.x][step.start.y];
            Board[step.start.x][step.start.y]=EMPTY;
            //...
            
			//ŷstepṹ
            //...
            
            //
            Board[step.end.x][step.end.y]=Board[step.start.x][step.start.y];
            Board[step.start.x][step.start.y]=EMPTY;
            //...
            
            //ŷ
			printf("move %c%c%c%c\n",step.start.x+'A',step.start.y+'A',step.end.x+'A',step.end.y+'A');
		}
		else if(strcmp(message,"new")==0)//
		{
            int i,j;
            
			scanf("%s",message);//ȡִɫ
            fflush(stdin);
            
			if(strcmp(message,"black")==0)//ִ
				computerSide=BLACK;
			else//ִ
				computerSide=WHITE;
            
            //ʼ
            for(i=0;i<2;++i)
                for(j=0;j<6;++j)
                    Board[i][j]=BLACK;
            for(i=2;i<4;++i)
                for(j=0;j<6;++j)
                    Board[i][j]=EMPTY;
            for(i=4;i<6;++i)
                for(j=0;j<6;++j)
                    Board[i][j]=WHITE;
            //...
            
            start=1;
            
            if(computerSide==BLACK)
            {
                //ɵһŷstepṹ
                //...
                
                //
                Board[step.end.x][step.end.y]=Board[step.start.x][step.start.y];
                Board[step.start.x][step.start.y]=EMPTY;
                //...
                
                //ŷ
                printf("move %c%c%c%c\n",step.start.x+'A',step.start.y+'A',step.end.x+'A',step.end.y+'A');
            }
		}
        else if (strcmp(message, "error") == 0)//ŷ
        {
            fflush(stdin);
            
            //...
        }
		else if (strcmp(message, "name?") == 0)//ѯ
		{
            fflush(stdin);
            
            //
			printf("name xxxx\n");
		}
		else if (strcmp(message, "end") == 0)//Ծֽ
		{
            fflush(stdin);
            
			start = 0;
            //...
		}
		else if (strcmp(message, "quit") == 0)//˳
		{
            fflush(stdin);
            
            //...
			printf("Quit!\n");
			break;
		}
	}
	return 0;
}


4ͨʾܣ
--------------------------------------------------------------
#define BLACK 0
#define WHITE 1
#define EMPTY 2

typedef struct _Line{ //߽ṹ
	int k,i,j;
}Line;

typedef struct _Step{ //ṹ
	Line line;
	int value;
}Step;

int Box[5][5];
int Board[2][6][5];//߽ṹ2ַ6ߣ5

int DotAndBox(int argc, char *argv[])
{
	Step step;//ʱṹ
	char message[256];//ͨϢ
    int computerSide;//ִɫ
    int start=0;//Ծֿʼ

	//˴óʼ
    //...
    
    //ѭ
	while (1)
	{
		fflush(stdout);
        
        //ȡƽ̨Ϣ
		scanf("%s", message);
        
        //
		if(strcmp(message,"move")==0)//
		{
            int num;//ߵ
            
            scanf("%d", &num);
			scanf("%s", message);//ȡŷ
            fflush(stdin);
            
			for(i = 0; i < num; ++i)
            {
                step.line.k = message[i*3] - 'A';
                step.line.i = message[i*3 + 1] - 'A';
                step.line.j = message[i*3 + 2] - 'A';
                
                //
                Board[step.line.k][step.line.i][step.line.j]=computerSide^1;
                //...
            }
            //...
            
			//ŷߵnumУߵбmessage
            //...
            
            //
            //...
            
            //ŷ
			printf("move %d %s\n",num, message);
		}
		else if(strcmp(message,"new")==0)//
		{
            int i,j;
            
			scanf("%s",message);//ȡִɫ
            fflush(stdin);
            
			if(strcmp(message,"black")==0)//ִ
				computerSide=BLACK;
			else//ִ
				computerSide=WHITE;
            
            //ʼ
            for(k=0;k<2;++k)
                for(i=0;i<6;++i)
                    for(j=0;j<5;++j)
                        Board[k][i][j]=EMPTY;
            for(i=0;i<5;++i)
                for(j=0;j<5;++j)
                    Box[i][j]=EMPTY;
            //...
            
            start=1;
            
            if(computerSide==BLACK)
            {
                //ŷߵnumУߵбmessage
                //...
                
                //
                //...
                
                //ŷ
                printf("move %d %s\n",num, message);
            }
		}
        else if (strcmp(message, "error") == 0)//ŷ
        {
            fflush(stdin);
            
            //...
        }
		else if (strcmp(message, "name?") == 0)//ѯ
		{
            fflush(stdin);
            
            //
			printf("name xxxx\n");
		}
		else if (strcmp(message, "end") == 0)//Ծֽ
		{
            fflush(stdin);
            
			start = 0;
            //...
		}
		else if (strcmp(message, "quit") == 0)//˳
		{
            fflush(stdin);
            
            //...
			printf("Quit!\n");
			break;
		}
	}
	return 0;
}


5ѷͨʾܣ
--------------------------------------------------------------
#define BLACK 0
#define WHITE 1
#define EMPTY 2
#define BAR 3

typedef struct _Point{ //ṹ
	int x,y;
}Point;

typedef struct _Step{ //ṹ
	Point start,end,bar;
	int value;
}Step;

int Board[10][10];//̽ṹ

int Amazon(int argc, char *argv[])
{
	Step step;//ʱṹ
	char message[256];//ͨϢ
    int computerSide;//ִɫ
    int start=0;//Ծֿʼ

	//˴óʼ
    //...
    
    //ѭ
	while (1)
	{
		fflush(stdout);
        
        //ȡƽ̨Ϣ
		scanf("%s", message);
        
        //
		if(strcmp(message,"move")==0)//
		{
			scanf("%s", message);//ȡŷ
            fflush(stdin);
            
			step.start.x=message[0]-'A';
			step.start.y=message[1]-'A';
			step.end.x=message[2]-'A';
			step.end.y=message[3]-'A';
            step.bar.x=message[4]-'A';
            step.bar.y=message[5]-'A';
            
            //
            Board[step.start.x][step.start.y]=EMPTY;
            Board[step.end.x][step.end.y]=computerSide^1;
            Board[step.bar.x][step.bar.y]=BAR;
            //...
            
			//ŷstepṹ
            //...
            
            //
            Board[step.start.x][step.start.y]=EMPTY;
            Board[step.end.x][step.end.y]=computerSide;
            Board[step.bar.x][step.bar.y]=BAR;
            //...
            
            //ŷ
			printf("move %c%c%c%c%c%c\n",step.start.x+'A',step.start.y+'A',step.end.x+'A',step.end.y+'A',step.bar.x+'A',step.bar.y+'A');
		}
		else if(strcmp(message,"new")==0)//
		{
            int i,j;
            
			scanf("%s",message);//ȡִɫ
            fflush(stdin);
            
			if(strcmp(message,"black")==0)//ִ
				computerSide=BLACK;
			else//ִ
				computerSide=WHITE;
            
            //ʼ
            for(i=0;i<10;++i)
                for(j=0;j<10;++j)
                    Board[i][j]=EMPTY;
            Board[0][3]=Board[3][0]=Board[6][0]=Board[9][3]=WHITE;
            Board[0][6]=Board[3][9]=Board[6][9]=Board[9][6]=BLACK;
            //...
            
            start=1;
            
            if(computerSide==BLACK)
            {
                //ɵһŷstepṹ
                //...
                
                //
                Board[step.start.x][step.start.y]=EMPTY;
                Board[step.end.x][step.end.y]=computerSide;
                Board[step.bar.x][step.bar.y]=BAR;
                //...
                
                //ŷ
                printf("move %c%c%c%c%c%c\n",step.start.x+'A',step.start.y+'A',step.end.x+'A',step.end.y+'A',step.bar.x+'A',step.bar.y+'A');
            }
		}
        else if (strcmp(message, "error") == 0)//ŷ
        {
            fflush(stdin);
            
            //...
        }
		else if (strcmp(message, "name?") == 0)//ѯ
		{
            fflush(stdin);
            
            //
			printf("name xxxx\n");
		}
		else if (strcmp(message, "end") == 0)//Ծֽ
		{
            fflush(stdin);
            
			start = 0;
            //...
		}
		else if (strcmp(message, "quit") == 0)//˳
		{
            fflush(stdin);
            
            //...
			printf("Quit!\n");
			break;
		}
	}
	return 0;
}


6Χͨʾܣ
--------------------------------------------------------------
#define BLACK 0
#define WHITE 1
#define EMPTY 2

typedef struct _Point{ //ṹ
	int x,y;
}Point;

typedef struct _Step{ //ṹ
	Point point;
	int value;
}Step;

int Board[9][9];//̽ṹ

int connect6(int argc, char *argv[])
{
	Step step;//ʱṹ
	char message[256];//ͨϢ
    int computerSide;//ִɫ
    int start=0;//Ծֿʼ

	//˴óʼ
    //...
    
    //ѭ
	while (1)
	{
		fflush(stdout);
        
        //ȡƽ̨Ϣ
		scanf("%s", message);
        
        //
		if(strcmp(message,"move")==0)//
		{
			scanf("%s", message);//ȡŷ
            fflush(stdin);
            
			step.point.x=message[0]-'A';
			step.point.y=message[1]-'A';
            
            //
            Board[step.point.x][step.point.y]=computerSide^1;
            //...
            
			//ŷstepṹ
            //...
            
            //
            Board[step.point.x][step.point.y]=computerSide;
            //...
            
            //ŷ
			printf("move %c%c\n",step.point.x+'A',step.point.y+'A');
		}
		else if(strcmp(message,"new")==0)//
		{
            int i,j;
            
			scanf("%s",message);//ȡִɫ
            fflush(stdin);
            
			if(strcmp(message,"black")==0)//ִ
				computerSide=BLACK;
			else//ִ
				computerSide=WHITE;
            
            //ʼ
            for(i=0;i<9;++i)
                for(j=0;j<9;++j)
                    Board[i][j]=EMPTY;
            //...
            
            start=1;
            
            if(computerSide==BLACK)
            {
                //ɵһŷstepṹ
                //...
                
                //
                Board[step.point.x][step.point.y]=computerSide;
                //...
                
                //ŷ
                printf("move %c%c\n",step.point.x+'A',step.point.y+'A');
            }
		}
        else if (strcmp(message, "error") == 0)//ŷ
        {
            fflush(stdin);
            
            //...
        }
		else if (strcmp(message, "name?") == 0)//ѯ
		{
            fflush(stdin);
            
            //
			printf("name xxxx\n");
		}
		else if (strcmp(message, "end") == 0)//Ծֽ
		{
            fflush(stdin);
            
			start = 0;
            //...
		}
		else if (strcmp(message, "quit") == 0)//˳
		{
            fflush(stdin);
            
            //...
			printf("Quit!\n");
			break;
		}
	}
	return 0;
}



ġͨżֹʵϸ˵

    SAU Game PlatformϵܹУƽ̨֮ͨɲģֱɣͨЭʵɶ߼ģ֧ģЭͬɵġڸϵܹУƽ̨֮ͨŰĽ׶αΪ֣׼ͨźͶĹͨšж׼ͨɶ߼ģʵ֣Ĺͨͨ߼ģ齻֧ģʵ֡

    ׼ͨŰ״̬ȷϺͶĽɫ֡غ״̬ȱΪδƽ̨淢͡name?ѯ״̬ʱ׼ƽ̨͡nameԼ׼ԿʼġѼ涼Ϊƽ̨ԽûĿʼûʼƽ̨淢͡newڶĻеĽɫĿʼ

    Ĺͨƽ̨佻ı״̬Ϣƽ̨ĵĲĻյnewʱsideֵΪblackΪ֣Ӧƽ̨͡moveԼŷߡsideֵΪwhiteΪ֣Ӧȴƽ̨͵һmove塣յmoveʱӦøЯŷԼά״̬ƽ̨͡moveԼŷߡյerrorʱʾ淢͵һŷΪŷӦ²ŷ

    ѷ壨Amazonʹ1010̣һŷ㡢ϰλ3꣬ԡmoveámove+' '+X1Y1+X2Y2+X3Y3+'\n'ʽ(X1,Y1)ʾꣻ(X2,Y2)ʾꣻ(X3,Y3)ʾϰꡣ

    壨Connect6ʹ1919̣һŷöλ2꣬ԡmoveámove+' '+X1Y1+X2Y2+'\n'ʽ(X1,Y1)ʾһöꣻ(X2,Y2)ʾڶöꡣڵһŷΪֻһӣX2Y2Ϊ@@ʾ(-1,-1)

    ڲΧ壨NoGoʹ99̣һŷһöλ1꣬ԡmoveámove+' '+XY+'\n'ʽ(X,Y)ʾꡣ

    ڵ壨DotsAndBoxesʹ66ĵΪ̣һŷꡣ꣬Ϊѹĳȣ265ά꣬˵ʾάĵһάȱʾߵĺݣ0ʾߣ1ʾߣڶάȱʾߵıţбʶбʶάȱʾεıţбʶбʶԡmoveámove+' '+num+' '+KIJ+[+kij+...]+'\n'ʽnumʾĿֽбʶ(K,I,J)ʾꡣ򲶻Ӷжߵŷŷŷб

    ڻӰΧ壨PhantomCOʹ99̣һŷһöλ1꣬PassmoveָʽֱΪmove+' '+XY+'\n'move+' '+pass+'\n'͡move+' '+go+'\n'XYmoveƽ̨ŷ(X,Y)ʾꣻpassmoveƽ̨ӣͬʱƽ̨һ͡move+' '+pass+'\n'gomoveƽ̨֪ͨ塣յgomoveʱӦƽ̨XYmoveƽ̨յXYmoveʱŷϷƽ̨淢͡accept+'\n'ʾܣ֮ƽ̨淢͡refuse+'\n'ʾܡ
    ΪӰΧΪ걸ϢģҾӲƽ̨淢͡take+' '+num+' '+position list+'\n'taked+' '+num+' '+position list+'\n'ϢСtakeʾԷӣtakedʾἺӡnumʾĿֽбʶ.
    Ҫ˵ǣtakedһgomoveΪtaked+' '+num+position list+'\n'+move+' '+go+'\n'ʽtakeǰһaccessΪaccess+'\n'+take+' '+num+position list+'\n'ʽ

    壨Surakarta)ʹ66̣һŷΪһӲӣԡmoveámove+' '+X1Y1+X2Y2+'\n'ʽ(X1,Y1)ʾꣻ(X2,Y2)ʾꡣ


塢ϵʽ

    SAU Game Platform պѧЭṹ֧֣ʹù緢ִظϵ

    ΰͣ
        Emailywhjames@hotmail.com
        QQ616205539




