2017-02-09 9 views
1

У меня есть простой код с помощью функции случайных чисел с сайта picaxes (слегка адаптированный)PICAXE 28x1 генератор случайных чисел

symbol counter = b7 
symbol randword = b5 
for counter = 0 to 10 

let randword = timer 
random randword 

write counter, b5 
next counter 

end 

По какой-то причине на PICAXE редактор версии 5 это работает отлично, но на PICAXE редактор 6 все это does дает 2, не очень случайный, я понятия не имею, почему.

Любая помощь очень ценится

Благодаря

+0

Вы используете это в симуляции или на реальной PICAXE? – nekomatic

+0

и PICAXE для редактора 6 и просто симуляция для редактора 5 на данный момент. – pythonstudent

+0

Кроме того, я добавил цикл ожидания, который требует, чтобы вы нажмете кнопку, чтобы запустить программу, чтобы время работы было случайным – pythonstudent

ответ

1

Проверка PICAXE BASIC language manual показывает несколько возможных проблем с кодом:

  • переменная timer система должна быть инициализирована с командой settimer прежде, чем вы можете используйте его
  • в зависимости от того, какое значение предварительной загрузки вы используете с settimer, значение timer вполне может не измениться в короткий промежуток времени между одной итерации цикла и следующий, который даст вам тот же результат с random
  • random следует использовать с переменной слова (w0, w1, и т.д.) не байт переменной

то, что я думаю, что ручной ввод для random предлагает, вы должны сделать, хотя я согласен, что это не совсем понятно, если вы новичок в генерацию случайных чисел, чтобы семена random с timer в первого времени вы назовите его, а затем заселите его своим предыдущим значением каждый раз после этого:

symbol counter = b5 

let w3 = timer   ; w3 is the word variable consisting of b6 and b7 
for counter = 0 to 10 

random w3 
; ...do something with the value of w3 (but don't change w3 itself)... 

next counter 

Однако после говоря все это, конечно, возможно, что тренажер в той или иной версии редактора программирования PICAXE не имитирует поведение timer правильно во всех случаях. Если вы не можете заставить код работать на реальном PICAXE, задайте этот вопрос на PICAXE forum, где его будут видеть сотрудники службы поддержки Revolution Education, а также другие знающие пользователи.