649583061 发表于 2014-12-20 11:06:05

一个小游戏

做了好长时间终于做出了一个井字棋游戏,


当初是看书上有的就试着做了一下,没想到都是bug,后来对照着书改了一下,终于搞定了!!
#include <stdio.h>

void main()
{
        int x = 0;//玩家输入字符
        char board = { { '1', '2', '3' }, { '4', '5', '6' }, { '7', '8', '9' } };/*棋盘*/
       
        int i = 0;//控制循环
        int play = 1;
        int winner = 0;

        char player = '\0';
        char keep = 0;
        int game_stat = 1;

        int row = 0;
        int column = 0;//row为行,column为列;

        printf("***这是一个井字棋小游戏***\n");
        printf("***载入中***\n\n");

        /*显示棋盘*/
        printf("+---+---+---+\n");
        printf("| %c | %c | %c |\n", board, board, board);
        printf("+---+---+---+\n");
        printf("| %c | %c | %c |\n", board, board, board);
        printf("+---+---+---+\n");
        printf("| %c | %c | %c |\n", board, board, board);

        printf("\n按回车键继续……\n");
        getchar();
        printf("请输入1-9任意数字对应方格中的数字\n"
                "玩家1棋子为@,玩家2为X");

        /*游戏开始*/

        for (i = 0; i < 9;i++)
        {
                play = i % 2 + 1;//换玩家下棋

                printf("+---+---+---+\n");
                printf("| %c | %c | %c |\n", board, board, board);
                printf("+---+---+---+\n");
                printf("| %c | %c | %c |\n", board, board, board);
                printf("+---+---+---+\n");
                printf("| %c | %c | %c |\n", board, board, board);
                printf("输入:\n你的棋子是%c\n玩家%d行动,",(play == 1) ? '@' : 'X' , play);

                do
                {
                        scanf("%d", &x);

                        row = --x / 3;
                        column = x % 3;
                        if (x < 0 || x>9 || board > '9')
                        {
                                printf("重新输入!");
                        }
                } while (x < 0 || x>9 || board > '9');

                board = (play == 1) ? '@' : 'X';

                /*查找胜利者*/
                if (board == board && board == board
                        || board == board && board == board
                        || board == board && board == board
                        || board == board && board == board
                        || board == board && board == board
                        || board == board && board == board
                        || board == board && board == board
                        || board == board && board == board)
                {
                        printf("+---+---+---+\n");
                        printf("| %c | %c | %c |\n", board, board, board);
                        printf("+---+---+---+\n");
                        printf("| %c | %c | %c |\n", board, board, board);
                        printf("+---+---+---+\n");
                        printf("| %c | %c | %c |\n", board, board, board);

                        winner = play;
                        printf("玩家%d,你赢了!!\n游戏结束!", winner);
                        break;

                }

        }
        getchar();
}



黄志伟 发表于 2014-12-20 12:43:39

要是能做成图形界面的话就牛爆了,不过这也很6
页: [1]
查看完整版本: 一个小游戏