游戏规则:玩家走一步,电脑走一步。当然电脑怎么走的代码也是你写的。
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
#include <stdio.h>
#include <stdlib.h>
/*******************************************************************************/
//函数功能:初始化棋盘
/*******************************************************************************/
void
init_chess(
char
(*chess_arr)[3])
{
int
i,j;
printf
(
"游戏开始:\n"
);
for
(i = 0;i<3;i++)
{
for
(j = 0;j<3;j++)
{
*(*(chess_arr+i)+j) =
' '
;
}
}
for
(i = 0;i<3;i++)
{
printf
(
" %c | %c | %c"
,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
if
(i!=2)
{
printf
(
"\n---|---|---\n"
);
}
}
printf
(
"\n"
);
}
/*******************************************************************************/
//函数功能:玩家输入下棋的坐标
/*******************************************************************************/
void
input_player_xy(
char
(*chess_arr)[3],
int
x,
int
y)
{
int
i = 0;
if
(chess_arr[x][y]==
' '
)
{
chess_arr[x][y] =
'Y'
;
}
else
{
printf
(
"该步以走过\n"
);
}
for
(i = 0;i<3;i++)
{
printf
(
" %c | %c | %c"
,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
if
(i!=2)
{
printf
(
"\n---|---|---\n"
);
}
}
printf
(
"\n"
);
}
/*******************************************************************************/
//函数功能:打印电脑下棋的坐标
/*******************************************************************************/
void
input_computer_xy(
char
(*chess_arr)[3])
{
int
i = 0;
for
(i = 0;i<3;i++)
{
printf
(
" %c | %c | %c"
,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
if
(i!=2)
{
printf
(
"\n---|---|---\n"
);
}
}
printf
(
"\n"
);
}
/*******************************************************************************/
//函数功能:确定玩家下棋的坐标
/*******************************************************************************/
void
input_player(
char
(*chess_arr)[3])
{
int
x = 0,y = 0;
printf
(
"请下您的棋:"
);
scanf
(
"%d%d"
,&x,&y);
input_player_xy(chess_arr,x,y);
}
/*******************************************************************************/
//函数功能:确定电脑下棋的坐标
/*******************************************************************************/
void
input_computer(
char
(*chess_arr)[3])
{
int
i =0,j = 0;
for
(i = 0;i<3;i++)
{
for
(j = 0;j<3;j++)
{
if
(chess_arr[i][j]==
' '
)
{
chess_arr[i][j] =
'O'
;
goto
flag;
}
}
}
flag:
input_computer_xy(chess_arr);
}
/*******************************************************************************/
//函数功能:主函数判断电脑还是玩家获胜
/*******************************************************************************/
int
main()
{
char
chess_arr[3][3];
int
flag = 1;
init_chess(chess_arr);
while
(flag)
{
int
i = 0,j = 0;
int
diag_flag_player = 0,diag_flag_computer = 0,count = 0;
input_player(chess_arr);
input_computer(chess_arr);
for
(i = 0;i<3;i++)
{
if
(((chess_arr[i][0]==
'Y'
)&&(chess_arr[i][1]==
'Y'
)&&(chess_arr[i][2]==
'Y'
))||
((chess_arr[0][i]==
'Y'
)&&(chess_arr[1][i]==
'Y'
)&&(chess_arr[2][i]==
'Y'
))
)
{
printf
(
"player win!\n"
);
flag = 0;
break
;
}
if
(((chess_arr[i][0]==
'O'
)&&(chess_arr[i][1]==
'O'
)&&(chess_arr[i][2]==
'O'
))||
((chess_arr[0][i]==
'O'
)&&(chess_arr[1][i]==
'O'
)&&(chess_arr[2][i]==
'O'
))
)
{
printf
(
"computer win!\n"
);
flag = 0;
break
;
}
for
(j = 0;j<3;j++)
{
if
(chess_arr[i][j]!=
' '
)
{
count++;
}
}
if
(chess_arr[i][i]==
'Y'
)
{
diag_flag_player++;
}
if
(chess_arr[i][2-i]==
'O'
)
{
diag_flag_computer++;
}
}
if
(diag_flag_player==3)
{
flag = 0;
printf
(
"player win!\n"
);
}
if
(diag_flag_computer==3)
{
flag = 0;
printf
(
"computer win!\n"
);
}
if
(count==9)
{
flag = 0;
printf
(
"player equal computer!\n"
);
}
}
system
(
"pause"
);
return
0;
}
|
由于让大家看的清楚,没有放在多个文件中。
我来解释电脑怎么走的:当人走完后电脑只要看见有空的位置就走。当然这个可以让电脑厉害点。代码由你来写。
本文转自 8yi少女的夢 51CTO博客,原文链接:http://blog.51cto.com/zhaoxiaohu/1711480,如需转载请自行联系原作者