Использование консольного приложения C #.
Код предназначен для случайного циклического перебора букв, чтобы попытаться найти пароль. Когда буква совпадает с буквой в пароле, она останется до тех пор, пока все буквы не совпадут.
На данный момент я использую "ALGORITHM" в качестве заполнителя.
По умолчанию буквы красные.
Однако я хочу, чтобы определенные символы меняли свой (и только свой) цвет переднего плана на зеленый, когда они совпадают. Цвета, которые еще не совпали, должны оставаться красными.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApp3
{
class Program
{
// let's figure out how to make specific letters a specific colour.
// if not letter, RED. if letter, CYAN.
static void Main(string[] args)
{
Random r = new Random();
string letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
List<string> dictionary = new List<string>(new string[] {
"ALGORITHM"
});
string word = dictionary[r.Next(dictionary.Count)];
List<int> indexes = new List<int>();
Console.ForegroundColor = ConsoleColor.Red;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < word.Length; i++)
{
sb.Append(letters[r.Next(letters.Length)]);
if (sb[i] != word[i])
{
indexes.Add(i);
}
}
Console.WriteLine(sb.ToString());
while (indexes.Count > 0)
{
int index;
Thread.Sleep(100);
Console.Clear();
for (int i = indexes.Count - 1; i >= 0; i--)
{
index = indexes[i];
sb[index] = letters[r.Next(letters.Length)];
if (sb[index] == word[index])
{
indexes.RemoveAt(i);
}
}
Console.WriteLine(sb.ToString());
}
Console.ReadLine();
}
}
}