100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言 | 猜字母小游戏(简单易学)

C语言 | 猜字母小游戏(简单易学)

时间:2018-09-24 01:38:41

相关推荐

C语言 | 猜字母小游戏(简单易学)

下面是一个使用C语言编写的猜字母小游戏的示例代码:

#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){char letter, guess;srand(time(NULL));letter = 'a' + rand() % 26;printf("我想了一个小写字母,你猜一猜:");guess = getchar();while (guess != letter) {printf("你猜的字母不对,再猜一次:");guess = getchar();}printf("恭喜你,猜对了!\n");return 0;}

在这个游戏中,程序会使用rand函数生成一个随机的小写字母,然后提示用户猜这个字母。用户输入猜测的字母,程序会告诉用户猜的字母是否正确。

在上面的代码中,我们使用了rand函数来生成随机的小写字母,这个函数的返回值是一个随机的整数。我们可以通过调用srand函数来设置随机数生成器的种子,这样就可以生成不同的随机数序列。

在本例中,我们使用了time函数来获取当前的系统时间,并将其作为随机数生成器的种子。这样,每次运行程序都会生成一个新的随机字母。

我们还使用了getchar函数来读取用户输入的字符,并使用printf函数来输出提示信息。

最后,我们使用了一个while循环来不断地读取用户输入,直到用户猜中了。

这只是一个简单的猜字母游戏的示例代码,你可以根据自己的需要来修改和扩展它。

下面是一个扩展后的猜字母小游戏的示例代码,它具有以下功能:

允许用户自定义字母范围,可以猜大写或小写字母;记录用户的得分,并根据用户猜测的次数计算得分;限制用户的猜测次数,如果用户猜测次数超过了限制,则游戏结束。

#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){char letter, guess;char min, max;int tries;int score = 100;printf("输入字母范围的下限(大写或小写):");min = getchar();printf("输入字母范围的上限(大写或小写):");max = getchar();printf("输入最多允许的猜测次数:");scanf("%d", &tries);srand(time(NULL));letter = min + rand() % (max - min + 1);printf("我想了一个%c到%c之间的字母,你猜一猜:", min, max);guess = getchar();tries--;while (guess != letter && tries > 0) {printf("你猜的字母不对,再猜一次:");guess = getchar();tries--;score -= 10;}if (guess == letter) {printf("恭喜你,猜对了!\n");printf("你的得分是:%d\n", score);} else {printf("很遗憾,你没有在规定的次数内猜中字母。\n");}return 0;}

下面是一个继续扩展后的猜字母小游戏的示例代码,它具有以下功能:

允许用户自定义字母范围,可以猜大写或小写字母;记录用户的得分,并根据用户猜测的次数计算得分;限制用户的猜测次数,如果用户猜测次数超过了限制,则游戏结束;在游戏结束后,提示用户是否希望再玩一次;增加游戏的难度,让用户猜多个字母;增加游戏的奖励机制,让用户得到更多的分数。

#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#define MAX_WORD_LEN 20int main(){char word[MAX_WORD_LEN];char guess[MAX_WORD_LEN];char min, max;int word_len;int tries;int score = 100;int i, correct;char play_again = 'y';while (play_again == 'y') {printf("输入字母范围的下限(大写或小写):");min = getchar();printf("输入字母范围的上限(大写或小写):");max = getchar();printf("输入要猜的字母的个数(1-%d):", MAX_WORD_LEN - 1);scanf("%d", &word_len);printf("输入最多允许的猜测次数:");scanf("%d", &tries);srand(time(NULL));for (i = 0; i < word_len; i++) {word[i] = min + rand() % (max - min + 1);}word[i] = '\0';printf("我想了一个%c到%c之间的%d个字母,你猜一猜:", min, max, word_len);scanf("%s", guess);tries--;while (strcmp(guess, word) != 0 && tries > 0) {printf("你猜的字母不对,再猜一次:");scanf("%s", guess);tries--;score -= 10;}if (strcmp(guess, word) == 0) {printf("恭喜你,猜对了!\n");printf("你的得分是:%d\n", score);} else {printf("很遗憾,你没有在规定的次数内猜中字母。\n");}printf("是否希望再玩一次(y/n):");play_again = getchar();while (getchar() != '\n');score = 100;}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。