《悬挂小人游戏-版本1.0》

2023-12-16 05:59
文章标签 游戏 版本 1.0 悬挂 小人

本文主要是介绍《悬挂小人游戏-版本1.0》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//c语言小游戏,悬挂小人
/*
这个游戏只是实现了给定的一个单词,让用户来猜测,没有用到随机给出单词让用户猜测。
后续版本会更新...
*/
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h> //小写字母转大写字母需要用到

//函数声明
int win(int letterFound[]);
int researchLetter(char letter,char secretWord[],int letterFound[]);
char readCharacter();

//定义int win(int letterFound[])函数
int win(int letterFound[])
{
int i= 0;
int win = 1; //1为胜利,0位失败
for(i=0;i<6;i++)
{
if(letterFound[i]==0)
win = 0;
}
return win;
}

//定义researchLetter(char letter,char secretWord[],int letterFound[])函数
int researchLetter(char letter,char secretWord[],int letterFound[])
{
int i = 0;
int correctLetter = 0; //0表示字母不在单词中,1表示字母在单词中
//遍历单词数组secretWord,以判断所猜字母是否在单词中
for(i=0;secretWord[i]!='\0';i++)
{
if(letter == secretWord[i]) //如果字母在单词中
{
correctLetter = 1; //表示猜对了一个字母
letterFound[i] = 1; //对于所有等于所猜字母的数组的位置,都将其数组变为1
}
}
return correctLetter;
}

//定义char readCharacter()函数
char readCharacter()
{
char character = 0;
character = getchar(); //读取一个字母
character = toupper(character); //把这个字母转换为大写
//读取其他字符,直到\n(为了忽略它)
while(getchar()!='\n')
;
return character; //返回读到的第一个字母
}

int main(int argc,char *argv[])
{
char letter = 0; //存储用户输入的字母
char secretWord[] = "BOTTLE"; //要猜测的单词
int letterFound[6] = {0}; //布尔值的数组,数组的每一个元素对应猜测单词的一个字母,
//0表示还没猜到此字母,1表示已猜到此字母
int leftTimes = 7; //剩余猜测次数(0=失败)
int i = 0;
printf("\t*************************************\n");
printf("\t\t欢迎来到悬挂小人游戏!\n");
printf("\t*************************************\n");
while(leftTimes > 0 && !win(letterFound))
{
printf("\n你还剩余 %d 此机会",leftTimes);
printf("\n神秘单词是什么呢?");

//我们现显示猜测的单词,将还没有猜到的字母用*表示,例如:*O**LE
for(i = 0;i<6;i++)
{
if(letterFound[i]) //如果第i+1个字母已经猜到
printf("%c",secretWord[i]); //打印出来
else
printf("*"); //还没猜到,打印一个*
}
printf("\n输入一个字母:");
letter = readCharacter();
//如果用户输入的字母不存于单词中
if(!researchLetter(letter,secretWord,letterFound))
{
leftTimes--; //将剩余猜测机会减一
}
}

if(win(letterFound))
printf("\n\n胜利了!神秘单词是:%s\n",secretWord);
else
printf("\n\n失败了!神秘单词是:%s\n",secretWord);
return 0;
}

转载于:https://www.cnblogs.com/sun-/p/4900633.html

这篇关于《悬挂小人游戏-版本1.0》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/499382

相关文章

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

springboot3.4和mybatis plus的版本问题的解决

《springboot3.4和mybatisplus的版本问题的解决》本文主要介绍了springboot3.4和mybatisplus的版本问题的解决,主要由于SpringBoot3.4与MyBat... 报错1:spring-boot-starter/3.4.0/spring-boot-starter-

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav