Millisecond Forums

Block ( ) works separatly but not in exsperiment ( )

https://forums.millisecond.com/Topic14432.aspx

By kulajw - 9/28/2014

Hello,
I have problem whit blocks groups in exp.
I have 3 blocks.
Blocks should presnet sequence of 6 letters and after this should present first and sixth letter from previosly shown set ( presented letters are storing in item.set).

If  I run each block separatly  they work fine, but if I run block grouped in <expt>  only first block run fine but 2 and 3 crush.
Block 2 and 3 are presenting only first letter from item.set and not sixth

 I do not know why

I atached my script.

I would be grateful if someon can help me.



By Dave - 9/28/2014

Not seeing any crash when running your script. Is your Inquisit installation up to date? You should be using 4.0.6.0, which you can obtain via https://www.millisecond.com/download/

There is, however, a slight syntax issue in that

<text S1L>
/items = stimulus
/position = (90,50)
/fontstyle = ("Arial", 10%)
/select = stimulus
</text>

should actually read

<text S1L>
/items = stimulus
/position = (90,50)
/fontstyle = ("Arial", 10%)
/select = list.stimulus.nextvalue
</text>

and so forth for the remaining <text> elements.

Also, <trial reset> should rather use the object's functions directly as in

<trial reset>
/ ontrialbegin = [item.set.clearitems(); list.stimulus.reset();]
/ stimulusframes = [1=blank]
/ response = noresponse
/ recorddata = false
/ posttrialpause = 200
</trial>

FInally, to avoid side-effects of clearing the <item> element between blocks, you should do

<text set_1>
/ items = set
/ txcolor = yellow
/ fontstyle = ("Arial", 10%)
/ erase = false
/ select = values.firstitem
</text>

<text set_6>
/ items = set
/ txcolor = yellow
/ fontstyle = ("Arial", 10%)
/ erase = false
/ select = values.sixthitem
</text>

<values>
/ firstitem = 1
/ sixthitem = 6
</values>
By kulajw - 9/29/2014


I have inquisit 4.0.4.0. , but after your upgrade of my script everything is fine.
Probably this syntax issue pointed by you produce some problems.

Thanks you  Dave - you're great !

P.S
I would like to ask if you know where I can learn how to optimize my scripts in inquisit and how to write more advanced scripts in proper way to avoid such issues?
Maybe some books?


By Dave - 9/29/2014

I am not aware of any books dealing with Inquisit syntax specifically (unless you read Chinese; one Chinese-language book exists).
I would recommend:
- Work through the tutorials in the Inquisit documentation to acquire the basics.
- If you have no prior programming experience, work through an "Introduction to programming" book of your choice. Which particular programming language you pick is not that importatn. Basic concepts -- variables, functions, conditional logic, etc. -- apply to virtually any programming language, including Inquisit syntax. Python is a popular choice and is perceived as a beginner-friendly language.
- Study other people's Inquisit-code. Pick some scripts from the task library you're interested in and try figure out what they do / how they work by examining the code. Try to implement some interesting modifications or extensions in some.
- Practice. Write lots of little prototypes to test things you are interested in / which are relevant to your own projects.

Hope this helps,
-Dave