All pastes #49889 Raw Edit

Unnamed

public text v1 · immutable
#49889 ·published 2006-04-19 09:20 UTC
rendered paste body
;ROOMMATES IN A HAT
[riah]
;who are the roommates?
exten => s,1,set(__WINNERS=0)
exten => s,n,set(__ROOMMATE1=Brad)
exten => s,n,set(__ROOMMATE2=Brian)
exten => s,n,set(__ROOMMATE3=James)
exten => s,n,set(__ROOMMATE4=Jeff)
exten => s,n,set(__ROOMMATE5=Marc)
exten => s,n,set(__ROOMMATE6=Aubrey)
exten => s,n,set(__PRIZES=2)
exten => s,n,set(__TRUNC=0)
exten => s,n,set(__COUNT=1)
exten => s,n,set(__TOTALSCORE=0)
exten => s,n,set(__EXITLOOP=0)

;for each roommate prompt for a weight
exten => s,n,set(__COUNT=$[${TRUNC} + 1])                      	;set roommate counter
exten => s,n,while($[${COUNT}<7])                ;while we havent assigned a weight to all the roommates...
	exten => s,n,background(beep)				;prompt with a tone...
	exten => s,n,waitexten(5)		;and givem five seconds to enter an extension 0-9
	exten => s,n(incr),set(__COUNT=$[${COUNT}+1])      		;then increment the counter
exten => s,n,endwhile

exten => s,n,set(__ROWS=$[${COUNT} - 1])
exten => s,n(repeat),set(__COUNT=$[${TRUNC} + 1])
exten => s,n,while($[${COUNT} <= ${ROWS}])
	exten => s,n,set(__MATEWEIGHT${COUNT}=${MATH(${MATEWEIGHT${COUNT}}*100,int)})
	exten => s,n,set(__MATEWEIGHT${COUNT}=${MATH(${MATEWEIGHT${COUNT}}/${TOTALSCORE},int)})
	exten => s,n,set(__COUNT=$[${COUNT} + 1])
exten => s,n,endwhile

exten => s,n,set(__COUNT=$[${TRUNC} + 1])
exten => s,n,while($[${COUNT} <= ${ROWS}])
	exten => s,n(iloop),while($[${EXITLOOP} != 1])
		exten => s,n,random(${MATEWEIGHT${COUNT}}:s,finalscore)
		exten => s,n,set(__TRIES=$[${TRIES} + 1])
		exten => s,n,goto(iloop)
		exten => s,n(finalscore),set(__MATEWEIGHT${COUNT}=${TRIES})
		exten => s,n,set(__EXITLOOP=1)
	exten => s,n,endwhile
	exten => s,n,set(EXITLOOP=0)
	exten => s,n,set(__COUNT=$[${COUNT}+1])
	exten => s,n,set(__TRIES=1)
exten => s,n,endwhile

exten => s,n,set(__COUNT=$[${TRUNC} + 1])
exten => s,n,set(__SUBCOUNT=1)
exten => s,n,while($[${COUNT} < ${ROWS}])
	exten => s,n,while($[${SUBCOUNT} < $[${ROWS} - $[${COUNT} -1]]])
		exten => s,n,gotoif($[${MATEWEIGHT${SUBCOUNT}} < ${MATEWEIGHT$[${SUBCOUNT} + 1]}]?sort,1)
		exten => s,n(incr2),set(__SUBCOUNT=$[${SUBCOUNT} + 1])
	exten => s,n,endwhile
	exten => s,n,set(__COUNT=$[${COUNT} + 1])
	exten => s,n,set(__SUBCOUNT=1)
exten => s,n,endwhile


exten => s,n,set(__COUNT=${PRIZES})

exten => s,n,set(__MATEWEIGHT${COUNT} = ${MATEWEIGHT$[${COUNT} + 1]})
exten => s,n,wait(2)

exten => s,n,gotoif($[${MATEWEIGHT${COUNT}} != ${MATEWEIGHT$[${COUNT} + 1]}]?winners,1:trunc,1)	

exten => winners,1,while($[${COUNT} > 0])
exten => winners,n,noop(${ROOMMATE${COUNT}} is a winner)
exten => winners,n,set(__COUNT=$[${COUNT} -1])
exten => winners,n,endwhile
exten => winners,n,hangup

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;take the weight and build the array;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
exten => _X,1,set(__MATEWEIGHT${COUNT}=${EXTEN})   ;give each roommate a relative weight using the counter
exten => _X,n,set(__TOTALSCORE=$[${TOTALSCORE} + ${MATEWEIGHT${COUNT}}])
exten => _X,n,goto(s,incr)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

exten => sort,1,set(__TEMP=${MATEWEIGHT$[${SUBCOUNT} + 1]})
exten => sort,n,set(__MATEWEIGHT$[${SUBCOUNT} + 1]=${MATEWEIGHT${SUBCOUNT}})
exten => sort,n,set(__MATEWEIGHT${SUBCOUNT}=${TEMP})
exten => sort,n,set(__TEMP=${ROOMMATE$[${SUBCOUNT} + 1]})
exten => sort,n,set(__ROOMMATE$[${SUBCOUNT} + 1]=${ROOMMATE${SUBCOUNT}})
exten => sort,n,set(__ROOMMATE${SUBCOUNT}=${TEMP})
exten => sort,n,goto(s,incr2)

exten => trunc,1,while($[${COUNT} > 1])
exten => trunc,n,gotoif($[${MATEWEIGHT${COUNT}} != ${MATEWEIGHT$[${COUNT} - 1]}]?posttrunc)
exten => trunc,n,set(__COUNT=$[${COUNT} - 1])
exten => trunc,n,endwhile
exten => trunc,n(posttrunc),set(__TRUNC=$[${PRIZES} - ${COUNT}])
exten => trunc,n,set(__COUNT=${PRIZES}+1)
exten => trunc,n,while($[${COUNT} < ${ROWS}])
exten => trunc,n,gotoif($[${MATEWEIGHT${COUNT}} != ${MATEWEIGHT$[${COUNT} + 1]}]?postcrop)
exten => trunc,n,set(__COUNT=$[${COUNT} + 1])
exten => trunc,n,endwhile
exten => trunc,n(postcrop),set(__CROP=$[${ROWS} - ${COUNT}])
exten => trunc,n,goto(crop,1)