当前位置: 首页 > news >正文

嘉兴高端网站一键建站免费

嘉兴高端网站,一键建站免费,老司机网站做暖暖,代理注册公司怎么收费目录(标2的是我自己写的一堆问题不知道怎么改) 开始菜单1打印棋盘1玩家下棋1电脑下棋1判断输赢1开始菜单2打印棋盘2选择先后2玩家下棋2电脑下棋2判断输赢2完整代码文件else.h文件else.c文件test.c 开始菜单1 void menu()//打印菜单 {printf("*****…

目录(标2的是我自己写的一堆问题不知道怎么改)

  • 开始菜单1
  • 打印棋盘1
  • 玩家下棋1
  • 电脑下棋1
  • 判断输赢1
  • 开始菜单2
  • 打印棋盘2
  • 选择先后2
  • 玩家下棋2
  • 电脑下棋2
  • 判断输赢2
  • 完整代码
    • 文件else.h
    • 文件else.c
    • 文件test.c

开始菜单1

void menu()//打印菜单
{printf("******************\n");printf("******1.play******\n");printf("******0.exit******\n");printf("******************\n");
}

打印棋盘1

//存放下棋数据
char board[ROW][COL] = { 0 };
//初始化棋盘为全空格
InitBoard(board, ROW, COL);
//初始化棋盘为空格
void InitBoard(char board[ROW][COL], int row, int col)
{int i = 0;for (i = 0; i < row; i++){int j = 0;for (j = 0; j < col; j++){board[i][j] = ' ';}}
}
//打印棋盘
void DisplayBoard(char board[ROW][COL], int row, int col)//打印棋盘
{//打印数据int i = 0;for (i = 0; i < row; i++){int j = 0;for (j = 0; j < col; j++){printf(" %c ",board[i][j]);//别忘记board[i][j]if (j < col - 1){printf("|");}}printf("\n");//打印分割行if (i < row-1)//记住   row-1{for (j = 0; j < col; j++){printf("---");if (j < col - 1){printf("|");}}printf("\n");}}
}

玩家下棋1

