UVa489 Hangman Judge(侩子手游戏)

本文介绍了一种使用C++实现的游戏胜负判断算法,通过统计单词中出现的字母及总数,与游戏字符串进行对比,从而判断玩家在游戏中是否获胜、失败或平局。该算法适用于文字类游戏,如猜词游戏等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:首先统计给出单词中,有哪些字母出现以及总共的字母数量。然后再与给出的字符串进行比较即可。

#include<bits/stdc++.h>
using namespace std;
int main() {
	int n, i, na[30], count, flag, sum;
	char a[50], b[50];
    while(scanf("%d", &n) != EOF && n != -1){
    	scanf("%s%s", a, b);
    	count = 0;flag = 2;sum = 0;
    	memset(na, 0, sizeof(na));
    	for(i = 0;i < strlen(a);i ++)na[a[i]-'a'] = 1;
    	for(i = 0;i < 26;i ++)sum += na[i];
    	
    	int len = strlen(b);
    	for(i = 0;i < len;i ++){
			if(!na[b[i]-'a'])count++;
			else if(na[b[i]-'a'] == 1){
				na[b[i]-'a']--;
				sum --;
			}
			if(count > 6){
				flag = 0;
				break;	
			}else if(!sum){
				flag = 1;
				break;
			}
		}
		
    	printf("Round %d\n", n);
    	if(!flag)printf("You lose.\n");
    	else if(flag == 1)printf("You win.\n");
    	else printf("You chickened out.\n");
	}
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值