使用C语言简单的实现棋盘为5*5的五子棋小游戏,以下为源代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include <stdio.h>
#include <stdlib.h>
 
//初始化一个数组
 
void 
Init(
char 
arr[5][5])        
//arr数组大小可以改变棋盘大小
{
    
int 
i = 0, j = 0;
    
for 
(i = 0; i < 5; i++)
    
{
        
for 
(j = 0; j < 5; j++)
        
{
            
arr[i][j] = 
' '
;
        
}
    
}
}
 
//打印棋盘
 
void 
Print_Cheseboard(
char 
arr[][5])
{
    
int 
i = 0;
    
for 
(i = 0; i < 5; i++)
    
{
        
printf
(
"| %c | %c | %c | %c | %c |\n"
, arr[i][0], arr[i][1], arr[i][2], arr[i][3], arr[i][4]);
        
if 
(i != 4)
           
{
                
printf
(
"|---|---|---|---|---|\n"
);
           
}
    
}
}
 
//玩家下棋
 
void 
Player_Move(
char 
arr[][5])
{
    
int 
x = 0;
    
int 
y = 0;
    
printf
(
"请输入坐标>>>  \n"
);
    
scanf
(
"%d%d"
, &x, &y);
    
x -= 1;
    
y -= 1;
    
if 
(arr[x][y] == 
' '
)
       
{
            
arr[x][y] = 
'X'
;
       
}
    
else
    
{
        
printf
(
"输入有误,请重新输入:\n"
);
        
Player_Move(arr);
    
}
}
 
//电脑下棋
 
void 
Computer_Move(
char 
arr[][5])
{
    
int 
i = 0, j = 0;
    
for 
(i = 0; i < 5; i++)
    
{
        
for 
(j = 0; j < 5; j++)
        
{
            
if 
(arr[i][j] == 
' '
)
                
break
;
        
}
        
if 
(arr[i][j] == 
' '
)
            
break
;
    
}
    
if 
(i*j == 25)
        
exit
(0);
    
else
        
arr[i][j] = 
'0'
;
}
 
//战况判断
 
char 
Check(
char 
arr[][5])
{
    
int 
i = 0;
     
for 
(i = 0; i < 5; i++)
    
{
        
if 
(arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][2] == arr[i][3] && arr[i][3] == arr[i][4])
        
{
            
if 
(arr[i][0] != 
' '
)
                
return 
arr[i][0];
        
}
    
}
    
for 
(i = 0; i < 5; i++)
    
{
        
if 
(arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[2][i] == arr[3][i] && arr[3][i] == arr[4][i])
        
{
            
if 
(arr[0][i] != 
' '
)
                
return 
arr[0][i];
        
}
    
}
    
if 
(arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[2][2] == arr[3][3] && arr[3][3] == arr[4][4])
    
{
        
if 
(arr[0][0] != 
' '
)
            
return 
arr[0][0];
    
}
    
if 
(arr[0][4] == arr[1][3] && arr[1][3] == arr[2][2] && arr[2][2] == arr[3][1] && arr[3][1] == arr[4][0])
    
{
        
if 
(arr[0][4] != 
' '
)
            
return 
arr[0][4];
    
}
    
return  
' '
;
}
 
//主函数
int 
main()
{
    
char 
done=
' '
;
    
char 
arr[5][5];
    
Init(arr); 
    
do
    
{
        
Print_Cheseboard(arr);
        
Player_Move(arr);
        
done = Check(arr);
        
if 
(done != 
' '
)
        
{
            
break
;
        
}
        
Computer_Move(arr);
        
done = Check(arr);
    
while 
(done == 
' '
);
    
if 
(done == 
'X'
)
       
{
        
printf
(
"玩家胜!!!\n"
);
       
}
    
else
       
{
        
printf
(
"电脑胜!!!\n"
);
       
}
    
Print_Cheseboard(arr);
    
system
(
"pause"
);
    
return 
0;
}