//玩家下棋
void player_move(char board[ROW][COL], int row, int col)
{int x = 0;int y = 0;printf("玩家下棋\n");while (1){printf("请输入坐标:");scanf("%d %d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col){if (board[x - 1][y - 1] == ' '){board[x - 1][y - 1] = '*';break;}else{printf("该坐标被占用,请重新输入\n");}}else{printf("非法坐标,请重新输入\n");}}

电脑下棋1

void computer_move(char board[ROW][COL], int row, int col)
{int x = 0;int y = 0;printf("电脑下棋:>\n");while (1){x = rand() % 3;//范围(a,b)用rand表示就是rand()%(b-a+1)y = rand() % 3;if (board[x][y] == ' ')//判断是否为空格,因为只有这一个条件,所以满足这个条件就可以下{board[x][y] = '#';break;}}
}

判断输赢1

while (1)//玩家和电脑轮流下棋,直到一方胜利{   //玩家下棋player_move(board, ROW, COL);//打印棋盘DisplayBoard(board, ROW, COL);ret = is_win(board, ROW, COL);if (ret != 'C'){break;}//电脑下棋computer_move(board, ROW, COL);//打印棋盘DisplayBoard(board, ROW, COL);ret = is_win(board, ROW, COL);if (ret != 'C'){break;}}if (ret == '*'){printf("玩家获胜\n");}else if (ret == '#'){printf("电脑获胜\n");}else // (ret == 'Q'){printf("平局\n");}DisplayBoard(board, ROW, COL);
}//判断输赢
char is_win(char board[ROW][COL], int row, int col)
{//判断每一行是否都相等int i = 0;for (i = 0; i < col; i++){if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][1] != ' '){return  board[i][1];}}//判断每一列是否都相等for (i = 0; i < col; i++){if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[1][i] != ' '){return board[i][1];}}//判断对角线是否都相等if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] != ' '){return board[1][1];}if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ' '){return board[1][1];}//判断平局if (is_full(board, row, col) == 1){return 'Q';}//继续return 'C';
}

开始菜单2

int  begin()
{printf("##########请选择##########\n");printf("##########1:play##########\n");printf("##########0:exit##########\n");printf("##########################\n");int a = 0;scanf("%d", &a);if (a == 0 || a == 1)return 1;else{printf("输入错误,请重新输入\n");return 0;}
}

打印棋盘2

void play(char arr[3][3])
{for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){if (j < 2)printf(" %c |", arr[i][j]);elseprintf(" % c  ", arr[i][j]);}printf("\n");printf("___|___|___\n");}
}

选择先后2

int  select()
{int select1;printf("##########################\n");printf("######请选择先后顺序######\n");printf("#########1:玩家先#########\n");printf("#########2:电脑先#########\n");printf("##########################\n");scanf("%d", &select1);if(select1==1||select1==2)return select1;else{printf("输入错误,请重新输入\n");return 0;}
}

玩家下棋2

 int  player(char arr[3][3])
{printf("请输入坐标\n");int x , y ;scanf("%d %d", &x, &y);if (x >= 1 && x <= 3 && y >= 1 && y <= 3 && arr[x-1][y-1] != '@'){arr[y - 1][x - 1] = '*';return 1;}else{printf("输入错误,请重新输入\n");return 0;}
}

电脑下棋2

void computer(char arr[3][3])
{while (1){srand((unsigned int)time(NULL));int r1 = 0 + rand() % (2 - 0 + 1);int r2 = 0 + rand() % (2 - 0 + 1);if (arr[r1][r2] == '#'){arr[r1][r2] = '@';break;}}
}

判断输赢2

这里不想思考了所以直接就把这些情况都列举出来了

 int  over(char arr[3][3])
{if (arr[0][0] =='*' && arr[0][0] == arr[1][0] && arr[1][0] == arr[2][0])//横着的第一行为*{printf("玩家获胜\n");return 1;}else if (arr[1][0] == '*' && arr[1][0] == arr[1][1] && arr[1][1] == arr[1][2])//横着的第二行为*{printf("玩家获胜\n");return 1;}else if (arr[2][0] == '*' && arr[2][0] == arr[2][1] && arr[2][1] == arr[2][2])//横着的第三行为*{printf("玩家获胜\n");return 1;}else if (arr[0][0] == '*' && arr[0][0] == arr[0][1] && arr[0][1] == arr[0][2])//竖着的第一列为*{printf("玩家获胜\n");return 1;}else if (arr[1][0] == '*' && arr[1][0] == arr[1][1] && arr[1][1] == arr[1][2])//竖着的第二列为*{printf("玩家获胜\n");return 1;}else if (arr[2][0] == '*' && arr[2][0] == arr[2][1] && arr[2][1] == arr[2][2])//竖着的第三列为*{printf("玩家获胜\n");return 1;}else if (arr[0][0] == '*' && arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2])//对角线左到右为*{printf("玩家获胜\n");return 1;}else if (arr[2][0] = '*' && arr[2][0] == arr[1][1] && arr[1][1] == arr[0][2])//对角线右到左为*{printf("玩家获胜\n");return 1;}else if (arr[0][0] == '@' && arr[0][0] == arr[1][0] && arr[1][0] == arr[2][0])//横着的第一行为*{printf("电脑获胜\n");return 1;}else if (arr[1][0] == '@' && arr[1][0] == arr[1][1] && arr[1][1] == arr[1][2])//横着的第二行为*{printf("电脑获胜\n");return 1;}else if (arr[2][0] == '@' && arr[2][0] == arr[2][1] && arr[2][1] == arr[2][2])//横着的第三行为*{printf("电脑获胜\n");return 1;}else if (arr[0][0] == '@' && arr[0][0] == arr[0][1] && arr[0][1] == arr[0][2])//竖着的第一列为*{printf("电脑获胜\n");return 1;}else if (arr[1][0] == '@' && arr[1][0] == arr[1][1] && arr[1][1] == arr[1][2])//竖着的第二列为*{printf("电脑获胜\n");return 1;}else if (arr[2][0] =='@' && arr[2][0] == arr[2][1] && arr[2][1] == arr[2][2])//竖着的第三列为*{printf("电脑获胜\n");return 1;}else if (arr[0][0] =='@' && arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2])//对角线左到右为*{printf("电脑获胜\n");return 1;}else if (arr[2][0] == '@' && arr[2][0] == arr[1][1] && arr[1][1] == arr[0][2])//对角线右到左为*{printf("电脑获胜\n");return 1;}else{int count = 0;for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){if (arr[i][j] != '#')count++;}}if (count == 9){printf("平局\n");return 2;}}
}

完整代码

文件else.h

#pragma once
int  begin();
void play(char arr[3][3]);
int  select();
void computer(char arr[3][3]);
int  player(char arr[3][3]);
int  over(char arr[3][3]);

文件else.c

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int  begin()
{printf("##########请选择##########\n");printf("##########1:play##########\n");printf("##########0:exit##########\n");printf("##########################\n");int a = 0;scanf("%d", &a);if (a == 0 || a == 1)return 1;else{printf("输入错误,请重新输入\n");return 0;}
}
void play(char arr[3][3])
{for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){if (j < 2)printf(" %c |", arr[i][j]);elseprintf(" % c  ", arr[i][j]);}printf("\n");printf("___|___|___\n");}
}
int  select()
{int select1;printf("##########################\n");printf("######请选择先后顺序######\n");printf("#########1:玩家先#########\n");printf("#########2:电脑先#########\n");printf("##########################\n");scanf("%d", &select1);if(select1==1||select1==2)return select1;else{printf("输入错误,请重新输入\n");return 0;}
}
void computer(char arr[3][3])
{while (1){srand((unsigned int)time(NULL));int r1 = 0 + rand() % (2 - 0 + 1);int r2 = 0 + rand() % (2 - 0 + 1);if (arr[r1][r2] == '#'){arr[r1][r2] = '@';break;}}
}int  player(char arr[3][3])
{printf("请输入坐标\n");int x , y ;scanf("%d %d", &x, &y);if (x >= 1 && x <= 3 && y >= 1 && y <= 3 && arr[x-1][y-1] != '@'){arr[y - 1][x - 1] = '*';return 1;}else{printf("输入错误,请重新输入\n");return 0;}
}int  over(char arr[3][3])
{if (arr[0][0] =='*' && arr[0][0] == arr[1][0] && arr[1][0] == arr[2][0])//横着的第一行为*{printf("玩家获胜\n");return 1;}else if (arr[1][0] == '*' && arr[1][0] == arr[1][1] && arr[1][1] == arr[1][2])//横着的第二行为*{printf("玩家获胜\n");return 1;}else if (arr[2][0] == '*' && arr[2][0] == arr[2][1] && arr[2][1] == arr[2][2])//横着的第三行为*{printf("玩家获胜\n");return 1;}else if (arr[0][0] == '*' && arr[0][0] == arr[0][1] && arr[0][1] == arr[0][2])//竖着的第一列为*{printf("玩家获胜\n");return 1;}else if (arr[1][0] == '*' && arr[1][0] == arr[1][1] && arr[1][1] == arr[1][2])//竖着的第二列为*{printf("玩家获胜\n");return 1;}else if (arr[2][0] == '*' && arr[2][0] == arr[2][1] && arr[2][1] == arr[2][2])//竖着的第三列为*{printf("玩家获胜\n");return 1;}else if (arr[0][0] == '*' && arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2])//对角线左到右为*{printf("玩家获胜\n");return 1;}else if (arr[2][0] = '*' && arr[2][0] == arr[1][1] && arr[1][1] == arr[0][2])//对角线右到左为*{printf("玩家获胜\n");return 1;}else if (arr[0][0] == '@' && arr[0][0] == arr[1][0] && arr[1][0] == arr[2][0])//横着的第一行为*{printf("电脑获胜\n");return 1;}else if (arr[1][0] == '@' && arr[1][0] == arr[1][1] && arr[1][1] == arr[1][2])//横着的第二行为*{printf("电脑获胜\n");return 1;}else if (arr[2][0] == '@' && arr[2][0] == arr[2][1] && arr[2][1] == arr[2][2])//横着的第三行为*{printf("电脑获胜\n");return 1;}else if (arr[0][0] == '@' && arr[0][0] == arr[0][1] && arr[0][1] == arr[0][2])//竖着的第一列为*{printf("电脑获胜\n");return 1;}else if (arr[1][0] == '@' && arr[1][0] == arr[1][1] && arr[1][1] == arr[1][2])//竖着的第二列为*{printf("电脑获胜\n");return 1;}else if (arr[2][0] =='@' && arr[2][0] == arr[2][1] && arr[2][1] == arr[2][2])//竖着的第三列为*{printf("电脑获胜\n");return 1;}else if (arr[0][0] =='@' && arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2])//对角线左到右为*{printf("电脑获胜\n");return 1;}else if (arr[2][0] == '@' && arr[2][0] == arr[1][1] && arr[1][1] == arr[0][2])//对角线右到左为*{printf("电脑获胜\n");return 1;}else{int count = 0;for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){if (arr[i][j] != '#')count++;}}if (count == 9){printf("平局\n");return 2;}}
}

