Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.70 KB | None | 0 0
  1. import copy
  2. from canibal_state_model import State
  3.  
  4. class Transition(object):
  5.     def __init__(self,initialState,misionarNumber,canibalNumber):
  6.         self.initialState = None
  7.         self.misionarNumber = misionarNumber
  8.         self.canibalNumber = canibalNumber
  9.         self.initialState = copy.copy(initialState)
  10.         if self.initialState.boatPosition == 0:
  11.             self.resultState = State(self.initialState.boatCapacity,1-self.initialState.boatPosition,
  12.             self.initialState.misionarsLeft - misionarNumber, self.initialState.canibalsLeft - canibalNumber,
  13.             self.initialState.misionarsRight + misionarNumber, self.initialState.canibalsRight + canibalNumber)
  14.         else:
  15.             self.resultState = State(self.initialState.boatCapacity,1-self.initialState.boatPosition,
  16.             self.initialState.misionarsLeft + misionarNumber, self.initialState.canibalsLeft + canibalNumber,
  17.             self.initialState.misionarsRight - misionarNumber, self.initialState.canibalsRight - canibalNumber)
  18.        
  19.  
  20.     def isValidTransition(self):
  21.         if self.misionarNumber + self.canibalNumber > self.resultState.boatCapacity:
  22.             return False
  23.  
  24.         if self.resultState.misionarsLeft < 0 or self.resultState.misionarsRight < 0:
  25.             return False
  26.  
  27.         if self.resultState.canibalsLeft < 0 or self.resultState.canibalsRight < 0:
  28.             return False
  29.  
  30.         if self.resultState.misionarsLeft < self.resultState.canibalsLeft:
  31.             return False
  32.  
  33.         if self.resultState.misionarsRight < self.resultState.canibalsRight:
  34.             return False
  35.  
  36.         return True
  37.  
  38.     def getResultState(self):
  39.         return self.resultState
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement