Вопросы-ответы по RenPy

Разработка игр на RenPy, обсуждение реализации, вопросы "Как сделать?"
tadome
Сообщений: 12
Зарегистрирован: 04 авг 2017, 07:43

Re: Вопросы-ответы по RenPy

Сообщение tadome » 11 авг 2017, 20:42

dmit писал(а):Проще воспользоваться списком а не десятью переменными:

Код: Выбрать все

define vp = []   
label start:
    $ vp = [1,2,3,4,5,6,7,8,9,0]
    $ renpy.random.shuffle(vp) #перемешивание списка
    $ a = " ".join(map( str, vp )) #преобразование числового списка для показа
    "%(a)s"
    $ a = vp[0] #нулевой элемент списка
    "%(a)s"
    $ a = vp[1] #первый элемент
    "%(a)s"
    jump start


Спасибо за совет.
Но, мне кажется, что для меня это не тот вариант. Я данных мало дал наверное, вот, что я хочу сделать.
для каждого прохода теста вопросы перемешиваются...
есть тест из десяти вопросов, необходимо рандомно присвоить номера вопросам, например VP1=6(выбирается вопрос которому присвоен 6 номер) и т.д. тогда правильный ответ ot1=vp1, до этого объявлен счетчик начиная с 1 и при каждом проходе ВОПРОСА счетчик увеличивается на 1 и делается это до того пока переменная не равна 10. То есть за каждый проход вопроса счетчик растет и вставляется новый вопрос из заранее перемешанных. Вот так путано, но надеюсь понятна идея и реализация. ПС: просто линейный тест я сделал там десять фактически одинаковых фрагментов с замененными вопросами и ответами, но хотелось по новой логике попробовать.

Аватар пользователя
dmit
Сообщений: 30
Зарегистрирован: 28 апр 2016, 00:03

Re: Вопросы-ответы по RenPy

Сообщение dmit » 11 авг 2017, 23:18

tadome писал(а): например VP[1]=6(выбирается вопрос которому присвоен 6 номер) и т.д. тогда правильный ответ ot1=vp[1], до этого объявлен счетчик начиная с 1 и
Если по логике, то её надо подробно описать :)

tadome
Сообщений: 12
Зарегистрирован: 04 авг 2017, 07:43

Re: Вопросы-ответы по RenPy

Сообщение tadome » 11 авг 2017, 23:43

dmit писал(а):
tadome писал(а): например VP[1]=6(выбирается вопрос которому присвоен 6 номер) и т.д. тогда правильный ответ ot1=vp[1], до этого объявлен счетчик начиная с 1 и
Если по логике, то её надо подробно описать :)

голова вообще чет не варит после работы да и поздновато.
Вон какого монстра создал :twisted:
label start:

scene bg room

show eileen happy

e "Вы создали новую игру Ren'Py."
# $ pred = "{size=+10}{b}На «Х» начинается. \nИз трех букв состоит.\nКогда работает стоит,\nКогда кончает кланяется!{/b}{/size}\n{i}Что это?{/i}"

$ vp = [1,2,3,4,5,6,7,8,9,0]
$ renpy.random.shuffle(vp) #перемешивание списка
$ a = " ".join(map( str, vp )) #преобразование числового списка для показа
"%(a)s"
if vp[0] == 0:
$ dozvop = "0"
$ dozotv = "0"
if vp[0] == 1:
$ dozvop = "1"
$ dozotv = "1"
if vp[0] == 2:
$ dozvop = "2"
$ dozotv = "2"
if vp[0] == 3:
$ dozvop = "3"
$ dozotv = "3"
if vp[0] == 4:
$ dozvop = "4"
$ dozotv = "4"
if vp[0] == 5:
$ dozvop = "5"
$ dozotv = "5"
if vp[0] == 6:
$ dozvop = "6"
$ dozotv = "6"
if vp[0] == 7:
$ dozvop = "7"
$ dozotv = "7"
if vp[0] == 8:
$ dozvop = "8"
$ dozotv = "8"
if vp[0] == 9:
$ dozvop = "9"
$ dozotv = "9"
centered "{size=+10}[dozvop]{/size}"
centered "{size=+10}[dozotv]{/size}"

jump start

tadome
Сообщений: 12
Зарегистрирован: 04 авг 2017, 07:43

Re: Вопросы-ответы по RenPy

Сообщение tadome » 12 авг 2017, 00:59

tadome писал(а):
dmit писал(а):
tadome писал(а): например VP[1]=6(выбирается вопрос которому присвоен 6 номер) и т.д. тогда правильный ответ ot1=vp[1], до этого объявлен счетчик начиная с 1 и
Если по логике, то её надо подробно описать :)


Спасибо за помощь.
Все решил эту задачу, вроде все работает, осталось шлифануть.
Теперь:
1) Десять вопросов каждый раз при прохождении теста перетасовываются.
2) Вопрос, ответ, "Просьба ввести ответ", фраза если не успел ввести ответ все зависят от номера(при перетасовке)
3) когда десять вопросов будут заданы перескакивает на следующую метку
4)Сохраняет переменную в которой содержатся балы полученные в тесте.

(завтра точно все проверю :) )

Аватар пользователя
dmit
Сообщений: 30
Зарегистрирован: 28 апр 2016, 00:03

Re: Вопросы-ответы по RenPy

Сообщение dmit » 12 авг 2017, 11:52

Не до конца всё описано, но думаю это может помочь:
 

Код: Выбрать все

    $ vp = [["вопрос раз"," один ","нет1","нет2","нет3"],
            ["вопрос два","нет1","нет2"," два ","нет3"],
            ["третий вопрос"," три ","нет1","нет2","нет3"]]
    $ renpy.random.shuffle(vp)
    $ tru = 0 #счётчик правильных ответов
    while len(vp)>0:
        $ vv=vp[0][0]
        $ a =vp[0][1]
        $ b =vp[0][2]
        $ c =vp[0][3]
        $ d =vp[0][4]
        menu:
            "%(vv)s"
            "%(a)s":
                $ w = a
            "%(b)s":
                $ w = b
            "%(c)s":
                $ w = c
            "%(d)s":
                $ w = d
       
        if w[0]== " ": # правильный ответ выделен пробелами до и после
            $ tru+=1 
           
        $ del vp[0] # удаление заданного вопроса
    "правильных ответов - %(tru)s"
пример на три вопроса (больше просто лень делать:)
вопросы задаются вперемежку один за другим до их окончания и предлагается выбрать правильный ответ (меню)
из четырёх.

A_Raw
Сообщений: 5
Зарегистрирован: 22 мар 2017, 23:54

Re: Вопросы-ответы по RenPy

Сообщение A_Raw » 17 авг 2017, 11:44

у меня такой вопрос: функция ui.callsinnewcontext позволяет вызвать скрипт в новом контексте, но её, насколько я понял, можно применять только с нажатием кнопки. Есть ли возможность как-то вызвать скрипт в новом контексте просто из скрипта, безо всяких кнопок, с тем же эффектом который дает ui.callsinnewcontext?

ncpgames
Сообщений: 1
Зарегистрирован: 27 окт 2017, 18:28

Re: Вопросы-ответы по RenPy

Сообщение ncpgames » 27 окт 2017, 18:30

Пытался разархивировать архив

Изображение

Изображение


Вернуться в «Разработка игр на RenPy»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость