C语言井字棋命令行版
先看下效果
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
void dyqp();//声明一下函数 打印棋盘
void dnxq();//声明一下函数 电脑下棋
void wjxq();//声明一下函数 玩家下棋
int pdsy();//声明一下函数 判断输赢
int qp[9] = {0}; //棋盘数组 1表示人下,-1表示电脑下,0表示空的
int main(){
int js;//结束标记,等于1表示游戏结束了
dyqp();//打印棋盘
printf("输入要下的位置\n");
while (1){
wjxq();
js=pdsy();
if (js == 1){//等于1表示游戏结束了
break;
}
dnxq();
js=pdsy();
if (js == 1){//结束标记,等于1表示游戏结束了
break;
}
}
system("pause");
return 0;
}
void dyqp(){//打印棋盘 1表示人下,-1表示下,0表示空的
int i;
printf("------------\n");
for (i = 0; i <= 8; i++){
if (qp[i] == 0){//0表示空的,空的打印下划线
printf("__ |");
}
if (qp[i] == 1){
printf("X |");//1表示人下,人下打印X
}
if (qp[i] == -1){
printf("O |");//-1表示电脑下,电脑下打印O
}
if (i == 2 || i == 5||i==8){
printf("\n");//打印换行
}
}
printf("------------\n");
return;
}
void dnxq(){//电脑下棋
while (1){
srand((unsigned int)time(NULL));
int dn = rand() % 9;//电脑下棋,随机产生0-8
if (qp[dn] == 0){//如果这个位置没人下过,就下,否则while循环,继续产生新的随机数
qp[dn] = -1;
break;
}
}
dyqp();//电脑下棋后打印棋盘
return;
}
void wjxq(){//玩家下棋
int wj; //表示玩家输入的位置 从0-8中选
scanf_s("%d", &wj);
qp[wj] = 1;
dyqp();
return ;
}
int pdsy(){// 判断输赢
//0 1 2
//3 4 5
//6 7 8
//如果三行 三列 2对角线等于3,就是玩家赢 等于-3就是电脑赢,都不满足就是和
if (qp[0] + qp[1] + qp[2] == 3||
qp[3] + qp[4] + qp[5] == 3 ||
qp[6] + qp[7] + qp[8] == 3 ||
qp[0] + qp[3] + qp[6] == 3 ||
qp[1] + qp[4] + qp[7] == 3 ||
qp[2] + qp[5] + qp[8] == 3 ||
qp[0] + qp[4] + qp[8] == 3 ||
qp[2] + qp[4] + qp[6] == 3
){
printf("玩家赢\n");
return 1;//返回1表示游戏结束了
}
else if (
qp[0] + qp[1] + qp[2] == -3 ||
qp[3] + qp[4] + qp[5] == -3 ||
qp[6] + qp[7] + qp[8] == -3 ||
qp[0] + qp[3] + qp[6] == -3 ||
qp[1] + qp[4] + qp[7] == -3 ||
qp[2] + qp[5] + qp[8] == -3 ||
qp[0] + qp[4] + qp[8] == -3 ||
qp[2] + qp[4] + qp[6] == -3
){
printf("电脑赢\n");
return 1;//返回1表示游戏结束了
}
else {//不是玩家赢,也不是电脑赢,并且棋盘不是空的,那就是和棋
int i;
for (i = 0; i <= 8; i++){
if (qp[i] == 0){//等于0说明棋盘不空,返回
return 0;
}
}
printf("和棋\n");//都不等于0,和棋
return 1;//返回1表示游戏结束了
}
return 0;
}
C语言井字棋命令行版相关推荐
- 哈哈哈~井字棋(无心版),快来初步感受一下代码世界的乐趣吧
文章目录 前言 正文 一,游戏实现基本流程 二.游戏实现步骤 1.创建工程及分配功能 2.给头文件上内容 3.当当当,主函数出场 4.游戏函数里面:打印游戏菜单 5.棋盘初始化 6.打印棋盘 7.玩家 ...
- c语言井字棋程序设计报告,井字棋游戏(课程设计)总结报告.doc
井字棋游戏(课程设计)总结报告 C语言贪吃蛇游戏设计总结报告 PAGE PAGE 5 丽水学院 计算机信息学院 <C语言课程设计(短一)> 指 导 书 二 ○ 一一 年 三 附件二 封面格 ...
- C语言井字棋电脑相互对战
用C语言实现的井字棋电脑相互对战游戏,仅作个人记录 head.c #include<stdio.h> #include<stdbool.h> #include<windo ...
- c语言井字棋程序框图,C语言实现井字棋(三子棋)
本文实例为大家分享了C语言实现井字棋的具体代码,供大家参考,具体内容如下 一.实现思路 1.初始化数组 三子棋是九宫格的格式,所以用二维数组接收数据.用'O"代表电脑下的子,'X" ...
- C语言 VS2019编译器实现简易井字棋小游戏~
文章目录 井字棋小游戏 游戏实现 一.创建新项目及游戏文件 二.引头文件,定义符号 三.主函数 打印菜单 四.开始游戏 1.创建二维数组 2.初始化棋盘 3.打印棋盘 4.玩家下棋 5.电脑下棋 6. ...
- 又是下棋篇——井字棋( •̀ ω •́ )✧具体实现过程
C语言井字棋的实现方法之一 井字棋作为最简单的一种下棋类型,实现难度并不高,同时和我之前写的五子棋的实现本质是一样的. 通过判断四个方向上连续三个棋子是不是一致的,从而判断是否三子成线,赢得了游戏. ...
- C语言小游戏->井字棋
井字棋想必大家都玩过,今天教大家一个用C语言写一个井字棋小游戏 这个游戏大致可以分为两个部分:游戏菜单和游戏过程. 首先就是创建一个menu()函数来写菜单页面 这里出现了不同指令对应的结果,即输入1 ...
- C语言实现小游戏之井字棋
目录 前言 一.井字棋游戏的主流程 二.游戏部分 1.游戏函数 2.初始化棋盘 3.打印棋盘 4.玩家下棋 5.电脑下棋(两个难度等级) 6.判断游戏是否结束 三. 源码展示 总结 前言 这是我在学习 ...
- C语言第十课:编写井字棋游戏(综合练习1)
目录 前言: 一.文件建立: 1.头文件game.h: 2.函数定义文件game.c: 3.工程测试文件test.c: 二.编写井字棋游戏: 1.程序整体执行思路: 2.menu菜单函数实现: 3.g ...
最新文章
- 人工智能激活千亿级交通安全市场
- 【解决】Word 在试图打开文件时遇到错误 请尝试下列方法:* xxx * xxx * xxx
- 【MATLAB】基本绘图 ( 线条设定 | 线条设定组合 )
- postman接口测试系列:接口参数化和参数的传递
- php程序员可能不了解的编程细节
- python列表推导式格式_Python列表推导式(for表达式)及用法
- ubuntu16 自启动mysql_Ubuntu16.04关闭apache/mysql/php的开机启动
- while循环语句用法_EXCEL退出DO LOOP循环语句|until、while
- Equipment delta download debug from ERP side
- powerbi的功能介绍_Power BI:1分钟快速生成可视化报表
- vue 项目如何引入微信sdk,使用微信接口
- sass报 error (Line XX: Invalid GBK character \xE4) 的解决办法
- 神经网络基础模型--Logistic Regression的理论和实践
- win7 计算器 android,win7计算器
- 笔记本电脑装android系统安装教程,电脑上安装Android 10小白教程,大屏Android用起来...
- Redis 哨兵安装-Centos
- ip地址与long数值互相转换
- Oracle什么情况使用omf,ORACLE OMF介绍
- java io broken pipe解决_报错!!java.io.IOException: 断开的管道 中文报错?Broken pipe?这次发生的报错不影响业务,已有解决方案...
- Flex布局实战:支付宝首页
热门文章
- Java基础入门必备词汇汇
- KubeEdge设备接入应用的调试
- 青楼梦-(在这里定一个小目标哈)
- 全文同音文言文——智侄治蛭
- ISO 11898,14229,15765,UDS的区别?
- 【Mac】Macbook Finder 从当前位置快速打开终端
- 做技术的,如何保持一个好心态!
- (附源码)springboot基于vue.js的掌上博客系统的设计与实现 毕业设计 063131
- 第七章第三题(计算数字的出现次数)(Count occurrence of numbers) - 编程练习题答案
- 英特尔中国研究院深度学习领域最新成果——“动态外科手术”算法