首页 > 其他分享 >C语言用数组实现三子棋

C语言用数组实现三子棋

时间:2024-01-15 17:33:06浏览次数:27  
标签:int 三子 C语言 COL board 数组 printf col ROW

//game.h

define ROW 3

define COL 3

include<stdio.h>

void InitBoard(char board[ROW][COL], int row, int col);
void DisplayBoard(char board[ROW][COL], int row, int col);

//game.c

include "game.h"

void InitBoard(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++)
{
board[i][j] = ' ';
}
}
}
void DisplayBoard(char board[ROW][COL], int row, int col)
{
int i = 0;
for (int i = 0; i < row; i++)
{
int j = 0;
for (j = 0; j < col; j++)
{
printf(" %c ", board[i][j]);
if (j < col - 1)
printf("|");
}
printf("\n");
if (i < row - 1)
{
for (j = 0; j < col; j++)
{
printf("---");
if (j < col - 1)
printf("|");
}
printf("\n");
}
}
}

//test.c

include<stdio.h>

include"game.h"

void menu()
{
printf("\n");
printf("
1.play 0.exit
\n");
printf("
**********\n");
}
void game()
{
char board[ROW][COL] = { 0 };//全部空格
InitBoard(board, ROW, COL);//初始化棋盘
DisplayBoard(board, ROW, COL);

}//游戏的整个算法实现
// | |
// ---|---|---
// | |
// ---|---|---
// | |
void test()
{
int input = 0;
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n" );
break;
default:
printf("选择错误!\n");
break;

	}
} while (input);

}
int main()
{
test();
return 0;
}

标签:int,三子,C语言,COL,board,数组,printf,col,ROW
From: https://www.cnblogs.com/lwl0/p/17965898

相关文章

  • 【复健】树状数组2
    树状数组复健2展开目录目录树状数组复健2为什么重写关于树状数组是什么为什么关于lowbit运算代码实现单点修改区间修改求前n项和区间查询例题们注:因为习惯和省事问题,下文的\(lowbit\)代表\(lowerbit\),但后者也会时而出现。为什么重写↑您不觉得我这玩意写得逻辑不......
  • C语言学习随笔-07 auto关键字
    1、在C中auto是一个存储类的关键字。     -auto存储类:auto存储类是所有局部变量默认的存储类。     -auto可以在声明变量的时候根据变量的初始值的类型自动为此变量选择匹配的类型。2、注意事项     -auto声明的变量必须要初始化,否则编译器不能判断变量......
  • C语言---Day6
    15、enum枚举---枚举是C语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读;通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性---声明枚举类型enumDay{MON=1,TUE,WED,THU,FRI,SAT,SUN};---枚举变量的定义:先......
  • Arduino部分C语言含义之--“::”
    "::“在C++中表示作用域,和所属关系。”::"是运算符中等级最高的。有三种作用。1.作用域符号例如:A,B表示两个类,在A,B中都有成员member。那么:A::member就表示类A中的成员member。B::member就表示类B中的成员member。2.全局作用域符号charzhou;//全局变量voids......
  • 【数据结构】C语言实现顺序栈
    顺序栈的C语言实现导言大家好,很高兴又和大家见面啦!!!在上一个篇章中,我们介绍了栈的基本概念,以及栈中的重要术语。通过介绍我们知道了栈的本质也是一种线性表,只不过它是一种操作受限的线性表。因此栈的实现方式与线性表的实现实际上是大同小异的。下面我们就来介绍一下如何通过C语言......
  • Java小细节之数组什么情况下相等,什么情况下不相等
    int[]a={1,2,3};int[]b=a;System.out.println(a==b);此时输出trueint[]a={1,2,3};int[]b={1,2,3};System.out.println(a==b);此时输出为false这是因为数组的机制,int[]b=a,相当于让b和a同时管理这个数组,a和b都是代表同一个数组,所以a==b是正确的,此时对数......
  • 吴师兄学算法day07 167. 两数之和 II - 输入有序数组
    题目:167. 两数之和II-输入有序数组易错点:下标为1开始我的代码:classSolution:deftwoSum(self,numbers:List[int],target:int)->List[int]:right=len(numbers)-1left=0whileleft<right:ans=numbers[left]......
  • Java 使用 数组实现 动态数组
    前述数组是各编程语言中最为基础的一个数据结构,在Java语言中,平时使用也很多,同时,JDK提供了动态数组的实现,ArrayList,这里我使用数组来实现一下动态数组,参考实现importjava.util.function.Consumer;/***使用数组实现动态数组ArrayList*/publicclassDynamicArray......
  • 数组 数组的内存 面向对象 this
    静态初始化全写:数据类型[]数组名=new数据类型{值};简写:数据类型[]数组名={值};动态初始化数据类型[]数组名=new数据类型[数组长度];数组不赋值时会默认初始化一个值整数:0小数:0.0字符:"/uoooo"(显示出来就是一个空格)布尔:FALSE引用数据类型:null数组的内存堆内存......
  • 经典数据结构题目-数组
    704.二分查找解决思路基于数组有序的特性,取其中一个值进行比较,即可淘汰该值左边或右边的元素,缩小搜索的区间使用两指针标记需要遍历的区间,取中间值进行比较,淘汰左边或右边元素,不断移动缩小遍历的区间,即可查到代码publicintsearch(int[]nums,inttarget){......