Показано с 1 по 10 из 95

Тема: Свободный практикум

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Бывалый Аватар для Dark32
    Информация о пользователе
    Регистрация
    30.12.2008
    Адрес
    Арзамас
    Сообщений
    640
    Записей в дневнике
    2
    Репутация: 20 Добавить или отнять репутацию

    Icon1 Свободный практикум

    Начинаю свободный практикум по скриптописанию. Суть практикума такова: в начале каждой недели (или чаще, в зависимости от сложности) я даю задание на составление простенького скрипта-алгоритма на нашем любимом RGSS (Можно использовать псевдоязык).
    В течение недели вы присылаете мне в открытую (пост в теме) или скрытую (ЛС, аська, почта) свой пример решения. В конце недели выкладываются все решения одним постом, в т.ч. и моё решение, и вы сами решаете какое решение для вас более приемлемое.
    Задания можно так же предлагать, но желательно в личном порядке.
    В практикум может вступить любой человек в любое время, ровно как и выйти из него.
    Язык исполнения желательно RGSS, но так же разрешён и псевдоязык. Можно прислать решение на другом любом языке, если это не затрагивает особенностей данного языка.

    Спойлер Задание №1:
    Замена подстроки.
    Заменить подстроку в строке на другую подстроку.
    Спойлер Теория:
    Подстрока - не пустая часть строки.
    Задание очень простое, я не могу написать внятной теории. Решается множеством способов.


    Метод должен принимать 3 строки: исходную строку, строку заменяемую, строку на которую меняют. Должно работать со строками любой длины и любыми символами.

    Дана строка
    "RMXP/VX for game developers. Many opportunities in the new version."
    Заменить RMXP/VX на RM2k3
    "RM2k3 for game developers. Many opportunities in the new version."

    Спойлер Задание 2:
    Вывод чисел в обратном порядке.
    Спойлер Теория:
    Мы вводим на клавиатуре ряд чисел(символов) и необходимо вывести их в обратном порядке. Решается занесением в массив всех цифр и вывод из массива в обратном порядке

    Задача: вывести в обратном порядке введённые символы не используя для вывода массив и не более 1 переменной.

    На вводе имеем ряд чисел (каждое число отдельно через Readln на паскале или аналог)
    1,2,3,4,5,6,7,8,9,0
    вывести числа в обратном порядке
    0,9,8,7,6,5,4,3,2,1
    0 - служет выходом из ввода чисел


    Спойлер Задача 3. Andrew:

    НОК
    (Время: 1 сек. Память: 16 Мб Сложность: 24%)

    Требуется написать программу, определяющую наименьшее общее кратное (НОК) чисел a и b.
    Входные данные


    В единственной строке входного файла INPUT.TXT записаны два натуральных числа А и В через пробел, не превышающих 46340.
    Выходные данные


    В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — НОК чисел А и В.
    Примеры
    № |INPUT.TXT |OUTPUT.TXT
    1 |36 27 |108
    2 |39 65 |195
    Спойлер Вот объяснение алгоритма.:


    Наименьшее общее кратное (НОК) двух целых чисел a и b есть наименьшее натуральное число, которое делится на a и b. Обычно обозначается [a,b], а иногда НОК(m,n) или LCM(a,b). Например, НОК(16,24)=48.

    Для нахождения НОК удобно использовать следующее свойство: для любых натуральных чисел a и b верно равенство НОД(a,b)*НОК(a,b)=a*b , откуда получаем, что НОК(a,b)=a*b/НОД(a,b).

    В условиях данной задачи можно НОД найти перебором, но более универсально использовать алгоритм Евклида, реализация которого рассмотрена здесь.



    Спойлер Задание 4:

    Анимация по кадрам.
    framerate.PNG
    Спойлер Теория:
    Вывод картинки
    PHP код:
    $spr=Sprite.new
    $spr.bitmap Bitmap.new (Image_path)
    $spr.x,$spr.x,
    Вывод участка картинки
    PHP код:
    $spr=Sprite.new
    $spr.bitmap.blt(x4Bitmap.new (Image_path), Rect.new(002424)) 

    Задача: вывести анимацию на экран.
    Болванка сцены будет дана, если необходимо
    Спойлер Болванка сцены:
    PHP код:
    class Scene_Dummy
      def initialize
      end
      def main
        
    @status_window Window_Dummy.new
        
    Graphics.transition
        loop 
    do
          
    Graphics.update
          Input
    .update
          update
          
    if $scene != self
            
    break
          
    end
        end
        Graphics
    .freeze
        
    @status_window.dispose
      end
      
    #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      
    def update
      end
    end


    class Window_Dummy Window_Base
      def initialize
    (actor)
        
    super(00640480)
        
    self.contents Bitmap.new(width 32height 32)
        
    refresh
      end   
      
    #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      
    def refresh
        self
    .contents.clear
        end
      
    end 

    Можно вывести анимацию перед отрисовкой титульника, это особой роли не играет.
    Уровни сложности:
    1 уровень. Самое простое: разрезать на отдельные кадры, подогнать положения, менять кадры-файлы
    2 уровень. Посложнее: перекроить, разбить на одинаковые прямоугольники, пенять прямоугольники.
    3 уровень. Сложно: Изменять картинку настрого нельзя!
    При выполнение 1 и 2 уровня - выкладывать графику необходимо.
    Картинка избыточна, на любом уровне можно использовать не все кадры, а только ключевые.


    Спойлер Задание №5:

    Довольно простое задание - сделать меню биографии героя. По сути это изменённое меню статуса, но желательно статус не затирать. Весьма простое задание: нужно знать 2 вещи: как делать окно и как выводить текст, остальное можно взять из меню статуса.

    И так, что требуется: Создать меню биографии содержащие различную информацию о герое, информация должна подхватываться либо из переменных, либо из текстовый фалов. Должна иметься возможность спокойно изменять информацию о любом герое. Информация о героях не должна зависеть от их расположения в группе, т.е. должна крепиться к ID героя, а не к положению в группе.
    На Светлом есть хороший пример скрипта биографии, можете его проанализировать. Но, дабы, не было тупого плагиата, ввожу дополнительные требования - окно должно быть полупрозрачным или прозрачным, на заднем фоне должна быть текущая карта местности (не миникарта) или что-то тёмно-красное(тёмно-зелёное) двигаться. Не должно быть сильных тормозов.
    Теперь относительно выводимой информации.
    Обязательно:
    Имя, возраст, дата рождения (с указанием начала отсчёта, н-р.: 2.05.340 от рождества Архитектора),место рождения, группа крови (или её аналога), стихия (или аналог), портрет или чарсет.
    Не обязательно:
    Список родителей (создателей или аналог), братья и сёстры, имя партнёра(ов), любимое что-то (цвет, блюдо, оружие, магия, и т.п.)
    Остальная информация на ваш вкус.
    Последний раз редактировалось Dark32; 08.07.2011 в 12:49.
    Нужна помощь в скриптах? Запутался? Голова не варит?
    Читал это и это тоже? Не помогло? Тогда тебе сюда!
    Спойлер •••:
    Цитата Сообщение от Реймон
    В мире нет вещей которые нельзя решить с помощью сладостей
    Цитата Сообщение от Ундер
    Ночью можно обойтись и без сладостей...

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Свободный практикум