码迷,mamicode.com
首页 > 编程语言 > 详细

c语言实现小游戏_三子棋

时间:2015-11-10 19:39:47      阅读:318      评论:0      收藏:0      [点我收藏+]

标签:c语言实现小游戏

游戏规则:玩家走一步,电脑走一步。当然电脑怎么走的代码也是你写的。

#include <stdio.h>
#include <stdlib.h>
/*******************************************************************************/
//函数功能:初始化棋盘
/*******************************************************************************/
void init_chess(char (*chess_arr)[3])
{
	int i,j;
	printf("游戏开始:\n");

	for(i = 0;i<3;i++)
	{
		for(j = 0;j<3;j++)
		{
			*(*(chess_arr+i)+j) = ‘ ‘;
		}
	}
	for(i = 0;i<3;i++)
	{
		printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
		if(i!=2)
		{
			printf("\n---|---|---\n");
		}
	}
	printf("\n");
}
/*******************************************************************************/
//函数功能:玩家输入下棋的坐标
/*******************************************************************************/
void input_player_xy(char (*chess_arr)[3],int x,int y)
{
	int i = 0;
	if(chess_arr[x][y]==‘ ‘)
	{
		chess_arr[x][y] = ‘Y‘;
	}
	else
	{
		printf("该步以走过\n");
	}
	for(i = 0;i<3;i++)
	{
		printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
		if(i!=2)
		{
			printf("\n---|---|---\n");
		}
	}
    printf("\n");
}
/*******************************************************************************/
//函数功能:打印电脑下棋的坐标
/*******************************************************************************/
void input_computer_xy(char (*chess_arr)[3])
{
	int i = 0;
	for(i = 0;i<3;i++)
	{
		printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
		if(i!=2)
		{
			printf("\n---|---|---\n");
		}
	}
	printf("\n");
}
/*******************************************************************************/
//函数功能:确定玩家下棋的坐标
/*******************************************************************************/
void input_player(char (*chess_arr)[3])
{
	int x = 0,y = 0;
	printf("请下您的棋:");
	scanf("%d%d",&x,&y);
	input_player_xy(chess_arr,x,y);

}
/*******************************************************************************/
//函数功能:确定电脑下棋的坐标
/*******************************************************************************/
void input_computer(char (*chess_arr)[3])
{
	int i =0,j = 0;
	for(i = 0;i<3;i++)
	{
		for(j = 0;j<3;j++)
		{
			if(chess_arr[i][j]==‘ ‘)
			{
			  chess_arr[i][j] = ‘O‘;
			  goto flag;
			}
		}
	}
flag:
    input_computer_xy(chess_arr);
}
/*******************************************************************************/
//函数功能:主函数判断电脑还是玩家获胜
/*******************************************************************************/
int main()
{
	char chess_arr[3][3];
	int flag = 1;
	
	init_chess(chess_arr);
	while(flag)
	{
		int i = 0,j = 0;
		int diag_flag_player = 0,diag_flag_computer = 0,count = 0;
		input_player(chess_arr);
		input_computer(chess_arr);
		for(i = 0;i<3;i++)
		{
			if(((chess_arr[i][0]==‘Y‘)&&(chess_arr[i][1]==‘Y‘)&&(chess_arr[i][2]==‘Y‘))||
			     ((chess_arr[0][i]==‘Y‘)&&(chess_arr[1][i]==‘Y‘)&&(chess_arr[2][i]==‘Y‘))
			  )
			{
				printf("player win!\n");
				flag = 0;
				break;
			}
			if(((chess_arr[i][0]==‘O‘)&&(chess_arr[i][1]==‘O‘)&&(chess_arr[i][2]==‘O‘))||
			          ((chess_arr[0][i]==‘O‘)&&(chess_arr[1][i]==‘O‘)&&(chess_arr[2][i]==‘O‘))
			       )
			{
				printf("computer win!\n");
				flag = 0;
				break;
			}
		    for(j = 0;j<3;j++)
			{
				if(chess_arr[i][j]!=‘ ‘)
				{
					count++;
				}
			}
			if(chess_arr[i][i]==‘Y‘)
			{
				diag_flag_player++;
			}
			if(chess_arr[i][2-i]==‘O‘)
			{
				diag_flag_computer++;
			}
		}
		if(diag_flag_player==3)
		{
			flag = 0;
			printf("player win!\n");
		}
		if(diag_flag_computer==3)
		{
			flag = 0;
			printf("computer win!\n");
		}
		if(count==9)
		{
			flag = 0;
			printf("player equal computer!\n");
		}
	}
	system("pause");
	return 0;
}

由于让大家看的清楚,没有放在多个文件中。

我来解释电脑怎么走的:当人走完后电脑只要看见有空的位置就走。当然这个可以让电脑厉害点。代码由你来写。

c语言实现小游戏_三子棋

标签:c语言实现小游戏

原文地址:http://zhaoxiaohu.blog.51cto.com/10778115/1711480

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!