1187520285 发表于 2022-3-30 20:31:27

为什么在Linux可以跑,在vs2010就不行呢?

#include <stdio.h>

//三子旗游戏项目

void print(char arr);
void game(char arr, char ch);
int main()
{
        int input, i, j;
        char arr = {0};
        char ch;

        for(i = 0; i < 3; i++)   //初始化棋盘
        {
                for(j = 0; j < 3; j++)
                {
                        arr = ' ';
                }
        }

       
        printf("1.>开始游戏<\n2.>结束游戏<\n");
        scanf("%d", &input);
        getchar();

        if(input == 1)
        {
                printf("游戏规则:\n        请输入键盘上的数字或字母来控制棋子位置\n\n例如:        Q W E\n        A S D\n        Z X C\n\n        7 8 9\n        4 5 6\n        1 2 3\n\n");
                print(arr);
                for(i = 1; i < 10; i++)
                {
                        if(i % 2 == 0)
                        {
                                printf("请乙方输入:");
                                scanf("%c", &ch);
                                getchar();
                        }
                        else
                        {
                                printf("请甲方输入:");
                                scanf("%c", &ch);
                                getchar();
                        }
                        game(arr, ch);
                        print(arr);                       
                }
        }
        else
        {
                printf("无效输入游戏结束\n");
        }
       
        return 0;
}
void print(char arr)
{
        int i, j;

        for(i = 0; i < 3; i++)
        {
                printf("\n-------------\n");
                for(j = 0; j < 3; j++)
                {
                        printf("| %c ", arr);
                }
                printf("|");

        }
                printf("\n-------------\n");
                putchar('\n');
}
void game(char arr, char ch)
{

        switch(ch)
        {
                case '7':
                        arr = '*';
                        break;
                case '8':
                        arr = '*';
                        break;
                case '9':
                        arr = '*';
                        break;
                case '4':
                        arr = '*';
                        break;
                case '5':
                        arr = '*';
                        break;
                case '6':
                        arr = '*';
                        break;
                case '1':
                        arr = '*';
                        break;
                case '2':
                        arr = '*';
                        break;
                case '3':
                        arr = '*';
                        break;
                case 'q':
                        arr = '#';
                        break;
                case 'w':
                        arr = '#';
                        break;
                case 'e':
                        arr = '#';
                        break;
                case 'a':
                        arr = '#';
                        break;
                case 's':
                        arr = '#';
                        break;
                case 'd':
                        arr = '#';
                        break;
                case 'z':
                        arr = '#';
                        break;
                case 'x':
                        arr = '#';
                        break;
                case 'c':
                        arr = '#';
        }
}

ba21 发表于 2022-3-30 20:31:28

多了个安全检查

1187520285 发表于 2022-3-30 21:06:00

ba21 发表于 2022-3-30 20:42
多了个安全检查

好的,我试试

ba21 发表于 2022-3-30 21:23:47

1187520285 发表于 2022-3-30 21:06
好的,我试试

请结贴

yzzc 发表于 2022-4-1 10:32:21

同志,给你找个bug。假如甲在e的位置落子,那么轮到乙时,乙在9的位置落子,那么乙不就把甲给覆盖了?
页: [1]
查看完整版本: 为什么在Linux可以跑,在vs2010就不行呢?