C # scrable игровое кодирование.Не можете объединить строку и int? - PullRequest
0 голосов
/ 26 февраля 2019
int[] punten = 
    { 1, 2, 3, 1, 1, 4, 2, 2, 1, 4, 4, 2, 3, 1, 1, 3, 10, 1, 1, 1, 4, 2, 4, 8, 8, 4 };

char[] alfabet = new char[27];

for (int i = 65; i < 65 + 26; i++)
{
    char letter = (char)i;
    alfabet[i - 65] = letter;
}

foreach (char letters in alfabet)
{
    lblAlfabet.Content += letters.ToString() + "=" + punten.ToString() + "\n";
}

Невозможно объединить строку и int, они должны располагаться рядом друг с другом в метке.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Я думаю, что вам лучше использовать словарь и явно назначать свои точки каждой букве, а не перебирать символы ASCII и хранить их в отдельных массивах.

var letterPoints = new Dictionary<char, int>()
{
    {'A', 1}, {'B', 2}, {'C', 3}, {'D', 1}, {'E', 1}, {'F', 4}, {'G', 2}, {'H', 2}, {'I', 1}, {'J', 4},
    {'K', 4}, {'L', 2}, {'M', 3}, {'N', 1}, {'O', 1}, {'P', 3}, {'Q', 10}, {'R', 1}, {'S', 1}, {'T', 1},
    {'U', 4}, {'V', 2}, {'W', 4}, {'X', 8}, {'Y', 8}, {'Z', 4}
};

foreach (var lp in letterPoints)
{
    lblAlfabet.Content += $"{lp.Key}={lp.Value}\n";
}
0 голосов
/ 26 февраля 2019

Предполагая, что ваши punten расположены в алфавитном порядке, и массив содержит правильное количество элементов, которые вы можете попробовать

int i = 0;

foreach (char letters in alfabet)
{
    lblAlfabet.Content += letters.ToString() + "=" + punten[i++].ToString() + "\n";

}

Кроме того, согласно комментарию @ CharlesMay ниже, алфавит должен иметь только 26 элементов, т.е.

char[] alfabet = new char[26];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...