File tree Expand file tree Collapse file tree 1 file changed +56
-0
lines changed Expand file tree Collapse file tree 1 file changed +56
-0
lines changed Original file line number Diff line number Diff line change 1515#include <time.h>
1616#include <string.h>
1717
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+ }
1874// Functions Declarations
1975static void singlemode ();
2076static void doublemode ();
You can’t perform that action at this time.
0 commit comments