service { const html Turn = <[result]>
<[h1]> <[h2]> <[h3]>
<[h4]> <[h5]> <[h6]>
<[h7]> <[h8]> <[h9]>
where do you wanna play next? (1-9) ; string p1; string p2; string p3; string p4; string p5; string p6; string p7; string p8; string p9; int play(int position, string player) { if(position < 1 || position > 9) return -1; else if (position == 1) if (p1 != "_") return -1; else p1 = player; else if (position == 2) if (p2 != "_") return -1; else p2 = player; else if (position == 3) if (p3 != "_") return -1; else p3 = player; else if (position == 4) if (p4 != "_") return -1; else p4 = player; else if (position == 5) if (p5 != "_") return -1; else p5 = player; else if (position == 6) if (p6 != "_") return -1; else p6 = player; else if (position == 7) if (p7 != "_") return -1; else p7 = player; else if (position == 8) if (p8 != "_") return -1; else p8 = player; else if (position == 9) if (p9 != "_") return -1; else p9 = player; return checkWin(player); } int checkWin(string player) { if(p1 == player && p2 == player && p3 == player) return 1; else if(p1 == player && p2 == player && p3 == player) return 1; else if(p4 == player && p5 == player && p6 == player) return 1; else if(p7 == player && p8 == player && p9 == player) return 1; else if(p1 == player && p4 == player && p7 == player) return 1; else if(p2 == player && p5 == player && p8 == player) return 1; else if(p3 == player && p6 == player && p9 == player) return 1; else if(p1 == player && p5 == player && p9 == player) return 1; else if(p3 == player && p5 == player && p7 == player) return 1; else if( p1!="_" &&p2!="_" &&p3!="_" &&p4!="_" &&p5!="_" &&p6!="_" &&p7!="_" &&p8!="_" &&p9!="_") return 2; return 0; } string toggleplayer(string player) { if(player == "X") return "O"; return "X"; } int compMove() { int i; int j; i = 1; j = -1; while(j == -1) { j = play(i,"O"); i = i +1; } return j; } session Move() { int m; int done; string toggle; string msg; toggle = "X"; done = 0; p1="_"; p2="_"; p3="_"; p4="_"; p5="_"; p6="_"; p7="_"; p8="_"; p9="_"; while(done <= 0) { show plug Turn[result="",h1=p1,h2=p2,h3=p3,h4=p4,h5=p5,h6=p6,h7=p7,h8=p8,h9=p9] receive[m = position]; done = play(m, toggle); while (done == -1) { show plug Turn[result="Illegal Move",h1=p1,h2=p2,h3=p3,h4=p4,h5=p5,h6=p6,h7=p7,h8=p8,h9=p9] receive[m = position]; done = play(m, toggle); } if (done == 0){ toggle = toggleplayer(toggle); done = compMove(); if(done == 0) toggle=toggleplayer(toggle); } } if(done==1 && toggle == "X") msg = "You Win!"; else if(done==1 && toggle == "O") msg = "You Lose!"; else if(done==2) msg = "Cat's Game!"; exit plug Turn[result=msg,h1=p1,h2=p2,h3=p3,h4=p4,h5=p5,h6=p6,h7=p7,h8=p8,h9=p9]; } }