Ха, ошибка. А если будет вводиться такие числа?
Ввод: 0 1 2 3 4 5 6 7 8 9 10
Выво: 01 9 8 7 6 5 4 3 2 1
Не ошибка. Невнимательно читаешь задания: Задача: вывести в обратном порядке введённые символы не используя для вывода массив и не более 1 переменной.
Не числа, а символы!
Но если ты хочешь пример с цифрами, то они записываются в List<int> //double, single, да хоть object, после чего повторяем операцию:
Consolr.WriteLine(list.Reverse<int>());
Блин, я пол дня спрашивал об этом дарка. там именно числа
На вводе имеем ряд чисел (каждое число отдельно через Readln на паскале или аналог)
1,2,3,4,5,6,7,8,9,0
вывести числа в обратном порядке
0,9,8,7,6,5,4,3,2,1
0 - служет выходом из ввода чисел
Задача: вывести в обратном порядке введённые символы не используя для вывода массив и не более 1 переменной.
На вводе имеем ряд чисел (каждое число отдельно через Readln на паскале или аналог) 1,2,3,4,5,6,7,8,9,0
вывести числа в обратном порядке 0,9,8,7,6,5,4,3,2,1
0 - служет выходом из ввода чисел
В задании четко написано - символы. Далее, для примера, указаны числа. С тем же успехом это могли быть буквы или непечатные символы. Кроме того перечислены вводимы и выводимые символы. Наконец, решение для чисел я тоже привел.
def test_anim
$spr = Sprite.new
# Узнаем размеры картинки
pic_width = Bitmap.new ("Graphics/Pictures/framerate.png").width
pic_height = Bitmap.new ("Graphics/Pictures/framerate.png").height
# Задаём начальные координаты вывода и размер квадрата анимации
$spr.bitmap = Bitmap.new (pic_width/8-1,pic_height)
$spr.x = 100
$spr.y = 100
# Повторяем анимацию 5 раз
for j in 0..5
x = 0
y = 0
for i in 0..7
$spr.bitmap.blt (0, 0, Bitmap.new ("Graphics/Pictures/framerate.png"),
Rect.new(x, y, pic_width/8-2, pic_height))
x += pic_width/8-1 # Выбираем следующий кадр из картинки
delay(4) # Честно стыриная функция
$spr.bitmap.clear
end
end
end
def delay(wait)
count = Graphics.frame_count
while wait + count >= Graphics.frame_count
Graphics.update
end
end
Функция delay подсмотрена из CGI Movies
СпойлерТворения моих рук:
Angel Beats - первая проба на Мейкере - 4.20 МБ Space Scene - ролик на конкурс ФМР'2010 (Нейтральная полоса) - 15.6 МБ Naomi-chan - ролик на конкурс "Предпраздничный конкурс музыкальных проектов" (Светлая зона) - 4.63 МБ
Да, и впрямь что-то четвертое задание затянулось. Мой вариант решения:
СпойлерНе отписавшимся участникам не смотреть!:
СпойлерВы уверены, что хотите заглянуть под спойлер?:
СпойлерА если подумать?:
СпойлерА если хорошо подумать?!:
СпойлерНу, ладно, щелкай...:
Код:
# Вставляем перед Main
begin
# Константа, содержащая количество кадров
@FramesCount = 8
# Задаем новую частоту обновления экрана
# (первый вариант управления скоростью анимации)
# Graphics.frame_rate = 10
# Создаем изображение, в пути указываем свой путь, не забывая экранировать слэши
@bitmap = Bitmap.new("D:\\Games\\RPGMakerXP\\Projects\\Scripts\\Source\\framerate.PNG")
# Получаем размеры кадра
@frameWidth = @bitmap.width / @FramesCount
@frameHeight = @bitmap.height
# Определяем положение экрана
# Здесь должна была быть WinAPI функция для определения размеров экрана,
# но это уже тема другого задания
@spriteX = 320 - @frameWidth / 2
@spriteY = 240 - @frameHeight / 2
# Создаем область просмотра
@viewport = Viewport.new(@spriteX, @spriteY, @frameWidth, @frameHeight)
# Создаем новый спрайт с указанием области просмотра
@sprite = Sprite.new(@viewport)
# Присваиваем изображение спрайту
@sprite.bitmap = @bitmap
# Запускаем бесконечный цикл (вроде, был do, но я давно не писал)
# Это вместо использования встроенных циклов сцены
while (true)
# Цикл от 0-го кадра до последнего
for i in 0...@FramesCount
# Задаем смещение по оси X для области просмотра,
# равное номеру кадра, умноженное на ширину кадра
@sprite.viewport.ox = @frameWidth * i
# Обновляем экран
Graphics.update
# Ждем 0.1 секунды
# (второй вариант управления скоростью анимации)
sleep(0.1)
end
end
end
Я тут, кстати, немного опростоволосился (ну, давно не писал, давно ) и оба представленных способа управления скоростью анимации использовать в настоящих проектах не рекомендуется. Вместо этого используйте метод delay, реализованный в скрипте Space постом выше.
---
Добавлено после морального шока: нет, не используйте метод Space, он чешет правой ногой левое ухо.
СпойлерВы действительно хотите узнать страшную тайну?:
Space, тебе не кажется, что, если нужно просто посчитать кадры, то для этого вполне подойдет обычный цикл?
Код:
def delay(frames)
for i in 0...frames
Graphics.update
end
end
Зачем юзать страшный Graphics.frame_count?! Интерпретатору легче сосчитать циферки от 0 до 20, чем от 95195121218 до 95195121238
Последний раз редактировалось Equilibrium Keeper; 07.07.2011 в 22:15.
Мой пример решения уже давно лежит на форуме AniTail
Ну что же, думаю 4 задание можно считать завершённым, какое задание хотите следующим или, может, кто предложет сам?
Нужна помощь в скриптах? Запутался? Голова не варит?
Читал это и это тоже? Не помогло? Тогда тебе сюда!
Спойлер•••:
Сообщение от Реймон
В мире нет вещей которые нельзя решить с помощью сладостей
Добавлено после морального шока: нет, не используйте метод Space, он чешет правой ногой левое ухо.
СпойлерВы действительно хотите узнать страшную тайну?:
Space, тебе не кажется, что, если нужно просто посчитать кадры, то для этого вполне подойдет обычный цикл?
Код:
def delay(frames)
for i in 0...frames
Graphics.update
end
end
Зачем юзать страшный Graphics.frame_count?! Интерпретатору легче сосчитать циферки от 0 до 20, чем от 95195121218 до 95195121238
Ты слишком хорошего обо мне мнения, я даже не представляю с какими величинами работает Graphics.frame_count Но твой совет запомню!
Dark32, 4 задача была очень жизненной, если имеется что-то подобное, так сказать из жизни, выкладывай)))
P.S. Чесать правой ногой левое ухо проще, чем чесать его левой!
СпойлерТворения моих рук:
Angel Beats - первая проба на Мейкере - 4.20 МБ Space Scene - ролик на конкурс ФМР'2010 (Нейтральная полоса) - 15.6 МБ Naomi-chan - ролик на конкурс "Предпраздничный конкурс музыкальных проектов" (Светлая зона) - 4.63 МБ
Ты слишком хорошего обо мне мнения, я даже не представляю с какими величинами работает Graphics.frame_count Но твой совет запомню!
Дык справка!
Graphics.frame_count
Счетчик частоты обновления экрана. Если в начале игры установить это значение на 0, то время, проведённое в игре (в секундах), можно будет вычислить, разделив данное значение на значение свойства frame_rate.
Он увеличивается на 1 каждый кадр игры.
Dark32
А почему бы не продолжить тему: разработать алгоритм хранения в изобржаении и считывания мейкером количества строк и рядов анимации? А вообще - нужно продолжить тему жизненных заданий. К примеру - переоформление какой-нибудь обрыдлой стандартной сцены.
Dark32
А почему бы не продолжить тему: разработать алгоритм хранения в изобржаении и считывания мейкером количества строк и рядов анимации? А вообще - нужно продолжить тему жизненных заданий. К примеру - переоформление какой-нибудь обрыдлой стандартной сцены.
Можно (наверное) сделать интереснее, у bitmap'а имеется ф-ия get_pixel(x, y) - Получает цвет указанного пиксела (x, y). т.е. теоретически можно составить алгоритм определения этих самых строк и рядов(столбцов)!?
СпойлерТворения моих рук:
Angel Beats - первая проба на Мейкере - 4.20 МБ Space Scene - ролик на конкурс ФМР'2010 (Нейтральная полоса) - 15.6 МБ Naomi-chan - ролик на конкурс "Предпраздничный конкурс музыкальных проектов" (Светлая зона) - 4.63 МБ
Социальные закладки