经典小游戏(一)C实现——三子棋

	switch(input){case 1:printf("三子棋\n");//这里先测试是否会执行成功break;case 0:printf("退出游戏\n");break;default :printf("选择错误,请重新选择!\n");break;}}while(input);//直到输入的结果为假,循环才会结束

}

> 这样敲代码会让自己更容易梳理自己的思路。> > 首先一执行代码就会打印游戏菜单,玩家输入1就开始游戏,输入0就退出游戏,这样当玩家结束一次游戏后便可以将玩家输入的数字当成do while循环的判断条件,因为进入游戏需输入1,所以玩家结束一次游戏后便会进入do while循环再打印一次菜单(便于多次游戏),直到玩家不想玩了输入0即可退出游戏。  > 开始游戏,我们首先定义一个二维数组来储存玩家和电脑下的棋子,首先赋初值为空格,当玩家或电脑在某处落棋后将其赋值为对应的字符即可。  > 在玩家未落棋前先打印一个空棋盘,之后玩家或电脑每走一步棋就打印一次落棋后的棋盘,最后通过判断棋盘上的棋子情况判断是电脑赢还是玩家赢还是和棋(棋盘上棋子落满但未决胜负为和棋),否则游戏继续。  >  ### mine实现菜单函数代码块> 1.开始游戏 0.退出游戏

void menu()

{

printf("******************************\n");printf("*****  1.paly     0.exit  ****\n");printf("******************************\n");

}

