碼雲:傳送門
該專案運用udp技術可以實現跨電腦對戰
在linux環境且可以正常上網的情況下開啟終端輸入命令
ifconfig 記錄本機inet位址
cd進入到專案目錄 輸入命令
gcc -gobang_send.c -o send
gcc -gobang_recv.c -o recv
首先執行接收端,埠號隨機輸入即可: ./recv 1234
send
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
char role =
'#';
char board[15]
[15];
int key_x =
7, key_y =
7, sock;
struct sockaddr_in dest_addr;
socklen_t addrlen =
sizeof
(dest_addr)
;typedef
struct sockaddr* sap;
intinit_gobang
(const
char
* ip,
short port)
dest_addr.sin_family = af_inet;
dest_addr.sin_port =
htons
(port)
; dest_addr.sin_addr.s_addr =
inet_addr
(ip)
;// 初始化棋盤
for(
int x=
0; x<
15; x++)}
return sock;
}void
show_board
(void
)printf
("\n");
}}void
get_key
(void
)sscanf
(buf,
"%d %d"
,&key_x,
&key_y)
; board[key_x]
[key_y]
='@';}
else
return;}
}}}}
intcount_key
(int off_x,
int off_y)
return count;
}bool check_board
(void
)int
main
(int argc,
char
*const ar**)
if(0>
init_gobang
(ar**[1]
,atoi
(ar**[2]
)))for(;
;)// 切換角色
role = role==
'@'?
'#':
'@';
}}
recv
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
char role =
'@';
char board[15]
[15];
int key_x =
7, key_y =
7, sock;
struct sockaddr_in from_addr;
socklen_t addrlen =
sizeof
(from_addr)
;typedef
struct sockaddr* sap;
intinit_gobang
(short port)
struct sockaddr_in addr =
; addr.sin_family = af_inet;
addr.sin_port =
htons
(port)
; addr.sin_addr.s_addr = inaddr_any;if(
bind
(sock,
(sap)
&addr,
sizeof
(addr)))
// 初始化棋盤
for(
int x=
0; x<
15; x++)}
return sock;
}void
show_board
(void
)printf
("\n");
}}void
get_key
(void
)sscanf
(buf,
"%d %d"
,&key_x,
&key_y)
; board[key_x]
[key_y]
='#';}
else
return;}
}}}}
intcount_key
(int off_x,
int off_y)
return count;
}bool check_board
(void
)int
main
(int argc,
char
*const ar**)
if(0>
init_gobang
(atoi
(ar**[1]
)))for(;
;)// 切換角色
role = role==
'@'?
'#':
'@';
}}
C語言實現雙人對戰五子棋遊戲
在編寫五子棋遊戲前首先對整個專案進行分析 1 五子棋的介面繪製及顯示 2 對輸入的資料進行寫入 3 判斷輸入的資料多對應的位置上是否可以下棋其中包括檢測此位置是否為空及是否超出下棋的有效位置 越界超出棋盤大小 4 判斷五個棋子相連的情況 5 檢測勝利 6 整合所有函式功能實現雙人對戰的效果 以下內容...
C語言實現五子棋
首先展示結果,這是執行以後出現的效果,在 定義棋盤大小 int p maximus maximus 儲存對局資訊 char buff maximus 2 1 maximus 4 3 輸出緩衝器 int cx,cy 當前游標位置 int now 當前走子的玩家,1代表黑,2代表白 int wl,wp ...
C語言實現五子棋
可以稱得上史上最簡單的五子棋版本了。可以使用curses庫來改進頁面和下棋方式。並且對於輸入的座標沒有進行鑑別,如果輸入的座標超過棋盤大小,就會段錯誤退出。我改進了一點,但是還是沒有完全避免這個問題。gobang.c include include define n 15 int chessboar...