打印三子棋棋盘(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-------------
文章来源: https://blog.51cto.com/u_15714963/5559685
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报