You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

183 lines
5.4 KiB

import sort_date
correct_locs = [ ]
temp = None
moved_item = None
moved_item_loc = None
exp_date = [ ]
shelf_new = [ ]
repeats = 0
moves_return = None
pickup = []
replace = []
def throw_check():
for i in range(0,len(moves_return),2):
loc = i + 2;
if moves_return[i + 1] != 0:
break
if 0 in moves_return[loc:]:
return True
return False
def seperate():
global pickup
global replace
for i in range(1,len(moves_return),2):
pickup.append(moves_return[i-1])
replace.append(moves_return[i])
def backArray( myArray ):
global shelf_back
shelf_back = [ ]
for i in range( len( myArray ) ):
shelf_back.append( myArray[ i ] )
def eqArray( myArray ):
global exp_date
exp_date = [ ]
for i in range( len( myArray ) ):
exp_date.append( myArray[ i ] )
def place():
global exp_date
global shelf_new
global repeats
global shelf_back
global moves_return
repeats += 1
backArray( exp_date )
moved_item = None
moved_item_loc = None
if (exp_date[ len( exp_date ) - 1 ] != None):
empty_loc = exp_date.index( None )
moved_item_loc = exp_date.index( shelf_new[ empty_loc ] )
reps = 0
while True:
reps += 1
if (moved_item_loc in correct_locs):
exp_date.pop( moved_item_loc )
moved_item_loc = exp_date.index( shelf_new[ empty_loc ] ) + reps
continue
break
eqArray( shelf_back )
moved_item = exp_date[ moved_item_loc ]
if (exp_date[ moved_item_loc ] != shelf_new[ moved_item_loc ]):
exp_date[ moved_item_loc ] = None
exp_date[ empty_loc ] = moved_item
correct_locs.append( empty_loc )
print " Moved item {0} to location {1}. Location {2} is now empty!".format( moved_item,
empty_loc + 1,
moved_item_loc + 1 )
print "============================================================================="
moves_return.append( str( moved_item_loc + 1 ) )
moves_return.append( str( empty_loc + 1 ) )
else:
print " Leaving item {0} in location {1}. Location {2} is still empty!".format( moved_item,
moved_item_loc + 1,
empty_loc + 1 )
print "============================================================================"
correct_locs.append( moved_item_loc )
place()
else:
return
def faster():
global moves_return
for i in range( 1, len( moves_return ) - 1, 2 ):
if (moves_return[ i ] == moves_return[ i + 1 ]):
moves_return.pop( i )
moves_return.pop( i )
faster()
else:
continue
return moves_return
def generate( dates, date_cur ):
global exp_date
global shelf_new
global repeats
global moves_return
shelf_new = [ ]
moves_return = [ ]
exp_date = sort_date.calcDate( dates, date_cur )
shelf_back = exp_date[ : ]
try:
expired = exp_date.count( -1 )
for i in range( expired ):
shelf_back.pop( shelf_back.index( -1 ) )
shelf_new = sorted( shelf_back )
for i in range( expired ):
shelf_new.append( -1 )
except ValueError:
print('')
exp_date.append( None )
shelf_new.append( None )
repeats = 0
print "\n\n\n//////////////////////////////////////////////////////////////////////////////"
print(" {} ".format( exp_date ))
print(" {} ".format( shelf_new ))
print "/////////////////////////////////////////////////////////////////////////////\n\n\n"
while True:
if (repeats < len( exp_date )):
for i in range( len( exp_date ) ):
if (exp_date[ len( exp_date ) - 1 ] == None):
if (exp_date[ i ] == shelf_new[ i ]):
continue
else:
exp_date[ len( exp_date ) - 1 ] = exp_date[ i ]
print '\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
print ' TEMP IS EMPTY, MOVING {0} FROM LOCATION {1} TO THE TEMP'.format( exp_date[ i ],
i + 1 )
print '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n'
print "============================================================================"
exp_date[ i ] = None
moves_return.append( str( i + 1 ) )
moves_return.append( str( len( exp_date ) ) )
else:
break
place()
try:
print('***********************************************************************************')
print(' The last {} items have expired, throwing them away.'.format(
len( exp_date ) - shelf_new.index( -1 ) - 1 ))
print('***********************************************************************************')
if (len( shelf_new ) != 3):
for i in range( len( shelf_new ) - 1, len( shelf_new ) - shelf_new.index( -1 ), -1 ):
print "aaa"
moves_return.append( str( i ) )
moves_return.append( "0" )
else:
for i in range( len( shelf_new ), len( shelf_new ) - shelf_new.index( -1 ), -1 ):
print "aaa"
moves_return.append( str( i - 1 ) )
moves_return.append( "0" )
except ValueError:
print(" No items have expired")
print('***********************************************************************************')
faster()
return moves_return
print generate( [ "11.07.2019", "12.09.2019" ], "10.08.2019" )
seperate()
print(pickup)
print replace