
Client :
#include <GUIConstants.au3> #include <ARRAY.AU3> Global $MainSocket, $Server, $Port, $Nick, $Nick2, $Turn, $Shape, $Shape2, $Winner, $Moves, $Player, $Me, $Opponent Global $Point1 = 0 Global $Point2 = 0 Global $Games = 0 Global $Box[4][4] Global $Button[4][4] Global $Checkwin[9] Global $Connected = 0 Local $MaxLength = 512 $Form1 = GUICreate("Tic Tac Toe", 217, 359, 193, 115) $Group1 = GUICtrlCreateGroup("Login", 16, 224, 185, 121) $Input1 = GUICtrlCreateInput(@IPAddress1, 72, 244, 105, 21) $Input2 = GUICtrlCreateInput(5903, 72, 276, 105, 21) $Label2 = GUICtrlCreateLabel("IP :", 32, 252, 20, 17) $Label3 = GUICtrlCreateLabel("Port :", 32, 284, 29, 17) $Connect = GUICtrlCreateButton("Connect !", 32, 308, 147, 25, 0) GUICtrlCreateGroup("", -99, -99, 1, 1) $Button[1][1] = GUICtrlCreateButton("", 36, 17, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Button[1][2] = GUICtrlCreateButton("", 84, 17, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Button[1][3] = GUICtrlCreateButton("", 132, 17, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Button[2][1] = GUICtrlCreateButton("", 36, 65, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Button[2][2] = GUICtrlCreateButton("", 84, 65, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Button[2][3] = GUICtrlCreateButton("", 132, 65, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Button[3][1] = GUICtrlCreateButton("", 36, 113, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Button[3][2] = GUICtrlCreateButton("", 84, 113, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Button[3][3] = GUICtrlCreateButton("", 132, 113, 49, 49, 0) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $Label4 = GUICtrlCreateLabel("Status :", 24, 176, 192, 17) $Label5 = GUICtrlCreateLabel("Games : 0 You : 0 Opponent : 0", 24, 200, 192, 17) GUISetState() For $i = 1 To 3 For $j = 1 To 3 $Box[$i][$j] = 0 Next Next While 1 Checktcp() $msg = GUIGetMsg() Switch $msg Case $Connect TCPStartup() Check() $MainSocket = TCPConnect($Server, $Port) If $MainSocket = -1 Then GUICtrlSetData($Label4, "Status : Unable to connect.") Else GUICtrlSetData($Label4, "Status : Connecting...") TCPSend($MainSocket, "!Connected") EndIf Case $Button[1][1] Checkbutton(1, 1) Case $Button[1][2] Checkbutton(1, 2) Case $Button[1][3] Checkbutton(1, 3) Case $Button[2][1] Checkbutton(2, 1) Case $Button[2][2] Checkbutton(2, 2) Case $Button[2][3] Checkbutton(2, 3) Case $Button[3][1] Checkbutton(3, 1) Case $Button[3][2] Checkbutton(3, 2) Case $Button[3][3] Checkbutton(3, 3) Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func Checkbutton($row, $column) TCPSend($MainSocket, "!Button-" & $Player & "-" & $row & "-" & $column) EndFunc ;==>Checkbutton Func Click($Player, $row, $column) If $Player = $Me Then If $Box[$row][$column] = 0 And $Turn = True Then GUICtrlSetData($Button[$row][$column], $Shape) GUICtrlSetState($Button[$row][$column], $GUI_DISABLE) $Box[$row][$column] = 5 Checkwin() Checkturn() EndIf ElseIf $Player = $Opponent Then If $Box[$row][$column] = 0 And $Turn = False Then GUICtrlSetData($Button[$row][$column], $Shape2) GUICtrlSetState($Button[$row][$column], $GUI_DISABLE) $Box[$row][$column] = 1 Checkwin() Checkturn() EndIf EndIf EndFunc ;==>Click Func Check() $Server = GUICtrlRead($Input1) $Port = GUICtrlRead($Input2) EndFunc ;==>Check Func Checktcp() $Data = TCPRecv($MainSocket, $MaxLength) If StringInStr($Data, "!Player") Then If $Connected = 2 Then $Data = StringSplit($Data, "-") $Player = $Data[2] $Me = $Player If $Me = 1 Then $Opponent = 2 $Shape = "X" $Shape2 = "O" $Turn = True Else $Opponent = 1 $Shape = "O" $Shape2 = "X" $Turn = False EndIf Checkturn2() $Connected = 3 EndIf ElseIf $Data = "!Ready" Then If $Connected = 1 Then GUICtrlSetData($Label4, "Status : Your Opponent ready.") $Connected = 2 EndIf ElseIf $Data = "!Bye" Then MsgBox(16, "Session Ended", "Connection Terminated.") Exit ElseIf $Data = "!Connected" Then If $Connected = 0 Then GUICtrlSetState($Connect, $GUI_DISABLE) GUICtrlSetData($Label4, "Status : Waiting for Opponent.") $Connected = 1 EndIf ElseIf StringInStr($Data, "!Button") Then $Data = StringSplit($Data, "-") Click($Data[2], $Data[3], $Data[4]) ElseIf $Data <> "" Then MsgBox("", "", $Data) EndIf EndFunc ;==>Checktcp Func Checkwin() For $j = 1 To 8 $Checkwin[$j] = 0 Next For $j = 1 To 3 $Checkwin[1] += $Box[1][$j] $Checkwin[2] += $Box[2][$j] $Checkwin[3] += $Box[3][$j] $Checkwin[4] += $Box[$j][1] $Checkwin[5] += $Box[$j][2] $Checkwin[6] += $Box[$j][3] Next $Checkwin[7] = $Box[1][1] + $Box[2][2] + $Box[3][3] $Checkwin[8] = $Box[1][3] + $Box[2][2] + $Box[3][1] For $i = 1 To 8 If $Checkwin[$i] = 15 Then $Winner = 1 $Point1 += 1 GUICtrlSetData($Label4, "Status : Winner You !") ElseIf $Checkwin[$i] = 3 Then $Winner = 1 $Point2 += 1 GUICtrlSetData($Label4, "Status : Winner Opponent !") EndIf Next EndFunc ;==>Checkwin Func Reset() $Games += 1 GUICtrlSetData($Label5, "Games : " & $Games & " You : " & $Point1 & " Opponent : " & $Point2) Sleep(2000) For $i = 1 To 3 For $j = 1 To 3 $Box[$i][$j] = 0 GUICtrlSetData($Button[$i][$j], "") GUICtrlSetState($Button[$i][$j], $GUI_ENABLE) Next Next If $Shape = "X" Then $Shape = "O" $Shape2 = "X" $Turn = False Else $Shape = "X" $Shape2 = "O" $Turn = True EndIf $Winner = 0 $Moves = 0 Checkturn2() EndFunc ;==>Reset Func Checkturn() If $Winner <> 1 Then $Moves += 1 If $Moves = 9 Then GUICtrlSetData($Label4, "Status : Draw...") Reset() Else If $Turn = True Then $Turn = False GUICtrlSetData($Label4, "Status : Opponent Turn! ( " & $Shape2 & " )") Else $Turn = True GUICtrlSetData($Label4, "Status : Your Turn! ( " & $Shape & " )") EndIf EndIf Else Reset() EndIf EndFunc ;==>Checkturn Func Checkturn2() If $Turn = True Then GUICtrlSetData($Label4, "Status : Your Turn! ( " & $Shape & " )") Else GUICtrlSetData($Label4, "Status : Opponent Turn! ( " & $Shape2 & " )") EndIf EndFunc ;==>Checkturn2 Func OnAutoItExit() If $MainSocket <> -1 Then TCPSend($MainSocket, "!Bye") TCPCloseSocket($MainSocket) EndIf TCPShutdown() EndFunc ;==>OnAutoItExitoÝ÷ Ù'«½êÚºÚ"µÍÚ[ÛYH ÑÕRPÛÛÝ[Ë]LÉÝÂÚ[ÛYH ÐTVKULÉÝÂÚ[ÛYH ÑÕRQY]]LÉÝÂÚ[ÛYH Ñ]K]LÉÝÂÛØ[ÛÛÝ ÌÍÔÜH NLÂÛØ[ ÌÍÓX^ÛÛÈHÂÛØ[ÛÛÝ ÌÍÓX^[ÝH LLÛØ[ ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÓX^ÛÛ×BÛØ[ ÌÍÐÝ[ÛØÚÙ]HÛØ[ ÌÍÐÛÛXÝ[ÛHØØ[ ÌÍÕXÚÈHÛØ[ÛÛÝ ÌÍÓX^ÛÛXÝ[ÛH ÌÍÓX^ÛÛÈHJBÜ ÌÍÕXÚÈHÈ ÌÍÓX^ÛÛXÝ[ÛÝBIÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×HHLB^ÌÍÑÜLHHÕRPÜX]J ][ÝÕXÈXÈÙH ÙI][ÝË ÎKNLËLMJBÌÍÑY]HÕRPÝÜX]QY] ][ÝÉ][ÝË N KÎLË]Ô ÌÍÑT×ÔPQÓK ÌÍÑT×ÕÐSUT ÌÍÕÔ×ÕÐÔÓ ÌÍÕÔ×ÒÐÔÓ ÌÍÑT×ÐUUÕÐÔÓ ÌÍÑT×ÐUUÒÐÔÓ JBÌÍÒ[]HHÕRPÝÜX]R[] ][ÝÉ][ÝË L KJBÌÍÐ]ÛHHÕRPÝÜX]P]Û ][ÝÔÙ[[ ][ÝË L ÍKË BÕRTÙ]Ý]JÕ×ÔÒÕÊBÛØ[ ÌÍÓXZ[ÛØÚÙ]HÔÝÙ ÌÍÔÜ ÌÍÓX^ÛÛÊBYÜ ÉÝÈ[PÛÛÛÛJ ][ÝÔÙ[XHÈ[]X[^K][ÝË ][ÝÉ][ÝÊB[ÙBPÛÛÛÛJ ][ÝÔÙ[]X[^Y][ÝË ][ÝÉ][ÝÊB[YÚ[HBIÌÍÛÙÈHÕRQÙ]ÙÊ BTÝÚ]Ú ÌÍÛÙÂBPØÙH ÌÍÐ]ÛBBBIÌÍÒ[]HÕRPÝXY ÌÍÒ[]JBBBUÔÙ[YÜØYÙP[ K ÌÍÒ[] BBBQÕRPÝÙ]]J ÌÍÒ[]K ][ÝÉ][ÝÊBBPØÙH ÌÍÑÕRWÑUSÐÓÔÑBBBQ^]Q[ÝÚ]ÚIÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÐÝ[ÛØÚÙ]HHÔXØÙ ÌÍÓXZ[ÛØÚÙ] BRY ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÐÝ[ÛØÚÙ]H ÉÝÈLH[BIÌÍÐÝ[ÛØÚÙ]HÛØÚÙ]ÙXÚ BQ[YRY ÌÍÐÛÛXÝ[ÛH[BUÔÙ[YÜØYÙP[ K ][ÝÉÌÌÎÔXYI][ÝÊBBTÛY L BBIÌÍÔ^YHH[ÛJKJBBRY ÌÍÔ^YHHH[BBIÌÍÔ^YHH ][ÝÉÌÌÎÔ^YLI][ÝÂBBIÌÍÔ^YH ][ÝÉÌÌÎÔ^YL][ÝÂBQ[ÙRY ÌÍÔ^YHH[BBIÌÍÔ^YHH ][ÝÉÌÌÎÔ^YL][ÝÂBBIÌÍÔ^YH ][ÝÉÌÌÎÔ^YLI][ÝÂBQ[YBUÔÙ[ ÌÍÐÛÛXÝYÛØÚÙ]ÌK ÌÍÔ^YJBBPÛÛÛÛJ ÌÍÔ^YH [È ][ÝÈÙ[ ][ÝÈ [È ÌÍÐÛÛXÝYÛØÚÙ]ÌK ÌÍÐÛÛXÝYÛØÚÙ]ÌJBBUÔÙ[ ÌÍÐÛÛXÝYÛØÚÙ]ÌWK ÌÍÔ^YBBPÛÛÛÛJ ÌÍÔ^Y [È ][ÝÈÙ[ ][ÝÈ [È ÌÍÐÛÛXÝYÛØÚÙ]ÌWK ÌÍÐÛÛXÝYÛØÚÙ]ÌWJBBIÌÍÐÛÛXÝ[ÛHÂQ[YIÌÍÕXÚÈHQÜ ÌÍÕXÚÈHÈ ÌÍÓX^ÛÛXÝ[ÛÝBBRY ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×H ÉÝÈLH[BBIÌÍÑ]HHÔXÝ ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×K ÌÍÓX^[Ý BBBRY ÌÍÑ]HH ][ÝÉÌÌÎÐYI][ÝÈ[BBBUÔÛÜÙTÛØÚÙ] ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×JBBBBPÛÛÛÛJ ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×H [È ][ÝÈØÛÛXÝY][ÝË ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×JBBBBIÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×HHLBBBBIÌÍÐÝ[ÛØÚÙ]HÛØÚÙ]ÙXÚ BBBQ[ÙRY ÌÍÑ]HH ][ÝÉÌÌÎÐÛÛXÝY ][ÝÈ[BBBUÔÙ[ ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×K ][ÝÉÌÌÎÐÛÛXÝY ][ÝÊBBBBPÛÛÛÛJ ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×H [È ][ÝÈÛÛXÝY][ÝË ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×JBBBBIÌÍÐÛÛXÝ[ÛH ÌÍÐÛÛXÝ[Û ÈBBBQ[ÙRY ÌÍÑ]H ÉÝÈ ][ÝÉ][ÝÈ[BBBUÔÙ[YÜØYÙP[ K ÌÍÑ]JBBBQ[YBQ[YS^Ñ[[ÈÛÛÛÛJ ÌÍÑ]XK ÌÍÐÛÛBIÌÍÑY]HÕRPÝXY ÌÍÑY] BRY ÌÍÑY]H ][ÝÉ][ÝÈ[BQÕRPÝÙ]]J ÌÍÑY]ÓÝÕ[YJ JH [È ][ÝÈH ][ÝÈ [ÈÙ]T ÌÍÐÛÛH [È ][ÝÈH ][ÝÈ [È ÌÍÑ]XJBQ[ÙBBQÕRPÝÙ]]J ÌÍÑY] ÌÍÑY] [ÈÔ [ÈÓÝÕ[YJ JH [È ][ÝÈH ][ÝÈ [ÈÙ]T ÌÍÐÛÛH [È ][ÝÈH ][ÝÈ [È ÌÍÑ]XJBQ[YWÑÕRPÝY]Ó[TØÜÛ ÌÍÑY]ÑÕRPÝY]ÑÙ][PÛÝ[ ÌÍÑY] JB[[ÈÏOIÝÐÛÛÛÛB[ÈÔÙ[YÜØYÙP[ ÌÍÐÛÛXÝ[Û[Z] ÌÍÑ]JBSØØ[ ÌÍÕXÚÈHQÜ ÌÍÕXÚÈHÈ ÌÍÐÛÛXÝ[Û[Z]BUÔÙ[ ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×K ÌÍÑ]JBBRYÝ[Ò[Ý ÌÍÑ]K ][ÝÉÌÌÎÐ]Û][ÝÊH[BBIÌÍÑ]LHÝ[ÔÜ] ÌÍÑ]K ][ÝËI][ÝÊBBBPÛÛÛÛJ ÌÍÑ]H [È ][ÝÈ ^Y ][ÝÈ [È ÌÍÑ]LÌH [È ][ÝÈÝÈ ][ÝÈ [È ÌÍÑ]LÌ×H [È ][ÝÈÛÛ[[ ][ÝÈ [È ÌÍÑ]LÍH [È ][ÝÈ HÙ[ ][ÝÈ [È ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×K ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×JBBQ[ÙRY ÌÍÑ]H ÉÝÈ ][ÝÉ][ÝÈ[BBPÛÛÛÛJ ÌÍÑ]H [È ][ÝÈÙ[ ][ÝÈ [È ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×K ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×JBBQ[YS^[[ÈÏOIÝÕÔÙ[YÜØYÙP[[ÈÔÝÙ ÌÍÔÜ ÌÍÓX^ÛÛXÝHJBSØØ[ ÌÍÔÛØÚÙ]IÌÍÔÛØÚÙ]HÔÝ BTÙ[XÝBPØÙH ÌÍÔÛØÚÙ]HBBTÙ]ÜÜBBBT]LBQ[Ù[XÝIÌÍÔÛØÚÙ]HÔÝ[TYÜÌK ÌÍÔÜ ÌÍÓX^ÛÛXÝ BTÙ[XÝBPØÙH ÌÍÔÛØÚÙ]HLBBBTÙ]ÜÜBBBT]Q[Ù[XÝTÙ]Ü BT] ÌÍÔÛØÚÙ][[ÈÏOIÝÕÔÝÙ[ÈÛØÚÙ]ÙXÚ BSØØ[ ÌÍÕXÚÈHQÜ ÌÍÕXÚÈHÈ ÌÍÓX^ÛÛXÝ[ÛÝBBRY ÌÍÐÛÛXÝYÛØÚÙ]ÉÌÍÕXÚ×HHLH[BBT] ÌÍÕXÚÂBQ[ÙBBBNÂBQ[YS^[[ÈÏOIÝÔÛØÚÙ]ÙXÚ[ÈÙ]T ÌÍÔÛØÚÙ] BØØ[ ÌÍÔÛØÚÙ]YÜ ÌÍÔÛØÚÙ]YÜÈHÝXÝÜX]J ][ÝÜÚÜÝÚÜÝZ[ØÚÎI][ÝÊB ÌÍÒTHØ[ ][ÝÕÜÌÌÌ ][ÝË ][ÝÚ[ ][ÝË ][ÝÙÙ]Y[YI][ÝË ][ÝÚ[ ][ÝË ÌÍÔÛØÚÙ] ][ÝÜ][ÝËÝXÝÙ] ÌÍÔÛØÚÙ]YÜÊK ][ÝÚ[ ][ÝËÝXÝÙ]Ú^J ÌÍÔÛØÚÙ]YÜÊJBYÝÜ[ ÌÍÒTÌHH[ ÌÍÒTHØ[ ][ÝÕÜÌÌÌ ][ÝË ][ÝÜÝ][ÝË ][ÝÚ[]ÛØI][ÝË ][ÝÚ[ ][ÝËÝXÝÙ]]J ÌÍÔÛØÚÙ]YÜËÊJBYÝÜ[ ÌÍÒTH ÌÍÒTÌB[ÙB ÌÍÒTHTYÜÌB[Y ÌÍÔÛØÚÙ]YÜÈH] ÌÍÒT[[ÈÏOIÝÔÛØÚÙ]Ò[ÈÛ]]Ò]^] BUÔÙ[YÜØYÙP[ K ][ÝÉÌÌÎÐYI][ÝÊBTÛY L BUÔÚ]ÝÛ B[[ÈÏOIÝÓÛ]]Ò]^]
Edited by Jex, 01 April 2008 - 10:43 AM.






