Post by chriscrawford on Oct 18, 2016 10:42:12 GMT -8
Here is the script for calculating the Quantifier to use in revealing another character's auragon count:
It's a short script, but it's rather difficult to understand. The first thing we do is choose between two strategies. Who's the greater threat to me? If it's Chosen4Actor, then I want to present a truthful answer (the first Suitability term). But if I think that DirObject is the greater threat, then I want to lie to DirObject by making him think that Chosen4Actor has fewer auragons than he actually has (using the Blend term to scale down the true value of the auragon count.)
I think that this overdoes the action. The threat value is coming out very high. Perhaps I need to adjust that calculation. Threat is a BSum3 of three positive values, which tends to make it especially large. Shouldn't I scale it down to something with a normal BNumber range? How can I accomplish that? Here's the Script for calculating Threat:
I think that, in order to normalize this value to a proper BNumber range, I need to make each of the three terms a proper BNumber.
The P___Auragon and ___Auragon values are all UNumbers: BNumbers that are always greater than zero. I have an operator UNumber2BNumber; applying that to each of the individual values would convert them to proper BNumbers. But then converting them to regular Numbers would lead to negative numbers, which when multiplied together could yield contradictory results. Here's an example of what I mean:
Suppose that I have 3R, 2G, and 1B, while Koopie has 2R, 2G, and 2B. The current calculation would yield these three terms: 4, 2, 6, which would add together to obtain a net Number threat of 12, which converts to a high BNumber value. If I used UNumber2BNumber on them first, then the calculation would yield a threat of zero for any pair in which my auragon count is 1. That's because Number2BNumber stores it as a 0.5, while UNumber2BNumber converts 0.5 to 0.0, which when multiplied by any other number yields zero.
Nope, this isn't working.
Is this stuff simply too difficult? Is the entire Storytronics technology too difficult for anybody to master? Is it usable? Should I throw it away and start all over? I can't bear that thought.
Desirable
PickUpperIf
TopGreaterThanBottom(BNumber)
Threat
ReactingActor
Chosen4Actor
Threat
ReactingActor
ThisDirObject
Suitability
CandidateQuantifier
PRedAuragon
ThisDirObject
Chosen4Actor
Suitability
CandidateQuantifier
Blend
PRedAuragon
ThisDirObject
Chosen4Actor
0.0
Threat
ReactingActor
Chosen4Actor
It's a short script, but it's rather difficult to understand. The first thing we do is choose between two strategies. Who's the greater threat to me? If it's Chosen4Actor, then I want to present a truthful answer (the first Suitability term). But if I think that DirObject is the greater threat, then I want to lie to DirObject by making him think that Chosen4Actor has fewer auragons than he actually has (using the Blend term to scale down the true value of the auragon count.)
I think that this overdoes the action. The threat value is coming out very high. Perhaps I need to adjust that calculation. Threat is a BSum3 of three positive values, which tends to make it especially large. Shouldn't I scale it down to something with a normal BNumber range? How can I accomplish that? Here's the Script for calculating Threat:
Returned value
BSum3
Number2BNumber
product
BNumber2Number
PRedAuragon
ToWhom
ByWhom
BNumber2Number
GreenAuragon
ToWhom
Number2BNumber
product
BNumber2Number
PGreenAuragon
ToWhom
ByWhom
BNumber2Number
BlueAuragon
ToWhom
Number2BNumber
product
BNumber2Number
PBlueAuragon
ToWhom
ByWhom
BNumber2Number
RedAuragon
ToWhom
I think that, in order to normalize this value to a proper BNumber range, I need to make each of the three terms a proper BNumber.
The P___Auragon and ___Auragon values are all UNumbers: BNumbers that are always greater than zero. I have an operator UNumber2BNumber; applying that to each of the individual values would convert them to proper BNumbers. But then converting them to regular Numbers would lead to negative numbers, which when multiplied together could yield contradictory results. Here's an example of what I mean:
Suppose that I have 3R, 2G, and 1B, while Koopie has 2R, 2G, and 2B. The current calculation would yield these three terms: 4, 2, 6, which would add together to obtain a net Number threat of 12, which converts to a high BNumber value. If I used UNumber2BNumber on them first, then the calculation would yield a threat of zero for any pair in which my auragon count is 1. That's because Number2BNumber stores it as a 0.5, while UNumber2BNumber converts 0.5 to 0.0, which when multiplied by any other number yields zero.
Nope, this isn't working.
Is this stuff simply too difficult? Is the entire Storytronics technology too difficult for anybody to master? Is it usable? Should I throw it away and start all over? I can't bear that thought.