展示效果:![](https://img-blog.csdnimg.cn/b5ac03ae0b4d491899a6988bf55b2812.png)完整源代码=====

#include<stdio.h>

#include"game.h"

#define ROW 3

#define COL 3

#include<stdlib.h>

#include<time.h>

//声明

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

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

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

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

//告诉我们四种状态

//玩家赢 ‘*’

//电脑赢 ‘#’

//平局 ‘Q’

//继续 ‘C’

char IsWin(char board[ROW][COL],int row,int col);

void menu()

{

printf("******************************\n");printf("*****  1.paly     0.exit  ****\n");printf("******************************\n");

}

void game()

{

char ret = 0;//数组-存放走出的棋盘信息char board[ROW][COL]={0};//初始化棋盘InitBoard(board,ROW,COL);//打印棋盘DisplayBoard(board,ROW,COL);//下棋while(1){//玩家下棋PlayerMove(board,ROW,COL);DisplayBoard(board,ROW,COL);//判断玩家是否赢ret=IsWin(board,ROW,COL);if(ret!='C'){break;}//电脑下棋ComputerMove(board,ROW,COL);DisplayBoard(board,ROW,COL);//判断电脑是否赢ret=IsWin(board,ROW,COL);if(ret!='C'){break;}}if(ret=='*'){printf("玩家赢\n");}else if(ret=='#'){printf("电脑赢\n");}elseprintf("平局\n");

}

void test()

{

int input = 0;//srand((unsigned int)time(NULL));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;

}

#define _CRT_SECURE_NO_WARNINGS 1

#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(i=0; i<row; i++)

// {

//

// //1.打印一行的数据

// printf(" %c | %c | %c \n",board[i][0],board[i][1],board[i][2]);

// //2.打印分割行

// if(i<row-1)

// printf(“—|—|—\n”);

// }

//}

//优化后:

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

{

int i = 0;for(i=0; i<row; i++){//1.打印一行的数据int j = 0;for(j = 0;j<col;j++){printf(" %c ",board[i][j]);if(j < col - 1)//最后的列内容不打印|printf("|");}printf("\n");//2.打印分割行//最后的行不打印---|---|----if(i < row - 1){for(j=0;j<col;j++) {printf("---");if(j<col-1)printf("|");}printf("\n");}}

}

void PlayerMove(char board[ROW][COL],int row,int col)

{

int x = 0;int y = 0;printf("玩家走:>\n");while(1){printf("请输入要下的坐标:>");scanf("%d%d",&x,&y);//判断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");}}elseprintf("坐标非法,请重新输!\n");}

}

void ComputerMove(char board[ROW][COL],int row,int col)

{

int x = 0;int y = 0;printf("电脑走:>\n");while(1){x = rand()%row;y = rand()%col;if(board[x][y]==' '){board[x][y]='#';break;}}

}

//返回1,表示棋盘满了

//返回,表示棋盘没满

int IsFull(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++){if(board[i][j]==' '){

这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道

HTML

  • HTML5有哪些新特性?

  • Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?

  • 如何实现浏览器内多个标签页之间的通信?

  • ⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?

  • 简述⼀下src与href的区别?

  • cookies,sessionStorage,localStorage 的区别?

  • HTML5 的离线储存的使用和原理?

  • 怎样处理 移动端 1px 被 渲染成 2px 问题?

  • iframe 的优缺点?

  • Canvas 和 SVG 图形的区别是什么?

JavaScript

  • 问:0.1 + 0.2 === 0.3 嘛?为什么?

  • JS 数据类型

  • 写代码:实现函数能够深度克隆基本类型

  • 事件流

  • 事件是如何实现的?

  • new 一个函数发生了什么

  • 什么是作用域?

  • JS 隐式转换,显示转换

  • 了解 this 嘛,bind,call,apply 具体指什么

  • 手写 bind、apply、call

  • setTimeout(fn, 0)多久才执行,Event Loop

  • 手写题:Promise 原理

  • 说一下原型链和原型链的继承吧

  • 数组能够调用的函数有那些?

  • PWA使用过吗?serviceWorker的使用原理是啥?

  • ES6 之前使用 prototype 实现继承

  • 箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?

  • 事件循环机制 (Event Loop)

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

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

相关文章

go Channel原理 (二)

Channel 设计原理 不要通过共享内存的方式进行通信&#xff0c;而是应该通过通信的方式共享内存。 在主流编程语言中&#xff0c;多个线程传递数据的方式一般都是共享内存。 Go 可以使用共享内存加互斥锁进行通信&#xff0c;同时也提供了一种不同的并发模型&#xff0c;即通…

error: Sandbox: rsync.samba in Xcode project

在Targets 的 Build Settings 搜索&#xff1a;User script sandboxing 设置为NO

python课程设计作业-TCP客户端-服务端通信

说明文档 目录 小组成员分工 作品功能介绍 使用的工具和方法 设计的步骤 课程设计中遇到的问题 结论 1. 小组成员分工 本次课程设计由以下小组成员完成&#xff1a; xxx 2. 作品功能介绍 本次课程设计的作品是一个简单的基于 TCP 协议的客户端-服务端通信示例。通过这个示…

【SpringBoot Web框架实战教程】06 SpringBoot 整合 Druid

不积跬步&#xff0c;无以至千里&#xff1b;不积小流&#xff0c;无以成江海。大家好&#xff0c;我是闲鹤&#xff0c;微信&#xff1a;xxh_1459&#xff0c;十多年开发、架构经验&#xff0c;先后在华为、迅雷服役过&#xff0c;也在高校从事教学3年&#xff1b;目前已创业了…

阿里云centos7.9 挂载数据盘到 www目录

一、让系统显示中文 参考&#xff1a;centos7 怎么让命令行显示中文&#xff08;英文-&#xff1e;中文&#xff09;_如何在命令行中显示中文-CSDN博客 1、输入命令&#xff1a;locale -a |grep "zh_CN" 可以看到已经存在了中文包 2、输入命令&#xff1a;sudo vi…

AGPT•intelligence:带你领略全新量化交易的风采

随着金融科技的快速发展&#xff0c;量化交易已经成为了投资领域的热门话题。越来越多的投资者开始关注和使用量化交易软件来进行投资决策。在市场上有许多量化交易软件可供选择。 Delaek&#xff0c;是一位资深的金融科技专家&#xff0c;在 2020年成立一家专注于数字资产量化…

第一后裔延迟高怎么办?快速降低第一后裔延迟

第一后裔/The First Descendant一款射击游戏&#xff0c;融合了刷宝、角色扮演、团队合作、剧情等元素&#xff0c;让每个玩家都能在自己的角度上&#xff0c;找到切入点&#xff0c;并不断地成长&#xff0c;一步步解开后裔身上隐藏的秘密。近期该作正式上线&#xff0c;很多玩…

vue项目创建+eslint+Prettier+git提交规范(commitizen+hooks+husk)

# 步骤 1、使用 vue-cli 创建项目 这一小节我们需要创建一个 vue3 的项目&#xff0c;而创建项目的方式依然是通过 vue-cli 进行创建。 不过这里有一点大家需要注意&#xff0c;因为我们需要使用最新的模板&#xff0c;所以请保证你的 vue-cli 的版本在 4.5.13 以上&#xff…

Debian linux忘记root密码如何重置

重启电脑, 到下图再按 e 键 在页面中可以看到有个ro的行&#xff0c;在ro行的尾部&#xff0c;添加 rw init/bin/bas 3. ctrl X 启动系统&#xff0c;最后会进入命令行模式 4. 重设root密码&#xff0c;输入命令 passwd root&#xff0c;按照提示输入新密码并确认 5. 重启系…

基于Python的自动化测试框架-Pytest总结-第一弹基础

Pytest总结第一弹基础 入门知识点安装pytest运行pytest测试用例发现规则执行方式命令行执行参数 配置发现规则 如何编写测试Case基础案例断言语句的使用pytest.fail() 和 Exceptions自定义断言函数异常测试测试类形式 pytest的Fixture使用Fixture入门案例使用fixture的Setup、T…

昇思25天学习打卡营第8天|模型训练

昇思25天学习打卡营第8天|模型训练 前言模型训练构建数据集定义神经网络模型定义超参、损失函数和优化器超参损失函数优化器 训练与评估 个人任务打卡&#xff08;读者请忽略&#xff09;个人理解与总结 前言 非常感谢华为昇思大模型平台和CSDN邀请体验昇思大模型&#xff01;从…

linux中如何启动python虚拟环境

找到python虚拟环境所在目录 执行下面的命令即可 source auth_python/bin/activate

【遇坑笔记】Node.js 开发环境与配置 Visual Studio Code

【遇坑笔记】Node.js 开发环境与配置 Visual Studio Code 前言node.js开发环境配置解决pnpm 不是内部或外部命令的问题&#xff08;pnpm安装教程&#xff09; 解决 pnpm : 无法加载文件 C:\Program Files\nodejs\pnpm.ps1&#xff0c;因为在此系统上禁止运行脚本。 前言 最近部…

【代码随想录】【算法训练营】【第49天】 [300]最长递增子序列 [674]最长连续递增序列 [718]最长重复子数组

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 49&#xff0c;周二&#xff0c;坚持不了一点~ 题目详情 [300] 最长递增子序列 题目描述 300 最长递增子序列 解题思路 前提&#xff1a;最大递增子序列的长度 思路&#xff1a;动态规划 d…

基于X86+FPGA的精密加工检测设备解决方案

应用场景 随着我国高新技术的发展和国防现代化发展&#xff0c;航空、航天等领域需 要的大型光电子器件&#xff0c;微型电子机械、 光 电信息等领域需要的微型器件&#xff0c;还有一些复杂零件的加工需求日益增加&#xff0c;这些都需要借助精密甚至超精密的加工检测设备 客…

esp12实现的网络时钟校准

网络时间的获取是通过向第三方服务器发送GET请求获取并解析出来的。 在本篇博客中&#xff0c;网络时间的获取是一种自动的行为&#xff0c;当系统成功连接WiFi获取到网络天气后&#xff0c;系统将自动获取并解析得到时间和日期&#xff0c;为了减少误差每两分钟左右进行一次校…

web平台—apache

web平台—apache 1. 学apache前需要知道的知识点2. apache详解2.1 概述2.2 工作模式2.3 启动apache网站整体流程2.4 相关文件保存位置2.5 配置文件详解 3. apache配置实验实验1&#xff1a;设置apache的目录别名实验2&#xff1a;apache的用户认证实验3&#xff1a;虚拟主机 (重…

江门MES制造执行系统:助力工厂实现智能化管理

江门MES制造执行系统(MES)在工厂实现智能化管理方面发挥着重要作用&#xff0c;以下是它的一些助力方面&#xff1a; 实时监控与控制&#xff1a;江门MES系统可以实时监控生产过程中的各个环节&#xff0c;包括设备状态、生产进度、质量指标等&#xff0c;帮助工厂管理人员及时…

LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection

LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection 论文链接&#xff1a;http://arxiv.org/abs/2406.03459 代码链接&#xff1a;https://github.com/Atten4Vis/LW-DETR 一、摘要 介绍了一种轻量级检测变换器LWDETR&#xff0c;它在实时物体检测方面超越…

CF1981D Turtle and Multiplication 题解

Turtle and Multiplication 传送门 Turtle just learned how to multiply two integers in his math class, and he was very excited. Then Piggy gave him an integer n n n , and asked him to construct a sequence a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1​,…