어플리케이션 프로토콜
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가 지게 된다면 그곳에 돌을 놓는다.