WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 08-19-2011, 07:19 AM
new_horizon new_horizon is offline
Member
 
Join Date: Apr 2010
Posts: 43
IF statements and Lists

Hi All,

A very basic (I'm sure) programming question, but I am creating a list of three mouse position clicks and if one of these clicks falls within a certain range, I would like to the program to execute some commands.

I'm sure this is very simple, but here is my code below...

Code:
yield viztask.waitTime(1.0) # wait before prompt
		yield viztask.waitAny( [ viztask.waitButtonDown(zone1button),viztask.waitButtonDown(zone2button),viztask.waitButtonDown(zone3button),viztask.waitButtonDown(zone4button),viztask.waitButtonDown(zone5button),viztask.waitButtonDown(nonebutton)]) 
		m_pos1 = viz.mouse.getPosition()
		yield viztask.waitAny( [ viztask.waitButtonDown(zone1button),viztask.waitButtonDown(zone2button),viztask.waitButtonDown(zone3button),viztask.waitButtonDown(zone4button),viztask.waitButtonDown(zone5button),viztask.waitButtonDown(nonebutton)]) 
		m_pos2 = viz.mouse.getPosition()
		yield viztask.waitAny( [ viztask.waitButtonDown(zone1button),viztask.waitButtonDown(zone2button),viztask.waitButtonDown(zone3button),viztask.waitButtonDown(zone4button),viztask.waitButtonDown(zone5button),viztask.waitButtonDown(nonebutton)]) 
		m_pos3 = viz.mouse.getPosition()
		m_pos = [m_pos1,m_pos1,m_pos3]
		grid.visible(viz.OFF)
		zone1button.visible(viz.OFF)
		zone2button.visible(viz.OFF)
		zone3button.visible(viz.OFF)
		zone4button.visible(viz.OFF)
		zone5button.visible(viz.OFF)
		nonebutton.visible(viz.OFF)
		if on_off == 1:
			stim=nv
			if m_pos > 0.4 and m_pos< 0.6:
				R = 1
				stim = 0
				prob_calc(R) # should be using last valid nv & R to calc next nv
				stop_calc()
			else:
				R = 0
				stim = 0
				prob_calc(R) # should be using last valid nv & R to calc next nv
				stop_calc()
		if on_off == 0:
			stim = 0
			nulltrials = nulltrials + 1
			if m_pos > 0.4 and m_pos < 0.6:
				falsep = falsep+1
			falserate = 100*falsep/nulltrials
		print 'Trial:',tr,'Reversals: ', reverse, 'False pos rate:', falserate, 'M_pos1', m_pos1,'M_pos2', m_pos2,'M_pos3', m_pos3
		print '--NEXT--'
Can anyone advise me?

Thanks

Last edited by new_horizon; 08-19-2011 at 07:22 AM.
Reply With Quote
  #2  
Old 08-19-2011, 06:22 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
You can create a for loop to iterate through the positions in your m_pos list. Each position is itself a list of X,Y values. For example, the following checks to see if a position is in the top right quadrant:
Code:
m_pos1=[0.3,0.3]
m_pos2=[0.8,0.2]
m_pos3=[0.8,0.8]
m_pos = [m_pos1,m_pos2,m_pos3]

for pos in m_pos:
	if pos[0] > 0.5 and pos[1] > 0.5:
		print pos,'is in the top right quadrant'
Reply With Quote
  #3  
Old 08-23-2011, 01:45 AM
new_horizon new_horizon is offline
Member
 
Join Date: Apr 2010
Posts: 43
Thanks Jeff, perfect
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 09:57 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC