繁体   English   中英

井字游戏-C圈

[英]Tic Tac Toe - Turns C

我一直在转转,试图找出如何让我的玩家转弯。 问题是要有两名球员打井字游戏,但我不知道该怎么做。 这是我的代码:

#include <stdio.h>
#include <stdlib.h>

void displayBoard(char [3][3]);enter code here
int playerType (int player, char boardArray[3][3]);
int selectLocation(char [3][3], int , int );
char setTurn(char [3][3], int , int , char );


int main()
{
    int player,location;
    char position;
    char boardArray[3][3]={{'1','2','3'},
            {'4','5','6'},
            {'7','8','9'}};

    player= playerType (player, boardArray);

    int i;

    for(i=0;i<9;i++)
    {

        if (player==3)
            break;
        else{

            location=selectLocation(boardArray, player, location);

            position=setTurn(boardArray, location, player, position);
        }

    }


    return 0;
}

void displayBoard(char boardArray [3][3]) //This displays the tic tac toe board
{
    printf("\t%c|%c|%c\n", boardArray[0][0], boardArray[0][1], boardArray[0][2]);
    printf("\t%c|%c|%c\n", boardArray[1][0], boardArray[1][1], boardArray[1][2]);
    printf("\t%c|%c|%c\n", boardArray[2][0], boardArray[2][1], boardArray[2][2]);

}
int playerType (int player, char boardArray [3][3]) //This decides who plays first
{

    player=0;

    printf("Enter 1 for Player X.\n");
    printf("Enter 2 for Player O.\n");
    printf("Enter 3 to Quit. \n");
    scanf("%d", &player);


    if (player == 1)
    {
        printf("You're player X.\n");
        displayBoard(boardArray);
    }
    else if (player == 2)
    {
        printf("You're player O.\n");
        displayBoard(boardArray);
    }
    else if(player == 3)
        printf("You Quit.\n");

    else
        printf("Invalid Entry.\n");




    return player;
}


int selectLocation(char boardArray[3][3], int player, int location) //This takes in the location
{
    printf("Pick a location from 1-9.\n");
    scanf("%d", &location);

    return location;
}

char setTurn(char boardArray[3][3], int location, int player, char position) //This outputs the location
{

    if (player == 1)
    {
        switch(location)
        {
        case 1:
        {
            boardArray[0][0]='x';
            break;
        }
        case 2:
        {
            boardArray[0][1]='x';
            break;
        }
        case 3:
        {
            boardArray[0][2]='x';
            break;
        }
        case 4:
        {
            boardArray[1][0]='x';
            break;
        }
        case 5:
        {
            boardArray[1][1]='x';
            break;
        }
        case 6:
        {
            boardArray[1][2]='x';
            break;
        }
        case 7:
        {
            boardArray[2][0]='x';
            break;
        }
        case 8:
        {
            boardArray[2][1]='x';
            break;
        }
        case 9:
        {
            boardArray[2][2]='x';
            break;
        }
        default:
            printf("invalid");
        }

    }
    else if (player == 2)
    {
        switch(location)
        {
        case 1:
        {
            boardArray[0][0]='O';
            break;
        }
        case 2:
        {
            boardArray[0][1]='O';
            break;
        }
        case 3:
        {
            boardArray[0][2]='O';
            break;
        }
        case 4:
        {
            boardArray[1][0]='O';
            break;
        }
        case 5:
        {
            boardArray[1][1]='O';
            break;
        }
        case 6:
        {
            boardArray[1][2]='O';
            break;
        }
        case 7:
        {
            boardArray[2][0]='O';
            break;
        }
        case 8:
        {
            boardArray[2][1]='O';
            break;
        }
        case 9:
        {
            boardArray[2][2]='O';
            break;
        }
        default:
            printf("Invalid");
        }
    }

    printf("\t%c|%c|%c\n", boardArray[0][0], boardArray[0][1], boardArray[0][2]);
    printf("\t%c|%c|%c\n", boardArray[1][0], boardArray[1][1], boardArray[1][2]);
    printf("\t%c|%c|%c\n", boardArray[2][0], boardArray[2][1], boardArray[2][2]);


    return position;

}

更改player selection部分player= playerType (player, boardArray); 像这样在for循环中-

int player,location;
char position;
char boardArray[3][3]={{'1','2','3'},
                       {'4','5','6'},
                       {'7','8','9'}};
int i;
for(i=0;i<9;i++)
{
    player= playerType (player, boardArray);
    if (player==3)
        break;
    else
    {
        location=selectLocation(boardArray, player, location);
        position=setTurn(boardArray, location, player, position);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM