File tree 1 file changed +56
-0
lines changed
1 file changed +56
-0
lines changed Original file line number Diff line number Diff line change 15
15
#include <time.h>
16
16
#include <string.h>
17
17
18
+ //解决 placex() 和 placey() 函数中的输入验证逻辑问题,以避免无限循环
19
+
20
+ // 假设有一个全局变量表示棋盘状态
21
+ char board [3 ][3 ];
22
+
23
+ // 其他函数...
24
+
25
+ // 输入验证函数
26
+ int is_valid_input (int input ) {
27
+ return input >= 1 && input <= 9 ; // 检查输入是否在有效范围内
28
+ }
29
+
30
+ // 处理 X 轴输入
31
+ int placex () {
32
+ int x ;
33
+ while (1 ) {
34
+ printf ("Enter position for X (1-9): " );
35
+ if (scanf ("%d" , & x ) != 1 ) {
36
+ printf ("Invalid input. Please enter a number.\n" );
37
+ while (getchar () != '\n' ); // 清空输入缓冲区
38
+ continue ;
39
+ }
40
+ if (is_valid_input (x )) {
41
+ return x ;
42
+ } else {
43
+ printf ("Invalid position. Please enter a number between 1 and 9.\n" );
44
+ }
45
+ }
46
+ }
47
+
48
+ // 处理 Y 轴输入
49
+ int placey () {
50
+ int y ;
51
+ while (1 ) {
52
+ printf ("Enter position for Y (1-9): " );
53
+ if (scanf ("%d" , & y ) != 1 ) {
54
+ printf ("Invalid input. Please enter a number.\n" );
55
+ while (getchar () != '\n' ); // 清空输入缓冲区
56
+ continue ;
57
+ }
58
+ if (is_valid_input (y )) {
59
+ return y ;
60
+ } else {
61
+ printf ("Invalid position. Please enter a number between 1 and 9.\n" );
62
+ }
63
+ }
64
+ }
65
+
66
+ // 其他函数...
67
+
68
+ int main () {
69
+ // 初始化棋盘等...
70
+
71
+ // 游戏循环等...
72
+ return 0 ;
73
+ }
18
74
// Functions Declarations
19
75
static void singlemode ();
20
76
static void doublemode ();
You can’t perform that action at this time.
0 commit comments