9. Программирование пользовательского интерфейса

Наверное, вы уже поняли причину ошибки. Дело в том, что значение переменной Referee. Human. CurrentScores не прибавлялось к переменной Referee.Human. Scores. Происходила просто перезапись старого значения. Для правильной реализации логики работы надо операцию = заменить на операцию +=:

Referee.Human.Scores += Referee.Human.CurrentScores;

Видите, как сильно может влиять на логику работы всего один пропущенный символ? А подобные опечатки не обнаружит никакой компилятор.

Теперь отлаживаемую программу надо завершить, нажав комбинацию Ctrl+F2, затем убрать точку остановки, перекомпилировать текст и запустить приложение заново. Проверьте его работу — в нужный момент в накопленную человеком сумму запишется число 11. Так и должно быть.

h01561.jpg

По клавише F8 выполняются сразу всё операторы в очередной строке. По клавише F7 происходит «вход внутрь» в очередной метод, при условий, что он, конечно, в данной строке имеется. *

Например, если должна выполняться строка Referee. ComputerMoveQ;

то при нажатии на клавишу F7 отладчик перейдет к выполнению операторов метода ComputerMove(). По окончании выполнения этого метода отладчик вновь вернется обратно, в метод NextItemClick().

Исключаем повторяющиеся игры

Внимательный читатель, конечно же заметил, что автор книги как будто заранее знает, что будет выпадать на кубике при пробном запуске игры. Интересно, откуда такая прозорливость? Разве результат броска кубика не определяется случайным числом? А может быть это число не случайное?

Нет, конечно же, генератор выдает случайное число, однако сама последовательность случайных чисел — отнюдь не случайная, а стабильная. Она всегда одна и та же.

— Но ведь скоро играть с программой будет неинтересно?

— Да, это так, и неслучайность последовательности надо исключить. Причина этого явления лежит в устройстве генератора случайных чисел random(). Наличие одной и той же стабильной последовательности очень удобно при отладке программы. Так, чтобы найти вышеупомянутую ошибку,

156