《悬挂小人游戏-版本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

相关文章

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

MySQL 升级到8.4版本的完整流程及操作方法

《MySQL升级到8.4版本的完整流程及操作方法》本文详细说明了MySQL升级至8.4的完整流程,涵盖升级前准备(备份、兼容性检查)、支持路径(原地、逻辑导出、复制)、关键变更(空间索引、保留关键字... 目录一、升级前准备 (3.1 Before You Begin)二、升级路径 (3.2 Upgrade

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部