刽子手游戏(Hangman Judge, UVa 489) 算法竞赛入门

本文介绍了一个猜数字游戏的实现思路,采用一次性输入整行字符的方式进行猜测,并通过C语言实现了一个简单的游戏逻辑。文章详细解释了游戏流程及如何判断输赢情况。

思路 ①猜测的时候,不是一个一个字母的输入,而是一口气输入一行,然后一口气交给计算机判断。

        ②所以chickened out 的意思就是,你输入的那一行数,导致机会没用完,也没有把数猜完

        

#include <stdio.h>
#include <string.h>
#define maxn 100
int win, lose,left,chance;
char s[maxn], s2[maxn];

void guess(char ch);
int main()
{
	int rnd;
	while(scanf("%d%s%s", &rnd, s,s2) == 3 && rnd != -1)
	{
		printf("Round %d:\n", rnd);
		left = strlen(s);
		chance = 7;
		for(int i = 0; i < strlen(s2); i++)
		{
			guess(s2[i]);
			if(win || lose)
				break; 
		}
		if(win)
			printf("You win.\n");
		else if(lose)
			printf("You lose.\n");
		else
			printf("You chickened out.\n");
	}
	return 0;
}

void guess(char ch)
{
	int bad = 1;
	for(int i = 0; i < strlen(s); i++)
	{
		if(ch == s[i])
		{
			left--;
			s[i]= ' ';
			bad = 0;
		}
		if(bad)
			chance--;
		if(!chance)
			lose = 1;
		if(!left)
			win = 1;
	}
}
时隔一个学期再来看这个题目,感觉,更清楚了一点。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值