Logic problem: need better logic for desired thruth table.

M Philbrook jamie_ka1lpa at charter.net
Fri May 29 19:07:40 EDT 2015


In article <3794b$55678d83$5419aafe$56138 at news.ziggo.nl>, skybuck2000
@hotmail.com says...
> 
> Hello,
> 
> I was just coding and ran into a little logic problem which is as follows:
> 
> There are two booleans/variables which can be either false or true.
> 
> The desired thrutle table is:
> 
> A = input
> B = input
> C = output
> 
> A B C:
> -------
> F F T
> F T F
> T F T
> T T T
> 
> Surpisingly enough I don't think there is a casual/common operator for this 
> thruth table.
> 
> AND does not apply.
> OR does not apply.
> XOR does not apply.
> 
> So I would need some combined operators to give the desired result.
> 
> I tried logic below... but funny enough it failed, now I feel like a noob 
> lol and share this funny little fail logic with you.
> 
> Can you improve/fix the logic ?
> 
> This is python code, but this^ logic/thruth table problem basically applies 
> to any programming language:
> 
> # loop has to run if:
> # while DesiredResult==True:
> # Desired truth table for BotWaitForCooldown and CooldownDetected
> # BotWaitForCooldown:  CooldownDetected: Desired Result:
> # False       False    True
> # False       True     False
> # True     False    True
> # True     True     True
> # desired/suiting logic:
> # (BotWaitForCooldown or ((not BotWaitForCooldown) and CooldownDetected))
> 
> def TestLogic( BotWaitForCooldown, CooldownDetected ):
> return BotWaitForCooldown or ((not BotWaitForCooldown) and CooldownDetected) 

 First maintain a bit table, something that your code can reference as 
Bools via bit operations..
 In your case it's more less simple..
 
 A combine of 3 bits gives you the value of 7 this this can be used as 
the OR operation
  
 AND operation.
   If value = 7 then.....

 OR Operation.

  If Value <> 0 then....

 Xor Operation, 
  If Value in [1,2,4] then....

 If you need to build the "Value" Product from dangling booleans.

 Value := (Value Shl 1) OR Byte(YourBool); 
 
 Since the compiler only uses the first bit for native booleans this 
works out.
 
 Do the above for all three bools to build a final value..

 Or you can simply mask off a bit as your boolean value from a VALUE
location, which makes it faster in the longrun...

Does that do anything for you ?

Jamie

 



More information about the Python-list mailing list