我的表格
文本框中输入的单词必须与上面任意一个随机字符生成的文本框匹配,并且单词必须包含黄色的char。
请帮助解决这两个验证
检查单词中是否有任何字符 包含,黄色文本框中的字符。
单词中的剩余字符出现在任何文本中 框。
答案 0 :(得分:1)
您所需要的只是获取以黄色显示的标签的值,并执行类似的操作。
string holdWord = textBox1.Text; //BEEP
char charToCheck = Convert.ToChar(label1.Text); // 'E'
bool result = holdWord.Contains(charToCheck); //TRUE
答案 1 :(得分:1)
冒着交出解决方案的风险......
第一个案例
这符合标准(我能说的最好)。
Boolean IsAcceptableWord(String input, Char yellowLetter, params Char[] textBoxLetters)
{
// Short-circuit: Empty is empty
if (String.IsNullOrEmpty(input)) return false;
// yellow letter
if (!input.Contains(yellowLetter.ToString())) return false;
// textBox letters
foreach (var inputLetter in input)
{
if (textBoxLetters.Contains(inputLetter)) return true;
}
return false;
}
第二种情况
这个更精细一点。我使用的标准是:
Q
,也不能使用Z
两次以上。)Boolean IsAcceptableWord2(String input, Char yellowLetter, params Char[] textBoxLetters)
{
// Short-circuit: must not be empty
if (String.IsNullOrEmpty(input))
{
return false;
}
// Validation
if (textBoxLetters == null || textBoxLetters.Length == 0)
{
throw new ArgumentNullException("textBoxLetters");
}
if (!Char.IsLetter(yellowLetter))
{
throw new ArgumentException("Must be a letter", "yellowLetter");
}
if (textBoxLetters.Any(x => !Char.IsLetter(x)))
{
throw new ArgumentException("Must be all letters", "textBoxLetters");
}
// Normalization
input = input.ToLowerInvariant();
yellowLetter = Char.ToLower(yellowLetter);
textBoxLetters = textBoxLetters.Select(x => Char.ToLower(x)).ToArray();
var inputCharArray = input.ToCharArray();
// Comparisons
var yellowLetterCount = inputCharArray.Count(x => x == yellowLetter);
if (yellowLetterCount != 1)
{
return false;
}
var remainingInputLetters = inputCharArray.Where(x => x != yellowLetter).ToList();
foreach (var textBoxLetter in textBoxLetters)
{
var i = remainingInputLetters.IndexOf(textBoxLetter);
if (i > -1)
{
remainingInputLetters.RemoveAt(i);
}
}
return (remainingInputLetters.Count == 0);
}
试验:
Word | Result | Reason
----------|----------|--------------------
BEEP | Fail | Too many 'E's
BUZZ | Fail | No 'U's
PEZ | Pass |
BEZZ | Pass |
QUIZ | Fail | No 'U's or 'I's
| Fail | (empty)