Small game---Three pieces

text.c file
#include"game.h"
intmain()
{
	int a=0;
	int count=1;
	do
	{
        menu();
		scanf("%d",&a);
		switch(a)
		{
		case 1:
			game();
			break;
		case 0:
			count--;
			break;
		default:
			printf("Incorrect selection, please re-enter!\n");
			break;
		}
	}while(count);
	return 0;
}

game.h file
#ifndef _GAME_H
#define _GAME_H

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

#define ROW 3
#define COL 3

void menu();
void game();
void init_board(char board[ROW][COL],int row,int col);
void print_board(char board[ROW][COL],int row,int col);
void player_move(char board[ROW][COL],int row,int col);
void computer_move(char board[ROW][COL],int row,int col);
char is_win(char board[ROW][COL],int row,int col);
int is_full(char board[ROW][COL],int row,int col);
#endif//_GAME_H_

game.c file

#include"game.h"
void menu()
{
    printf("**************************\n");
    printf("****  1.play  0.exit  ****\n");
    printf("**************************\n");
}

void init_board(char board[ROW][COL],int row,int col)
{
	 memset(board,' ',ROW*COL);
}
void print_board(char board[ROW][COL],int row,int col)
{
	int i=0;
	for(i=0;i<row;i++)
	{
		printf(" %c | %c | %c \n",board[i][0],board[i][1],board[i][2]);
		if(i<row-1)
		{
		printf("---|---|---\n");
		}
	}
}
void player_move(char board[ROW][COL],int row,int col)
{
    int x=0,y=0;
	while(1)
	{		
		printf("Please enter the coordinates->\n");
		scanf("%d %d",&x,&y);
		if(x>0 && x<4 && y>0 && y<4)
		{
			if(board[x-1][y-1]=' ')
			{
			board[x-1][y-1]='*';
			break;
			}
			else
				printf("The coordinate is occupied->\n");
		}
		else
			printf("Input coordinate error->\n");
	}
}
void computer_move(char board[ROW][COL],int row,int col)
{
	int a=0,b=0;
    while(1)
	{
	    a=rand()%row;
	    b=rand()%col;
		if(board[a][b]==' ')
		{
			board[a][b]='0';
			break;
		}
	}
}
static int is_full(char board[ROW][COL],int row,int col)//判断表满  
{  
    int i=0;  
    int j=0;
    for (i=0;i<row;i++)  
    {  
        
        for (j=0;j<col;j++)  
        {  
            if (board[i][j]==' ')  
            return 0;  
        }  
    }  
    return 1;  
}  
char is_win(char board[ROW][COL],int row,int col)
{
	int i=0;
	for(i=0;i<row;i++)
	{
		if((board[i][0]==board[i][1])&&(board[i][1]==board[i][2]))
		{
				return board[i][0];
		}
	}
    for(i=0;i<col;i++)
	{
		if((board[0][i]==board[1][i])&&(board[1][i]==board[2][i]))
		{
				return board[0][i];
		}
	}
	if((board[0][0]==board[1][1])&&(board[1][1]==board[2][2]))
	{
			return board[0][0];
	
	}
	if((board[2][0]==board[1][1])&&(board[1][1]==board[0][2]))
	{	
		return board[2][0];
	}
    if (is_full(board,ROW,COL)==1)  
    {  
        return 'Q';  
    }  
    else  
        return ' ';  
}
  
int board_full(char board[ROW][COL])//Checkerboard full function  
{  
    int i= 0;  
    int j =0;  
    for(i=0;i<3;i++)  
    {  
        for(j=0;j<3;j++)  
        {  
            if (board[i][j]==' ')  
                return 0;  
        }  
    }  
 return 1;
}  
void game()
{
	char i;
	char board[ROW][COL];
    init_board(board,ROW,COL);  
    print_board(board,ROW,COL);
    while (1)  
    {  
        printf("Player goes ->:\n");  
        player_move(board,ROW,COL);  
        print_board(board,ROW,COL);  
        i=is_win(board,ROW,COL);  
        if(i!= ' ')  
            break;  
        printf("Computer goes ->:\n");  
        computer_move(board,ROW,COL);  
        print_board(board,ROW,COL);  
        i=is_win(board,ROW,COL);  
        if(i!=' ')  
            break;  
    }  
    if(i=='*')  
    {  
        printf("Player wins!\n");  
    }  
    else if(i=='0')  
    {  
        printf("Computer wins!\n");  
    }  
    else if(i=='Q')  
    {  
        printf("Tie!\n");  
    }  
}  
  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325405684&siteId=291194637