Smalltalk Binary Storage File SmallRoller May 29, 2005 8:29:26 pmSn9 dSmallRoller.pst(XXXXXXXXXXXXXXXspace90030224 Core.Object@ Core.Symbol@Kernel.CompiledMethodPbytesmclass sourceCodeCore.ByteArray Core.String@Kernel.ClassOrganizer@ globalComment categoryArray categoryStops elementArray Core.ArrayPUI.ApplicationModel@ dependentsbuilder uiSession eventHandlersKernel.CompiledBlockPbytes outerMethodKernel.BlockClosure@method outerContext copiedValues Core.FloatKernel.AnnotatedMethodPbytesmclass sourceCode attributes Core.Message@selectorargsKernel.LiteralBindingReference@pathmethodCore.IdentityDictionaryPtally valueArrayCore.OrderedCollectionP firstIndex lastIndexCore Smalltalk initialize:sides:Randomsides isIntegerrollroll:OrderedCollectioninitialize-release accessingactionnewnew:instance creation initializeDiceRandomizer Dictionaryatleastadd apply2totaltotal targetUnder targetTotalpercent diceStringupdateBellCurveprobabilityString chartScale:changingenableIndividualDieTarget wrapperAt:setApplyToEach apply2eachactions resetRollerclearMultipleDiceDiceSidesSpinButton widgetAt:valueupdate:rollDicediceStringMultipletrialskeysDo: rollString:aspectsCountSuccessesCurveDescription DiceTargetDie DieRollResult IndDieEnabled IndDieTargetModApplyModFuncModifier NumberofDice ProbabilityProbabilityDisplayFormat RollDisplayTarget TargetApply dialog boxes showAboutBoxDialogshowProbabilityChart curveLabeldistributionCollection SimpleDialogprobabilityChartDialoginterfaceSpecFor:source: collection ChartViewSpecdetect:yAxis chartScalemaxstep: openFrom:displayclearProbabilityrefreshResultFieldshowProbabilityprobabilityStringIndividualupdateProbabilityLabelProbabilityLabel1probabilityLabelString labelString:diceStringIndividualProbabilityLabel2 calculationgetBinomialDistributiongetBellDistributionatLeast targetOverquo:ArrayscaleDataPoints:max:getNumberOfDicegetBellDistribution:getBinomialDistribution:getBinomialProbabilitygetBinomialProbability:getProbability: Statistic0binomialDistributionCumulative:trials:successes:&binomialDistribution:trials:successes:getProbabilitymultiply BellCurvevaluescreateExactProbabilityArray: createAscendingProbabilityArray:ascendingProbabilityArray!createDescendingProbabilityArray:descendingProbabilityArrayexactProbabilityArray truncatedListupdateBellCurve:with:new:max: validation isDigitKey:keyValue CharacterisDigitdel backspaceisDigitOrMinusKey:ModifierSpinButton controllerAt: editValue TranscriptpostBuildWith:DiceCountSpinButton keyboardHook:SetTargetSpinButtonIndDieTargetSpin AtLeastRB ExactlyRBchangedwidget:when:send:to: TargetOver TargetUnder TargetEqualsModTotalModAddModMultModEach RollTotalRB RollEachDieRB PercentageRB FractionRBturnedOndisableenablevalidatePlusMinusIntField:validatePosIntField:printing targetEquals diceModStringdiceTypeStringformattedProbabilityString:NumberPrintPolicy print:using: asRational inject:into: ChartData chartData:interface specs resource:canvasUIFullSpecwindow: WindowSpeclabel:min:CorePointmax:bounds:Graphics Rectanglecolors:LookPreferencessetForegroundColor: ColorValueblacksetBackgroundColor: component:SpecCollection collection:TextEditorSpeclayout:name:CurveLabelTextflags:model:tabable: alignment:center isReadOnly:tabRequiresControl: LayoutFrameProbabilityGraph chartType:BG_LineChartView dataSeries: ChartDataSpecseries:ChartDataSetSpecaspect:2isData:look:ChartElementLookSpecforegroundColor:backgroundColor:white1options:LineChartOptionsSpec showMarker: showLine: dataLocation:nonespline:xAxis:ChartingAxisSpecscale:ChartingScaleSpec restrictions:autozerodivlogtitle: tickPosition:hideTicksectionMarkAt: divisionMarksyAxis:ChartingValueAxisSpeczero: autoScale:invert: labelFormat:legendPosition:ActionButtonSpec ProbOKButtoncancel defaultable: windowSpec properties:PropertyListDictionarysizeType specifiedSize positionTypepositionSystemDefaultopenTypeadvancedmenu:menuBarsetSelectionForegroundColor:setSelectionBackgroundColor:CompositeSpecCollection LabelSpecDLabelstyle:Arbor-20SpinButtonSpeccallbacksSpec:UIEventCallbackSubSpecrequestFocusOutSelector:requestValueChangeSelector: helpText:type:number formatString:low: Die sidescompositeSpec: CompositeSpec DiceGroupRadioButtonSpecArbor-10select:ModFuncRBGroup ModRBGroupInputFieldSpecResultDisplayFieldlargestring DisplayTotalDisplaySeparately separatelyDisplayRBGrouplabelFromApplication RollButton ClearButtonRollButtonsGroupArbor-12 TargetRBGroupTargetCountRBGroupexactly timesLabelIndividualTargetGroupTargetWidgetsGroupProbabilitiesFieldProbabilityFormatLabelfractionProbabilityDisplayGroup resourcesmenuMenuMenuItem rawLabel:submenu:value:showMultiDiceSelectorshortcutKeyCharacter:shortcutModifiers:limitlimit:toptop:initialize:limit: openroll: new:openAt:new:openAt:limit:As yet unclassified saveSourceparcel hideSourceloadOrderedClassesname(number of sides must be an integer > 0 ()(number of rolls must be an integer > 0: Rolled : : KSmallRoller version 1.3\May 29, 2005\by David Edelstein\www.fnordistan.com\ at least exactly timetimes  with on Please enter only digits (0-9)Number: Only one '-' sign, pleasePlease enter only digits (0-9)Please enter a numberValue must be greater than 0Binomial distribution:  or less or higher exactly"cumulative probability of rolling  a minimum number of timesprobability of rolling  an exact number of times on Uniform distribution for Bell curve distribution for LinearNormaloverunder distribution for rolling  a value on ddicedie  () 0.00%Probability of rolling  or less  or more exactly +(,) = [](,) = [] SmallRoller is a GUI for displaying dice probabilities. You can set any number of dice with any number of sides (including "1-sided" dice, though those will not produce very interesting probabilities...), with or without modifications to the total. While SmallRoller will generate random rolls with your dice settings, it is primarily a probability calculator. You can determine the probability of rolling over, under, or exactly a certain number with the current dice settings, or you can evaluate the probability of rolling over, under, or exactly a certain number a given number of times on each die (i.e., a binomial probability). Instance Variables: CountSuccesses holds the number of successes desired for a binomial probability calculation CurveDescription a string describing the curve to be displayed in the probability chart DiceBellCurve a BellCurve object used to generate probability tables DiceTarget Holds a value indicating whether we are trying to roll over, under, or equal to the Target Die holds a DiceRandomizer object, used to generate random rolls DieRollResult Holds an Array of results of a die roll IndDieEnabled Holds a boolean; true if we are seeking a binomial probability, otherwise we are seeking a normal distribution IndDieTarget Holds a value indicating whether a desired binomial probability is cumulative (we want at LEAST that many successes) or not (we want EXACTLY that many successes) IndividualDieWidgets <(Collection of: Object)> array of widgets relating to binomial probability settings, which all get enabled/disabled together ModApply Holds a value indicating whether a modifier gets applied to the total or to each die ModFunc Holds a value indicating whether the modifier is additive or multiplicative Modifier Holds the modifier value being applied to the dice NumberofDice Holds the number of dice being rolled Probability Holds the current probability value ProbabilityDisplayFormat Holds a method that formats a probability into our desired display string RollDisplay Holds the display string Target Holds the number being compared against (i.e., what you want to roll under, over, or exactly) TargetApply Holds a value indicating whether we are seeking a normal or binomial distribution Probability ChartprobabilityDatarangeValuesOK SmallRollerDNumber of Dice0Number of sides0AddMultiply0Apply to totalApply to each die Display TotalDisplay SeparatelyRoll!Clear<=>===0 Roll totalRoll on each dieAt LeastExactly0timesDisplay probability as PercentageFractionProbability of rollingon 1D6DisplayProbability ChartOptionsMultiple Dice TypesHelpAboutHCannot set open-endedness starting at 1: rerolls will repeat infinitely!Rolled  SmallRoller SmallRoller D f5Y`pIkHX D7 -f` >J;e1FMpIkH5MJNg DfN D7 -fe DeDerJK\4K]IK IK JKJKK5KKHKHKK K!K"K_#K $K %KD K^D E K D -Ee# D f D fDf` 4 e 4 e+f IfJfff7fDEE"'$EeFLMDM7DWD&MD$MD&MEe6M4N@qe 4ߺEeBDKDK6LD$MQDWjv#NyOD =Ef{ =Ve f IfIfHEeDfDf` Df DfDEeVD!Df) !Nl"NO#MJ$M7%&D L(LD LDLD+!Eeǀ LRHSDMGSnDMJNKOJ I f& J !4K=;" # =% D*f?PJ  g?K hJjKff DLQe4ebDD!eDD!e+DMINDJ!O 7dN7eNeDD!e8 M   5r HOGP 5 QnvQ( #GOHP 5 QnyQHOHP QnzQ}I IRISl=JJRS;MJRS{M {GSI*   QnyQ #  QnvQ( JMJRSJI IJ II NNIkHJNNe2 NO=Q4RI I! fPlPe4aeNeJLnDLDqBEe4`9pM5erG5MG5sG 5tGo5!9"fbeapMD"s7N8h! j!W:e-J-;$fbeyG:MG:zG :{Go:!;(fbe D!MD!NDfDf:Ohii#i$j%f:h%i&j'E()D͎E()D͎f: Ph+iiiiiiiiiii&j'ED͎ED͎ED͎ED>͎ED>͎E( D͎E( D͎E#( D͎E D͎E D͎E D͎E D͎fD! fD" Ee8 e8 e4͂W͂e 4͂e;p7MJNJ+GJ-KNOPgq6fdOcpMaI5fdcCL 7M M  Mn!M" #$L%&L'D LLD NnDN +J L L$JOmO PmPLe7q7De#DMNJN7 D"DLe5Mot7Me0L   7L   7 L ! 7Le DLD!Me DLD!Me  NMQ IOI!OI"O#7PR$S%kHIRI I&Q7S:'J7 PK g(7P)*7+P=J7 PK  g7P 7Pe 8epIkH[ JD-fF[`p IkHkHZlZ` D E!EeDMrkHD#Me DL6h7 j!VDI$LeDPe D!Pe D!Fe D!e= #<=K*>>=DiceRandomizer @  superclass methodDictformat subclassesinstanceVariables organizationname classPool environment@sidesroller Fnordistan  SmallRoller @  superclass methodDictformat subclassesinstanceVariables organizationname classPool environmentsavedWindowInformation@ dependentsbuilder uiSession eventHandlers NumberofDiceDie DieRollResult RollDisplayModApplyModifier TargetApplyTarget DiceTarget Probability IndDieTarget IndDieEnabledMultiDiceEnabledModFunc TargetEnabledProbabilityDisplayFormatCountSuccessesIndividualDieWidgets DiceBellCurveCurveDescription ChartScale ChartDataNumberofDiceMulti DieSidesMulti MultipleDiceMultipleDiceString FnordistanDiceRandomizerOpen @  superclass methodDictformat subclassesinstanceVariables organizationname classPool environment@sidesrollertoplimit FnordistanTargetWidgetWrappersAs yet unclassifiedw_V%&Z  6                            $J    # s( , 0 S4 8 < @ D H L  P Xx|Xd\lp x P@|W_o $(,048<@DHLT\d8D\p`T l  X@ p $ 0 4$ @, t 3 (,t ?x sg 8<| H4 T< D P8L SxSxSx `H \L X hT lptx|  dx g h` lxh   ( @| LPwTX8 p t l|        l     $     <, $0\04 8 h lHxL PDx ?;X   X  X $ 0 4 t3x|@  `dhlpt\ g(,   [ 8< T   D gfgfgf8L P  ` \ ` `$ T ( 4 H h0 l  S h< ltx8@   G  hL lxP     h\ l {?o `d | h t hp lx0   hx lx0   c h l 7 h l`x4 ? `  h lx,   h lx,  c h l {7 h lx |  {G `  h lxD   h lxD  c h l {+ `  X h l x PD   h lx P  h l {kg `   0 8 X ` (   h lx   h lx  O h$ lx   h, l s_ h4 lxH ; `< P @ H hD lx$   hL lx$   c hT l  S `\  ` h p x hd ltx   hl ltx $  ht ltx( c h| l(  Gk h l, o; h l0 { h l4x<|  #o `  h l8    h lx@ $ W h lx@ (< _W h l@ { h l ,  h l 0 O\ H $ L  T4X P  T8\\ T<X   T@\` TDd!h#X   TH\TD lT||x#lptx|lT`hp   0PT X X X( X0 X8 XD XP X\ Xd Xl Xx X X X X X X X \ \ \ \ \ \ \ \ \, \8 \D \X \l \ \ \ ` `\`#c\|@e`[g``hhd`onh`phxlldzdXpdG|dXthxhW$(Ch7@eEhkh,peh[eh@e h@eh@eh@eh@eh@ehǽeh+@e h@eh@e heh@eh@e h@e h+hh[`dlptx` hhOhsh/h4@DHh[hgCDh e ͸h#h+.h0  $(,0hg8hud8hz<h~HPTXhH`dhPTXhdt<x@`DHhhPhhh  $(,048<@hSDdhHLPTXh\h`dhl hhhpLd h tx|ehh@@`ehCh@@`CDl@eE@ep p!hL@epk' p(hCFDp.|e@$p1xp(p6plh,p/>plP0t7Dt4tFt8tcJt|<tMt||  ( p4p @e   D D    @@e @@e@elR  @elx Cl @@eBAC?@!D"E6$F3G5H8I>JDKELFMGNHOIPJQKRLSMTNUOVPWQXRYSZU[W\g]h^i_k`Yasbrc|d}ef~gxh/ijklmnoXp.qorsmt0ujvBwxybz1{[$|$]`^_[}\~!"ab