《悬挂小人游戏-版本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实例题之pygame开发打飞机游戏实例代码

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

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

查看MySQL数据库版本的四种方法

《查看MySQL数据库版本的四种方法》查看MySQL数据库的版本信息可以通过多种方法实现,包括使用命令行工具、SQL查询语句和图形化管理工具等,以下是详细的步骤和示例代码,需要的朋友可以参考下... 目录方法一:使用命令行工具1. 使用 mysql 命令示例:方法二:使用 mysqladmin 命令示例:方

Java版本不兼容问题详细解决方案步骤

《Java版本不兼容问题详细解决方案步骤》:本文主要介绍Java版本不兼容问题解决的相关资料,详细分析了问题原因,并提供了解决方案,包括统一JDK版本、修改项目配置和清理旧版本残留等步骤,需要的朋... 目录错误原因分析解决方案步骤第一步:统一 JDK 版本第二步:修改项目配置第三步:清理旧版本残留兼容性对

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境