Курсы создания компьютерных игр на C/C++ ( Часть 4 )

Для самых-самых начинающих программистов :] Часть 3 - http://pikabu.ru/story/_3437142
Курсы создания компьютерных игр на C/C++ ( Часть 4 ) Для самых-самых начинающих программистов :]  Часть 3 - <a href="http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_na_cc__chast_3__3437142">http://pikabu.ru/story/_3437142</a>
Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Автору большое спасибо за серию постов!


Если можно вот тут пояснить, что и как происходит?

   for (int i=0; i < lettersCount; i++)

   {

   letters[i] = 'a' + rand() % (('z' - 'a') +1 );

   }


В ДЗ справился пока только с 1 частью, буду эксперементировать дальше))

раскрыть ветку (6)
Автор поста оценил этот комментарий

цикл от нуля до количества букв в строке.

каждой следующей букве в строке присваивается случайная буква от а до z.

(тип данных char - целочисленный, и все буквы идут по порядку, поэтому можно использовать такой вид записи рандомайза)

раскрыть ветку (5)
Автор поста оценил этот комментарий

не как не пойму именно вот эту часть:

% (('z' - 'a') +1 );

раскрыть ветку (4)
Автор поста оценил этот комментарий

Про случайные числа и остаток от деления было рассказано в Части 2.

'a' + rand() % (('z' - 'a') +1 );
97 + rand() % ( (122 - 97) + 1 )
97 + rand() % 26;

Получим тут случайное число от 97 до 122 включительно. Про то, что это коды символов от 'a' до 'z' было рассказано в Части 3. :)

раскрыть ветку (1)
Автор поста оценил этот комментарий

спасибо!

1
Автор поста оценил этот комментарий

после знака % указывается диапазон значений (ширина), из которых будет выборка:

%5 значит из 5, %124 значит из 124. (т.к. % показывает остаток от деления: 3 % 2 = 1; 5 % 2 = 1; 17 % 5 = 2;)


Соответственно здесь ширина выборки будет от ( z - a ) + 1


Что это значит? С учетом предыдущей ('a' +) ширина диапазон будет от номера в таблице ASCII со значением a, до номера со значением z. Другими словами, любая буква от a до z.

+1 - потому что всё с нуля считается.


https://ru.wikipedia.org/wiki/ASCII

a - имеет номер 98 в таблице, z - 123

можно было бы написать ( 98 + random () % (123 - 98 + 1). Число, полученное в результате сверяется с сиволом в ASCII, результат выдаётся в виде этого символа


так понятно? или желательно ещё подробнее =)

раскрыть ветку (1)
Автор поста оценил этот комментарий
очень)) спасибо!!
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку