Fixed a bug that didn't allow you to negate variables used multiple times
This commit is contained in:
parent
2d83e2c862
commit
96f27e2b01
|
@ -47,10 +47,14 @@ def getTable(variables, function):
|
|||
if index == len(tempFunction):
|
||||
break
|
||||
if var in "01" and tempFunction[index - 1] == '~':
|
||||
tempFunction = tempFunction.replace('~' + var, str(1 - int(var)))
|
||||
if var in variables:
|
||||
tempFunction = tempFunction.replace(tempFunction[index], binary[variables.index(var)]) if tempFunction[index - 1] != '~' else tempFunction.replace(f"~{tempFunction[index]}", str(int(not int(binary[variables.index(tempFunction[index])])))+" ")
|
||||
index += 1
|
||||
tempFunction = tempFunction.replace('~' + var, str(1 - int(var) + " "))
|
||||
try:
|
||||
if var in variables:
|
||||
tempFunction = tempFunction[:index] + binary[variables.index(var)] + tempFunction[index+1:] if tempFunction[index - 1] != '~' else tempFunction[:index-1] + str(int(not bool(int(binary[variables.index(tempFunction[index])]))))+" " + tempFunction[index+1:]
|
||||
index += 1
|
||||
except ValueError:
|
||||
index += 1
|
||||
continue
|
||||
try:
|
||||
truthTable[binary] = eval(tempFunction)
|
||||
except:
|
||||
|
@ -58,6 +62,8 @@ def getTable(variables, function):
|
|||
return
|
||||
if truthTable[binary] > 1:
|
||||
truthTable[binary] = 1
|
||||
if truthTable[binary] < 0:
|
||||
truthTable[binary] = 0
|
||||
|
||||
return truthTable
|
||||
|
||||
|
|
Loading…
Reference in New Issue