全部版块 我的主页
论坛 经济学论坛 三区 行为经济学与实验经济学
2500 6
2015-03-08
各位大神好,我在做ztree时遇到一些问题自己解决不了orz,想请教大家的意见,如能解决,不胜感激!我的问题是:1  在bargaining的实验里,一个pair可能多次讨价还价。我看到现在的论文大多是在一个stage里设定x秒的时间,每过1秒就discount一下。想问ztree能不能实现一个bargain用多个stages,每失败一个stage就进入下一个然后discount一下?这个问题也可以表示成:一个treatment里面的stage能不能有无限多个(e.g. 用 loop),根据实验结果每个pair各自可以独立结束自己的period?如果这样不行,我用笨办法做20个stage,每个实验者可以不全用完,这样行吗?
2  我在import paremeter table的时候能够导入,也就是说tree上有这个图标了,而且我也是按照说明书上的要求做的txt表格。但是之后run的时候我却无法引用table里面的参数。想问这是为什么?我该怎么解决?
希望高人指点,不胜感激!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-3-10 07:04:42
关于第一个问题: 不用创建那么多stages。可以用如下的办法

准备工作:

1. 创建一个variable: control = 0;

2. 在一个stage中建立三个container boxes (下面简称Box1 Box2和Box3),都设成全屏大小。每个box都有一个显示条件。 Box1 的显示条件是control ==0 ;Box2 的显示条件是 control ==1,Box2 的显示条件是 control ==2。这样当一个subject来到这个stage时,他看到的是Box1 (因为control == 0)上面可以写上某个game。

3. 在Box1下创建一个OK button,双击OK button设成:点击OK不离开这个stage (一定要设,否则一点击就离开这个stage了)。 然后在OK button下写一个程序 (Ctrl + Alt + P) ,程序是 if (某条件满足) control ==2, 否则的话 control == 1 。也就是说,当某个达到某个条件,点击这个OK button, BOX3就会出现,否则 BOX2就会出现。

4. 把Box2按照类似BOX1的方式也设好。(注意 BOX 2 OK button的程序是 if (某条件满足) control ==2, 否则的话 control == 0)

5. 在Box3 下设立一个 OK button, 然后设成 "点击离开stage" (这个是默认的选项)

准备完成之后,就在BOX1 和 BOX2 里写上带有某个变量x的game,所有的discount也可以写在BOX1 和 BOX 2的OK button的程序下,比如被试一点击OK,某个变量x就变成0.8x,  以此来实现discount。Box3 写上"点击OK去往下一个game“ 。按照这样设好的话,被试一组人在没达到某个条件之前 会无限在BOX1 和 BOX2 之间切换(不断地bargain,不断的discount),而当满足某条件会进入BOX3, 点击OK去往下一个stage。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-10 16:35:39
blue_wind777 发表于 2015-3-10 07:04
关于第一个问题: 不用创建那么多stages。可以用如下的办法

准备工作:
天呐,好厉害啊!我看懂了,非常,非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-21 03:23:52
blue_wind777 发表于 2015-3-10 07:04
关于第一个问题: 不用创建那么多stages。可以用如下的办法

准备工作:
请问版主, 能不能把remaining time 显示在屏幕的其他位置?最好是可以创建一个box, 等remainingtime 还有10秒时跳出来。 谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-21 05:35:23
2156375 发表于 2015-4-21 03:23
请问版主, 能不能把remaining time 显示在屏幕的其他位置?最好是可以创建一个box, 等remainingtime 还有 ...
Remaining time写在header box里面。 你只要调整header box的大小和位置就能能随意使remaining time显示在不同的地方。(你可以新建一个header box,把show current period number 等不需要的选项勾掉。就剩时间,放哪里你随意。

关于控制最后十秒的问题,我感觉也许可以使用later命令 比如你的game时间长短是60秒,点一个按钮开始游戏,你需要在按钮下面写下这样的程序。

appear = 50;
later(appear)do {
    show_header_box = 1;
}

然后在header box的显示条件(condition) 里面添上 show_header_box == 1 。

这样的程序意味着在点完按钮后延迟50秒,你的header box才会显示出来, 这时候刚好剩10秒。

程序是我随手写的,没用z-tree跑 不知道有没有bug 你试一下。

(PS: 我不是版主,上面写的版主人选可能一直没更新。因为我平时比较忙,所以建议版主让有时间和精力的坛友当,大家别在喊版主啦,因为有时候我反应不过来。 :D )
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-21 20:13:57
blue_wind777 发表于 2015-4-21 05:35
Remaining time写在header box里面。 你只要调整header box的大小和位置就能能随意使remaining time显示在 ...
十分感谢!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群