2012년 11월 16일 금요일

tcp/ip application protocol (for assignment)


어플리케이션 프로토콜
 
server
client로부터 좌표정보 8bytes를 받아서 3 X 3 배열에 추가한다.
이겼는지 졌는지 승부가 아직 안 났는지 판단한다.
1. 승부가 아직 안 났다면
->자신의 좌표를 결정(어디에 O를 그릴 것인지)한다. (결정하는 알고리즘)
3 X 3 배열에 추가한다.
[O][  ][  ]
[X][  ][  ]
[X][O][  ]

여전히 승부가 아직 안 났다면 client에게 결과를 전달 (표)
server가 이겼다면 client에게 결과를 전달(표, 졌음)
 
2. 승부가 났다면(client가 이겼다면)
->client에게 결과를 전달(표, 이겼음)
 
client
server에 접속해서 n1, n2 의 (n=1,2,3) 정보를 전달한다.(8bytes)
 
struct a {
int n1;//x좌표
int n2;//y좌표
}
 
server로부터 정보를 받는다.(표, 이겼음, 졌음)
승부가 아직 안 났다면 다음 좌표를 입력받는다.
승부가 났다면 정보를 출력한다.
 
컴퓨터(Server player)가 자신의 좌표를 결정하는 알고리즘
http://ko.wikipedia.org/wiki/%ED%8B%B1%ED%83%9D%ED%86%A0
1. 일렬로 만들어야 이긴다.(가로, 세로, 대각선)
2. 컴퓨터는 일렬로 놓으려고 한다. 하지만 client가 돌 하나를 더 놓았을 때 server가 지게 된다면 그곳에 돌을 놓는다.