C语 三子棋小游戏
#include <stdio.h>
#include <Windows.h>
#include<time.h>
#define row 3
#define list 3 void init_Board(char board[row][list]) //对二维数组元素全部赋值为 “ ”
{
memset(board,' ',row*list*sizeof(char));
} void display_Board(char board[row][list])//画出棋谱
{
system("cls");
int i = ;
for (i = ; i < row; i++)
{
printf(" %c |%c | %c\n", board[i][], board[i][], board[i][]);
if (i != ){
printf(" --|--|--\n");
}
}
printf("(X代表玩家,0代表电脑)\n") ;
} void man_Play(char board[row][list]) //玩家下“子”
{
int i = ;
int j = ;
flag:
printf("选择一个坐标:\n");
scanf("%d", &i);
if (i > || i <)
{
printf("横坐标越界,重输:\n");
goto flag;
}
scanf("%d", &j);
if (j > || j <)
{
printf("纵坐标越界,重输:\n");
goto flag;
}
if (board[i-][j-] == ' ')
board[i-][j-]='X';
else
{
printf("所选位置已被下过,请重新输入\n");
goto flag;
}
} char is_Win(char board[row][list])
{
int i = ;
int j = ;
for (i = ; i < row; i++)
{
if ((board[i][] == board[i][]) && (board[i][] == board[i][]))
return board[i][];
}
for (j = ; j < row; j++)
{
if ((board[][j] == board[][j]) &&( board[][j] == board[][j]))
return board[][j];
}
if ((board[][] == board[][]) && (board[][] == board[][]))
return board[][];
if ((board[][] == board[][]) && (board[][] == board[][]))
return board[][];
return ' ';
}
void computer_Play(char board[row][list]) //电脑下“子”
{
int i = ;
int j = ;
while ()
{
srand((int)time());//设置随机种子
i = rand() % ; //产生随机数
j = rand() % ;
if (board[i][j] == ' ')
{
board[i][j] = '';
break;
}
}
} int is_Full(char board[row][list])
{
int i = ;
int j = ;
int count = ;
for (i = ; i < row;i++)
for (j = ; j < list; j++)
{
if (board[i][j] == ' ')
count++;
}
return count;
} int main()
{
char board[row][list];
init_Board(board);
display_Board(board);
while ()
{
if ((is_Full(board) > ))
{
man_Play(board);
display_Board(board);
printf("\n");
if (is_Win(board) == 'X')
{
printf("玩家胜\n");
break;
}
}
else
{
printf("平局!");
break;
}
if ((is_Full(board) >))
{
computer_Play(board);
display_Board(board);
printf("\n");
if (is_Win(board) == )
{
printf("电脑胜\n");
break;
}
}
else
{
printf("平局!");
break;
}
}
printf("游戏结束!\n");
system("pause");
return ;
}
C语 三子棋小游戏的更多相关文章
- React + Ts 实现三子棋小游戏
在这里阅读效果更佳 还记得当年和同桌在草稿纸上下三子棋的时光吗 今天我们就用代码来重温一下年少(假设你有react基础,没有也行,只要你会三大框架的任意一种,上手react不难) 游戏规则 双方各执一 ...
- 根据之前的博文,我把给同学做的三子棋小游戏的代码发出来,只是界面很丑很丑,AI算法很笨很笨,过几天我传到网盘上,提供大家下载娱乐
background_image_filename = 'blackground.png' black_mouse_image_filename = 'black.png' white_mouse_i ...
- 井字棋小游戏(C语言)
最近沉迷于<NetHack>.<DCSS>等字符游戏,对其很感兴趣,于是用C语言写了个字符界面的井字棋小游戏.欢迎大家指教. 编写时遇到了一些问题,我原先准备用循环,直到读取到 ...
- c语言小游戏-三子棋的完成
三子棋的实现 一.实现思路 1.初始化数组 三子棋是九宫格的格式,所以用二维数组接收数据.用‘O’代表电脑下的子,‘X’代表玩家下的子.未下子的时候初始化 ’ ‘(space).则二维数组为“char ...
- [HTML5实现人工智能]小游戏《井字棋》发布,据说IQ上200才能赢
一,什么是TicTacToe(井字棋) 本 游戏 为在下用lufylegend开发的第二款小游戏.此游戏是大家想必大家小时候都玩过,因为玩它很简单,只需要一张草稿纸和一只笔就能开始游戏,所以广受儿 ...
- 『HTML5实现人工智能』小游戏《井字棋》发布,据说IQ上200才能赢【算法&代码讲解+资源打包下载】
一,什么是TicTacToe(井字棋) 本游戏为在下用lufylegend开发的第二款小游戏.此游戏是大家想必大家小时候都玩过,因为玩它很简单,只需要一张草稿纸和一只笔就能开始游戏,所以广受儿童欢迎. ...
- 介绍一款Android小游戏--交互式人机对战五子棋
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编 ...
- “倔驴”一个h5小游戏的实现和思考(码易直播)——总结与整理
3月23日晚上8点半(中国队火拼韩国的时候),做了一期直播分享.15年做的一个小游戏,把核心代码拿出来,现场讲写了一遍,结果后面翻车了,写错了两个地方,导致运行效果有点问题,直播边说话边写代码还真不一 ...
- JQuery&原生js ——实现剪刀石头布小游戏
前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write L ...
随机推荐
- SELECT与SET对变量赋值
SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们并没有注意,其实这两 ...
- MySQL中变量的总结
本文对MySQL中局部变量.用户变量.系统变量的理解进行总结. 一.局部变量 局部变量由DECLARE语句声明: DECLARE var_name[,...] type [DEFAULT value] ...
- win10 uwp 列表模板选择器
本文主要讲ListView等列表可以根据内容不同,使用不同模板的列表模板选择器,DataTemplateSelector. 如果在 UWP 需要定义某些列的显示和其他列不同,或者某些行的显示和其他行不 ...
- 张高兴的 Windows 10 IoT 开发笔记:HC-SR04 超声波测距模块
HC-SR04 采用 IO 触发测距.下面介绍一下其在 Windows 10 IoT Core 环境下的用法. 项目运行在 Raspberry Pi 2/3 上,使用 C# 进行编码. 1. 准备 H ...
- uva 10118,记忆化搜索
这个题debug了长达3个小时,acm我不能放弃,我又回来了的第一题! 一开始思路正确,写法不行,结果越改越乱 看了网上某神的代码,学习了一下 coding+debug:4小时左右,记忆化搜索+dp类 ...
- Java IO(IO流)-2
IO流 第一部分 (OutputStreamWriter BufferOutputStream) 转换流 超类为Reader和Writer 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流 ...
- 快速排序算法分析--C++版
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试喜欢考这个. 快速排序是C.R.A.Hoar ...
- NOIP2015运输计划(树上前缀和+LCA+二分)
Description 公元 2044 年,人类进入了宇宙纪元. L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球. 小 P 掌管 ...
- WSGI框架及Paste+Pastedeploy+route+webob开发
一.前言 WSGI服务器 一个Web服务器网关接口 (WSGI)服务器实现了WSGI接口的Web服务器端运行的Python的Web应用程序. 为什么需要WSGI? 传统的Web服务器不理解或有任何方式 ...
- Java基础总结--流程控制
Java流程控制* 顺序结构--最常见的执行情况,语句按照出现的先后次序依次执行.* 判断结构--对条件进行判断,执行相应的语句.有三种常见的形式< if(判断条件){语句;}--为真执行语句, ...