文件test.c

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include"else.h"
int main()
{int r = 0;char arr[3][3] = { {'#','#','#'},{'#','#','#'},{'#','#','#' } };while (1){if (begin() == 1)break;}play(arr);while (1){r = select();if(r==1||r==2)break;}while (1){if (r == 1){while (1){while (1){if (player(arr) == 0)break;play(arr);printf("\n");computer(arr);play(arr);printf("\n");over(arr);}}}else{while (1){computer(arr);play(arr);printf("\n");player(arr);	play(arr);printf("\n");over(arr);}}}return 0;
}
http://www.hkea.cn/news/75798/

相关文章:

  • 手机3d动画制作软件重庆网络seo公司
  • 青海和城乡建设厅网站石家庄自动seo
  • 建站网址是多少深圳市seo上词多少钱
  • 应用网站开发创建网站花钱吗
  • 2023太原疫情优化设计答案大全
  • 创新的专业网站建设适合小学生的新闻事件
  • 政府机关备案网站百度竞价什么意思
  • 广元专业高端网站建设seo视频
  • 烟台网站建设诚信臻动传媒百度网络营销中心
  • 贵阳网站建设搜王道下拉重庆seo网络推广关键词
  • 大型 网站的建设 阶段百度官方网站下载
  • 江苏专业做网站的公司百度地图导航网页版
  • 怎么去投诉做网站的公司宁波seo外包推广软件
  • 网络营销跟做网站有什么区别线上推广如何引流
  • 如何进行网店推广seo排名优化怎样
  • 什么建站程序好收录上海网络公司seo
  • 电子商务网站建设投资预算小程序平台
  • 广州外贸营销型网站成都移动seo
  • 如何韩国视频网站模板下载 迅雷下载sem竞价托管费用
  • 做网站去哪个平台seo培训学院
  • 网站移动端优化的重点有哪些营销策略ppt
  • 养车网站开发搜狗seo快速排名公司
  • 企业电子商务网站建设武汉百度快速排名提升
  • 建一个网站的流程今天刚刚发生的新闻
  • 建立网站请示优化服务是什么意思
  • 有一个做场景动画的网站山东seo费用多少
  • 阿里云服务器的网站备案流程图营销推广有哪些形式
  • 做宣传用什么网站好手游推广平台有哪些
  • 免费全国网站在线客服软件新手电商运营从哪开始学
  • 0317网站建设怎么建个网站