Created
May 13, 2016 15:55
-
-
Save jglee72/440fcc81233ea83af4a40dee69cd4073 to your computer and use it in GitHub Desktop.
ultimateCalc.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import math | |
import dialogs | |
import time | |
from game_menu import MenuScene | |
import sound | |
# print fibanoci sequence up to n | |
def fib(n): | |
a,b=0,1 | |
while a < n: | |
print a | |
a,b=b,a+b | |
# print whether n is an odd or even number. | |
def odd(n): | |
if (n%2): | |
print('odd number') | |
else: | |
print('even number') | |
# calculate payout scale for MTNW LCI-90 | |
def payoutScale(mags,sheaveDia,cableDia): | |
#payout scale = pulses_per_round/((sheave dia + cable dia)) x Pi | |
a=mags/((sheaveDia+cableDia)*math.pi) | |
print 'Enter : ' , a, 'for Payout Scale' | |
# calculate time to go and maybe real time for lemons | |
def timeToLemons(metersPerMin, depth, lemonDepth): | |
float(metersPerMin) | |
float(depth) | |
float(lemonDepth) | |
timeToGo = (depth-lemonDepth)/metersPerMin | |
j=time.localtime() | |
timeHourAdd=int((timeToGo+j.tm_min)/60) | |
newHour=j.tm_hour+timeHourAdd | |
newHour-=(24 if newHour>=24 else 0) | |
newMin=timeToGo+j.tm_min-timeHourAdd*60 | |
#lemonTime[0] = ('0' if newHour < 10 else '1') | |
lemonTime=('0' if newHour<10 else '')+str(newHour)+':'+('0' if newMin<10 else '')+str(int(newMin)) | |
# print 'Payout',':',int(depth), '=',int(timeToGo), 'mins till lemons on surface', "(" , ('0' if newHour<10 else ''), newHour,':',('0' if newMin<10 else ''), int(newMin), ")" | |
callMin = newMin - int(30) | |
callHour = newHour | |
callHour -= (1 if callMin<0 else 0) | |
if (callHour < 0): | |
callHour = int(24) | |
callMin+=(60 if callMin<0 else 0) | |
callTime=('0' if callHour<10 else '' )+str(callHour)+':'+('0' if callMin<10 else '')+str(int(callMin)) | |
# print 'Half hour callout at:',('0' if callHour<10 else '' ),callHour, ':', ('0' if callMin<10 else ''),int(callMin) | |
sound.play_effect('arcade:Powerup_2') | |
return (str(timeToGo),lemonTime,callTime) | |
def calcTimeToLemons(): | |
Times=['Wait for it','I mean it','Here it Comes'] | |
depth=0.0 | |
while True: | |
field1={'type':'number','key':'Payout','title':'Payout (meters):','tint_color':'#346511','placeholder':'enter payout'} | |
field2={'type':'number','key':'Speed','value':'25','title':'Payout Speed (m/min) : ','placeholder':'enter winch speed'} | |
field3={'type':'number','key':'Lemons','title':'Lemons depth (meters)', 'value':'100','tint_color':'#a70000','placeholder':'enter lemons payout'} | |
field4={'type':'number','key':'MinLemons','title':'Minutes to Lemons', 'value':Times[0],'tint_color':'#a70000'} | |
field5={'type':'number','key':'TimeLemons','title':'Time at Lemons', 'value':Times[1],'tint_color':'#a70000'} | |
field6={'type':'number','key':'TimeCall','title':'Half Hour Callout', 'value':Times[2],'tint_color':'#a70000'} | |
s_depth=str(depth) | |
field7={'type':'number','key':'payout','title':'You entered:', 'value':s_depth,'tint_color':'#a70000'} | |
t1=[field1,field2,field3] | |
t2=[field7,field4,field5,field6] | |
s1='Input',t1 | |
s2='Answers',t2 | |
sect=(s1,s2) | |
answer=dialogs.form_dialog(title='Time to Lemons! Calculator',sections=sect,done_button_title='execute') | |
lemonDepth=float(answer['Lemons']) | |
metersPerMin =float(answer['Speed']) | |
depth=float(answer['Payout']) | |
Times=timeToLemons(metersPerMin, depth, lemonDepth) | |
#end of while loop | |
def calcPayoutScale(): | |
# get user data. must convert to float and translate to meters | |
# sheaveDia=float(dialogs.text_dialog('enter sheave diameter (inches):')) * 0.0254 | |
# cableDia=float(dialogs.text_dialog('enter cable diameter (inches):')) * 0.0254 | |
# mags=float(dialogs.text_dialog('enter magnet count:')) | |
# payoutScale(mags,sheaveDia,cableDia) | |
field1={'type':'number','key':'Sheave','title':'Sheave Dia: ','tint_color':'#346511'} | |
field2={'type':'number','key':'Cable','title':'Cable Dia : '} | |
field3={'type':'number','key':'Mags','title':'Number Mags: ','tint_color':'#000000'} | |
t=[field1,field2,field3] | |
answer=dialogs.form_dialog('MTNW: Payout Calculator',t,done_button_title='Do It!') | |
mags=float(answer['Mags']) | |
sheaveDia=float(answer['Sheave'])*0.0254 | |
cableDia=float(answer['Cable'])*0.0254 | |
payoutScale(mags,sheaveDia,cableDia) | |
def calcDiveTime(): | |
field1={'type':'number','key':'diveStart','title':'Dive Start Time (24hour): ','tint_color':'#1b8c3b','placeholder':'00:00'} | |
field2={'type':'number','key':'diveEnd','title':'Dive End Time (24hour): ','tint_color':'#1b8c3b','placeholder':'00:00'} | |
field3={'type':'number','key':'diveDays','title':'Dive Days(# 00:00\'s)', 'tint_color':'#1b8c5c','value':'0'} | |
t=[field1,field2,field3] | |
answer=dialogs.form_dialog('Dive Time Calculator',t) | |
diveStart= (answer['diveStart']) | |
diveEnd= (answer['diveEnd']) | |
diveDays= (answer['diveDays']) | |
diveTime(diveStart,diveEnd,diveDays) | |
sound.play_effect('arcade:Explosion_3') | |
sound.play_effect('arcade:Jump_2') | |
sound.play_effect('arcade:Laser_4') | |
def diveTime(timeStart,timeEnd,days): | |
minute0= int(timeEnd[4])-int(timeStart[4]) | |
minute1= int(timeEnd[3])-int(timeStart[3]) | |
hour0= int(timeEnd[1])-int(timeStart[1]) | |
hour1= int(timeEnd[0])-int(timeStart[0]) | |
# print hour1,hour0,':', minute1,minute0 | |
#timeElapse = imemjEnd-timeStart | |
startSeconds = 0 | |
startSeconds+=int(timeStart[0])*(10*60*60) | |
startSeconds+=int(timeStart[1])*(60*60) | |
startSeconds+=int(timeStart[3])*(10*60) | |
startSeconds+=int(timeStart[4])*(60) | |
finishSeconds=0 | |
finishSeconds+=int(timeEnd[0])*(10*60*60) | |
finishSeconds+=int(timeEnd[1])*(60*60) | |
finishSeconds+=int(timeEnd[3])*(10*60) | |
finishSeconds+=int(timeEnd[4])*(60) | |
print finishSeconds, startSeconds | |
secondsTotal=0 | |
if (int(days) !=0): | |
secondsTotal= ( int(days)*24*60*60-startSeconds) + finishSeconds | |
else: | |
secondsTotal= finishSeconds-startSeconds | |
# print secondsTotal | |
print int(secondsTotal/3600.0), ':',('0' if(secondsTotal%3600/60)<10 else ''),(secondsTotal%3600/60), 'Hours Dive Time' | |
def fibonaci(): | |
fibNum=float(dialogs.text_dialog('Enter a Number to Fibonaci To: ')) | |
fib(fibNum) | |
############# MAIN PROGRAM ############# | |
# show list of calculators available | |
calcList = ['MTNW Calculator', 'fibonaci', 'Time To Lemons','Dive Time Calculator'] | |
calcChoice = dialogs.list_dialog('Choose a Calculator', calcList) | |
#show_start_menu(0) | |
if (calcChoice == 'MTNW Calculator'): | |
calcPayoutScale() | |
elif (calcChoice == 'fibonaci'): | |
fibonaci() | |
elif (calcChoice == 'Time To Lemons'): | |
calcTimeToLemons() | |
elif (calcChoice == 'Dive Time Calculator'): | |
calcDiveTime() | |
else: | |
print('No choice available') | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment