返回

打印三子棋棋盘(11)

发布时间:2022-11-19 09:30:18 350
# 数据# 信息

题目要求:

打印三子棋棋盘。如下形式:

   |   |          //1 打印一行的数据:【   |   |   】
---|---|--- //1 打印分隔符:【---|---|---】
| | //2
---|---|--- //2
| | //3

分析:

1.将打印一行的数据:【   |   |   】和打印分隔符:【---|---|---】视为一个打印组;

2.在打印分隔符【---|---|---】时,应当注意最后一个打印组中不需要打印;

3.打印棋盘DisplayBoard(char board[ROW][COL],int row,int col)函数的设计思路:

思路1:

仅针对3×3的棋盘进行设计

//打印棋盘1
void DisplayBoard(char board[ROW][COL],int row,int col){
int i;
for(i=0;i<row;i++){
//step1:打印一行的数据【 | | 】
printf(" %c | %c |%c \n", board[i][0],board[i][1],board[i][2]);
//step2:打印分割线【---|---|---】
printf("---|---|---\n");
}
}

思路2:

针对3×3棋盘最后一个打印组输出中的“打印分割线【---|---|---】”进行打印处理

//打印棋盘2(优化1)
void DisplayBoard(char board[ROW][COL],int row,int col){
int i;
for(i=0;i<row;i++){
//step1:打印一行的数据【 | | 】
printf(" %c | %c |%c \n", board[i][0],board[i][1],board[i][2]);
//step2:打印分割线【---|---|---】
if(i<row-1)
printf("---|---|---\n");
}
}

思路3:

针对ROW×COL的棋盘进行设计

//打印棋盘3 (优化2)
void DisplayBoard(char board[ROW][COL],int row,int col){
int i;
for(i=0;i<row;i++){
//step1:打印一行的数据【 | | 】
int j;
for(j=0;j<col;j++){
printf(" %c ", board[i][j]);
if(j<col-1)
printf("|");
}

//step2:打印分割线【---|---|---】
if(i<row-1){
for(j=0;j<col;j++){
printf("---");
if(j<col-1)
printf("|");
}
}
}
}

思路4:

针对ROW×COL棋盘,处理每一行最后一列的输出"|"控制,以及最后一组中的”打印分割线【---|---|---】“进行打印处理

//打印棋盘3 (优化3)
void DisplayBoard(char board[ROW][COL],int row,int col){
int i;
for(i=0;i<row;i++){
//step1:打印一行的数据【 | | 】
int j;
for(j=0;j<col;j++){
printf(" %c ", board[i][j]);
if(j<col-1)
printf("|");
}
printf("\n");//打印完一行的数据进行换行

//step2:打印分割线【---|---|---】
if(i<row-1){
for(j=0;j<col;j++){
printf("---");
if(j<col-1)
printf("|");
}
printf("\n");//打印完一行的数据进行换行
}
}
}

代码:

#define _CRT_SECURE_NO_WARNINGS_1
#include
#define ROW 3
#define COL 3

//打印棋盘3 (优化3)
void DisplayBoard(char board[ROW][COL],int row,int col){
int i;
for(i=0;i<row;i++){
//step1:打印一行的数据【 | | 】
int j;
for(j=0;j<col;j++){
printf(" %c ", board[i][j]);
if(j<col-1)
printf("|");
}
printf("\n");//打印完一行的数据进行换行

//step2:打印分割线【---|---|---】
if(i<row-1){
for(j=0;j<col;j++){
printf("---");
if(j<col-1)
printf("|");
}
printf("\n");//打印完一行的数据进行换行
}
}
}

//初始化棋盘
void InitBoard(char board[ROW][COL],int row,int col){
int i,j;
for(i=0;i<row;i++){
for(j=0;j<col;j++){
board[i][j]=' ';
}
}
}

//游戏的整个棋盘实现
void game(){
//数组--存放棋盘走出的棋盘信息
char board[ROW][COL]={0};
//初始化棋盘
InitBoard(board,ROW,COL);
//打印棋盘
DisplayBoard(board,ROW,COL);

}

//菜单
void meun(){
printf("***************************\n");
printf("******1.Play 0.exit*******\n");
printf("***************************\n");
}

//测试
void test(){
int input=0;
do{
meun();
printf("请选择:>");
scanf("%d",&input);
switch(input){
case 1:
printf("三子棋!\n");
game();
break;
case 0:
printf("退出游戏!\n");
break;
default:
printf("选择错误,重新选择!\n");
break;
}

}while(input);
}

//主函数
int main(){
test();
return 0;
}

后续是关于三子棋如何实现的编程设计。

-------------END-------------




特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
Course 1 2022-11-19 09:07:09