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;
}

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

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

时间: 2024-10-13 15:08:02

c语言实现小游戏_三子棋的相关文章

益智趣味小游戏之三子棋

同五子棋,三子棋即在九宫格里能实现三个棋子连在一起即获胜 //未修改写法,实现了功能但是繁琐不美观且有很多不健全的地方 #include<stdio.h> #include<stdlib.h> void init(int arr[][3])//初始化数组 { int i = 0; for (i = 0; i < 3; i++) { printf(" %c | %c | %c ", arr[i][0], arr[i][1], arr[i][2]); if (

Pascal小游戏 井字棋

一个很经典的井字棋游戏 Pascal源码Chaobs奉上 注意:1.有的FP版本不支持汉语,将会出现乱码.2.别想赢电脑了,平手不错了. 井字过三关: program TicTacToe; uses crt; var a:Array [1..3] of Array [1..3] of char; b:Array [1..3] of Array [1..3] of integer; i,n,g,e,p:integer; t:text; c:char; o:integer; r:integer; s

C语言俄罗斯方块小游戏练习

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

【c语言】 &#160; &#160; &#160; 小游戏——猜字游戏

大家一起来玩一个小游戏吧! srand((unsigned int)time(NULL));//设置随时间变化的随机数 ret=rand()%100; //产生0~100随机数 添加 #include<time.h> 改变100的值,使其产生0~其他的随机数. 自定义游戏菜单menu. #include<stdio.h> #include<stdlib.h> #include<time.h> void  fun1(int ret,int count)//游戏

C语言实现小游戏

#include<stdio.h>void menu(){ printf("***************************\n"); printf("***********1>start*********\n"); printf("***********2>exit *********\n"); printf("***************************\n"); }int main

C语言实现小游戏(三)

#include<stdio.h> #include<stdlib.h>void init(char arr[3][3],int i,int j ){ for (i = 0; i < 3; i++) {  for (j = 0; j < 3; j++)  {   arr[i][j] = ' ';  } } }int prit(char arr[3][3], int i, int j){ for (i = 0; i < 3; i++) {   printf(&quo

C语言实现小游戏(二)——剪刀石头布

#include<stdio.h>void  menu(){ printf("*************欢迎进入石头剪刀布游戏************\n"); printf("*******************1.start>********************\n"); printf("*******************0.exit >********************\n"); printf(&qu

易语言开发小游戏

1.程序部分.程序集 窗口程序集1.程序集变量 数组, 整数型, , "3".程序集变量 冠军, 整数型.程序集变量 终点, 整数型.程序集变量 到终点个数, 整数型 .子程序 显示物体 动画物体.缩放比 = 212动画物体.类型值 = 0数组 [1] = 动画框.创建物体 (动画物体, 10, 30, 真, “1”)动画框.置层次 (数组 [1], 1)动画框.置图片 (数组 [1], #兔子一号, ) 动画物体.缩放比 = 500数组 [2] = 动画框.创建物体 (动画物体, 1

韩顺平_轻松搞定网页设计(html+css+javascript)_第34讲_js超级玛丽小游戏

韩顺平_轻松搞定网页设计(html+css+javascript)_第34讲_js超级玛丽小游戏_学习笔记_源代码图解_PPT文档整理 分类: PHP 2012-12-12 15:01 4256人阅读 评论(0) 收藏 举报 文西马龙:http://blog.csdn.net/wenximalong/ 采用面向对象思想设计超级马里奥游戏人物(示意图) 怎么用通过按键,来控制图片的位置 这个小游戏,用面向对象会很方便,不用面向对象会很麻烦很麻烦,比如以后要讲解的坦克大战的游戏,要是用纯的面向过程或