三子棋,小试牛刀

三子棋的初始版

表面结构

<span style="color:#33ccff">
#include "game.h"
void menu()
{printf("  ★★★★★★★★★★★★★★★★★★\n");printf(" ★★★                          ★★★\n");printf("★★★  1.开始游戏     0.结束游戏 ★★★\n");printf(" ★★★                          ★★★\n");printf("  ★★★★★★★★★★★★★★★★★★\n");printf("请选择:");
}
void game()
{char board[ROW][LINE] = { 0 };            //创建数组(放棋子)Initboard(board, ROW, LINE);              //初始化棋盘Printfboard(board, ROW, LINE);            //打印棋盘while (1){Player_Runboard(board, ROW, LINE);                   //玩家开始下棋computer_Runboard(board, ROW, LINE);                 //电脑开始下棋Printfboard(board, ROW, LINE);judgeboard(board, ROW, LINE);                       //判断输赢if (judgeboard(board, ROW, LINE) == 'X'){printf("玩家赢!!\n");break;}else if (judgeboard(board, ROW, LINE) == '@'){printf("电脑赢!!\n");break;}}
}
void test()
{int input = 0;srand((unsigned int)time(NULL));do{menu();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;
}</span>

隐藏函数

<span style="color:#cc33cc">
#include "game.h"
void Initboard(char board[ROW][LINE], int row, int line)
{int i = 0;for (i = 0; i < row; i++){int j = 0;for (j = 0; j < line; j++){board[i][j] = ' ';}}
}
void Printfboard(char board[ROW][LINE], int row, int line)
{int i = 0;int j = 0;for (i = 0; i<row; i++){for (j = 0; j< line; j++){printf(" %c ",board[i][j]);if (j<line-1)printf("|");}printf("\n");if (i < row - 1){for (j = 0; j< line; j++){printf("---");if (j<line - 1)printf("|");}}printf("\n");}
}
void Player_Runboard(char board[ROW][LINE], int row, int line)
{int x = 0;int y = 0;printf("玩家走:\n");while (1){printf("请输入坐标:");scanf("%d%d", &x, &y);if ((x >= 1 && x <= (row + 1)) && (y >= 1 && y <= (line + 1))){if (board[x - 1][y - 1] == ' '){board[x - 1][y - 1] = 'X';break;}else{printf("坐标已被占用\n");}}else{printf("坐标非法\n");}}
}
void computer_Runboard(char board[ROW][LINE])
{int x = 0;int y = 0;printf("电脑走:\n");while (1){x = rand() % ROW;y = rand() % LINE;if (board[x][y] == ' '){board[x][y] = '@';break;}}
}
char judgeboard(char board[ROW][LINE], int row, int line)
{int i = 0;for (i = 0; i < row; i++)                 //横向判断{if (board[i][0] == board[i][1] && board[i][0] == board[i][2] && board[i][1] !=' '){return board[1][1];}}for (i = 0; i < row; i++)                 //竖向判断{if (board[0][i] == board[1][i] && board[0][i] == board[2][i] && board[0][i] != ' '){return board[1][1];}}if (board[0][0] == board[1][1] && board[0][0] == board[2][2] && board[0][0] != ' ')  // 右斜判断{return board[1][1];}if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ' ')  // 左斜判断{return board[1][1];}
}</span>

头文件与函数的声明

<span style="color:#cc0000">
#ifndef __GAME_H__
#define __GAME_H__
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define ROW  3
#define LINE 3
void Initboard(char board[ROW][LINE], int row, int line);
void Printfboard(char board[ROW][LINE], int row, int line);
void Player_Runboard(char board[ROW][LINE], int row, int line);
void computer_Runboard(char board[ROW][LINE], int row, int line);
char judgeboard(char board[ROW][LINE], int row, int line);#endif  //__GAME_H__</span>

初步运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【科普】大脑是如何编码复杂信息的?

来源&#xff1a; 原理摘要&#xff1a;在电信技术发展的早期&#xff0c;工程师们发明了一种巧妙的方法&#xff0c;通过一根线路同时传输多个电话信号。在电信技术发展的早期&#xff0c;工程师们发明了一种巧妙的方法&#xff0c;通过一根线路同时传输多个电话信号。这种技术…

为Visual Studio 2010添加HTML5的项目模板

HTML5时代来了&#xff0c;还不为你的Visual Studio 2010添加HTML5的项目模板&#xff01;&#xff01;&#xff01; 本文在简单不过了&#xff0c;就是为你的Visual Studio2010创建一个项目模板&#xff0c;一个HTML5的项目模板。谁叫HTML5时代来了&#xff0c;Visual Studio …

物联网时代 人工智能如何与信息安全平衡发展?

来源&#xff1a;中新网近年来&#xff0c;随着机器学习、计算能力、存储能力以及云计算等技术发展&#xff0c;人工智能技术呈现出“井喷式”发展&#xff0c;家电、移动设备等各种硬件产品中都开始融入人工智能技术&#xff0c;AI人工智能的发展已成为大势所趋。360智能安全研…

杨氏矩阵简单介绍

杨氏矩阵的由来 在数学中&#xff0c;杨表&#xff08;英语&#xff1a;Young tableau&#xff09;&#xff0c;又称杨氏矩阵。是对组合表示理论和舒伯特演算很有用的工具。它提供了一种方便的方式来描述对称和一般线性群的群表示&#xff0c;并研究它们的性质。杨表是剑桥大学…

全球五十家知名传感器制造商分布盘点、特点分析

来源&#xff1a;工业智能化摘要&#xff1a;近年来&#xff0c;世界传感器市场以持续稳定的增长之势向前发展&#xff0c;各国企业竞相加速对传感器的开发和产业化。东欧、亚太区和加拿大成为传感器市场增长最快的地区&#xff0c;而美国、德国、日本依然是传感器市场分布最大…

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

题目解析部分 题目中说的这个数组使我们所熟知的杨氏矩阵 拿到一道题的解题思路应该是这样的&#xff1a;先看这道题中所用到的知识点&#xff0c;然后选用合适的类型和返回类型。先用伪代码来将整体思路屡清楚&#xff0c;再用代码去代替 伪代码部分 假设这个要找的整数为f…

更新价目表价格

因为去年一笔销售订单行的价目表价格为0.今年要对这行进行退货。 由于价目表价格为0&#xff0c;退货订单引用参考该行时&#xff0c;提示“项目....的价目表价格 0 或销售价格 -.00041202为负&#xff0c;且配置文件“ONT&#xff1a;负定价”设置为“N””. 解决办法&#xf…

AI芯片:从历史看未来

来源&#xff1a;36氪摘要&#xff1a;从芯片发展的大趋势来看&#xff0c;目前尚处于AI芯片发展的初级阶段&#xff0c;无论是科研还是产业应用都有巨大的创新空间。我们相信&#xff0c;未来十年将是AI芯片发展的重要时期&#xff0c;有望在架构和设计理念取得巨大的突破。目…

替换字符串中的空格

剑指offer面试题 请实现一个函数&#xff0c;将一个字符串中的每个空格替换成“%20”。例如&#xff0c;当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 看到题目后的思路 看到这个题目后&#xff0c;我们首相应该想到的是&#xff1a;原来的一个空格字…

类型,对象,线程栈和托管堆在运行时的相互关系(一)。

当系统加载一个CLR的进程&#xff0c;进程里面可能有多个线程&#xff0c;这时候系统会给这个进程创建一个大小为1M的线程栈。这个线程栈用来存放方法调用的实参&#xff0c;和方法内部定义的局部变量。下图展示了一个线程栈的栈内存。线程栈的存储是从高位内存地址向地位内存地…

阿里云发布三大人工智能产品:推动AI产业落地

来源&#xff1a;科技圈里那点事儿摘要&#xff1a; 近日&#xff0c;阿里云正式发布了三款人工智能产品&#xff1a;图像搜索、智能语音自学习平台以及机器翻译&#xff0c;进一步推动产业AI的落地。近日&#xff0c;阿里云正式发布了三款人工智能产品&#xff1a;图像搜索、智…

C/C++求一个整数的二进制中1的个数(用三种效率不同的方法实现)

题目&#xff1a; 实现一个函数&#xff0c;输入一个整数&#xff0c;输出该数二进制中1的个数。例如把9表示成二进制是1001&#xff0c;有2位是1&#xff0c;因此如果输入是9&#xff0c;该函数输出2 第一种解法&#xff08;死循环&#xff09; 判断整数二进制表示中最右边…

经验收藏

http://hi.baidu.com/%D7%DF_%B4%F8%C4%E3%CC%FD%B8%E8%C8%A5/blog转载于:https://www.cnblogs.com/hx214blog/archive/2012/05/23/2514796.html

2018智能音频报告:智能音箱带来的智能音频和广播媒体的机遇

来源&#xff1a;199IT互联网数据中心摘要&#xff1a;前中国智能音箱正热&#xff0c;阿里巴巴、京东、百度纷纷发布自己的智能音箱产品&#xff0c;大打价格战&#xff0c;希望以绝对底价抢占市场。前中国智能音箱正热&#xff0c;阿里巴巴、京东、百度纷纷发布自己的智能音箱…

删除链表中指定节点,要求时间复杂度为O(1)

思路&#xff1a; &#xff08;1&#xff09;把要删除的节点的值与其next交换 &#xff08;2&#xff09;删除其next &#xff08;3&#xff09;完成 算法&#xff1a; 1 void DeleteNode(LinkList *p){2 if(p->nextNULL){3 free(p);4 pNULL;5 }…

c++中求前n项和(这代码不得不让我佩服)

今天在牛客网上刷题&#xff0c;遇到了这道题&#xff0c;最后我看到一位大佬的代码让我感觉的还差很多&#xff01;&#xff01;&#xff01; 题目 求123…n&#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&am…

基于Arduino和HC-SR04的超声波测距系统设计

本文介绍了如何使用Arduino和HC-SR04超声波传感器设计并构建一个简单的超声波测距系统。我们将详细讨论硬件连线和编程步骤&#xff0c;并提供完整的Arduino代码。此系统可以应用于各种需要测量距离的项目&#xff0c;例如智能车辆、机器人和安防系统。 引言&#xff1a; 超声…

中国AI企业吸金旺但90%亏损 今年将迎倒闭潮

来源&#xff1a;网易智能摘要&#xff1a; 据报道&#xff0c;自2017年人工智能成为国家战略目标后&#xff0c;相关产业迎来飞速发展机遇&#xff0c;更成为全球吸金能力最强的产业之一。2017全年&#xff0c;大陆AI企业的融资总额已占到全球的7成&#xff0c;但其背后的隐忧…

在窗口间移动按扭

// 在窗口间移动按扭 procedure TForm1.Button1Click(Sender: TObject);begin if Button1.ParentForm1 then begin button1.Caption:单击返回; Button1.Parent:Form2; Button1.Left : 232; Button1.Top : 88; end else begin …

不用加减乘除算加法

题目 写一个函数&#xff0c;求两个整数之和&#xff0c;要求在函数体内不得使用、-、*、/四则运算符号。 思路 &#xff08;一&#xff09;首先看我们平时的十进制是如何做的&#xff1a; 65 &#xff0c;三步曲&#xff01;&#xff01;&#xff01; 相加各位的值&#xf…