imported hobo11 data... this is a fragment of vmware svn, whatever I had
[tues-crep.git] / sites / hobo11.nerdland.org / coursework / 20070 / dfontanesi / .svn / text-base / CountMethod.cs.svn-base
blobd1915acfdf00b2822d63c1035e9350ebadd4d920
1 using System;\r
2 using System.Collections;\r
3 \r
4 namespace BlackJack\r
5 {\r
6         /// <summary>\r
7         /// Summary description for CountMethod.\r
8         /// </summary>\r
9         public abstract class CountMethod\r
10         {\r
11                 protected CountMethod( int numberOfDecks )\r
12                 {\r
13                         Decks = numberOfDecks;\r
14                 }\r
16                 protected string name = "";\r
17                 protected int level = 0;\r
19                 protected int Decks;\r
20                 protected double runningTotal;\r
21                 protected int cardCount;\r
22                 protected int acesCount;\r
23                 protected int twosCount;\r
24                 protected int threesCount;\r
25                 protected int foursCount;\r
26                 protected int fivesCount;\r
27                 protected int sixesCount;\r
28                 protected int sevensCount;\r
29                 protected int eightsCount;\r
30                 protected int ninesCount;\r
31                 protected int tensCount;\r
33                 protected virtual double[] GetCounts() { return null; }\r
34                 protected int SideCount( Card.CardType cardType )\r
35                 {\r
36                         int count = 0;\r
38                         switch( cardType )\r
39                         {\r
40                                 case Card.CardType.Ace:\r
41                                         count = acesCount;\r
42                                         break;\r
43                                 case Card.CardType.Two:\r
44                                         count = twosCount;\r
45                                         break;\r
46                                 case Card.CardType.Three:\r
47                                         count = threesCount;\r
48                                         break;\r
49                                 case Card.CardType.Four:\r
50                                         count = foursCount;\r
51                                         break;\r
52                                 case Card.CardType.Five:\r
53                                         count = fivesCount;\r
54                                         break;\r
55                                 case Card.CardType.Six:\r
56                                         count = sixesCount;\r
57                                         break;\r
58                                 case Card.CardType.Seven:\r
59                                         count = sevensCount;\r
60                                         break;\r
61                                 case Card.CardType.Eight:\r
62                                         count = eightsCount;\r
63                                         break;\r
64                                 case Card.CardType.Nine:\r
65                                         count = ninesCount;\r
66                                         break;\r
67                                 case Card.CardType.Ten:\r
68                                         count = tensCount;\r
69                                         break;\r
70                         }\r
72                         return count;\r
73                 }\r
74                 public virtual double GetWager( double normalBet )\r
75                 {\r
76                         double wager = 0;\r
77                         double trueCount = Count;\r
79                         if( trueCount > 0 )\r
80                                 wager = normalBet * trueCount;\r
81                         else if( trueCount == 0 )\r
82                                 wager = normalBet;\r
83                         else if( trueCount < 0 )\r
84                                 wager = normalBet * trueCount;\r
86                         // $10 table minimum :)  Also, round to nearest integer\r
87                         wager = (int)Math.Max( 10, wager );\r
89                         return wager;\r
90                 }\r
92                 public virtual string MethodName{ get{ return "";}}\r
93                 public virtual int MethodLevel{ get{ return 0; }}\r
94                 public virtual void CountCard( Card card )\r
95                 {\r
96                         runningTotal += GetCounts()[ (int)card.TrueValue ];\r
97                         cardCount++;\r
99                         // Now keep side counts for all cards\r
100                         switch( card.FaceValue )\r
101                         {\r
102                                 case Card.CardType.Ace:\r
103                                         acesCount++;\r
104                                         break;\r
105                                 case Card.CardType.Two:\r
106                                         twosCount++;\r
107                                         break;\r
108                                 case Card.CardType.Three:\r
109                                         threesCount++;\r
110                                         break;\r
111                                 case Card.CardType.Four:\r
112                                         foursCount++;\r
113                                         break;\r
114                                 case Card.CardType.Five:\r
115                                         fivesCount++;\r
116                                         break;\r
117                                 case Card.CardType.Six:\r
118                                         sixesCount++;\r
119                                         break;\r
120                                 case Card.CardType.Seven:\r
121                                         sevensCount++;\r
122                                         break;\r
123                                 case Card.CardType.Eight:\r
124                                         eightsCount++;\r
125                                         break;\r
126                                 case Card.CardType.Nine:\r
127                                         ninesCount++;\r
128                                         break;\r
129                                 case Card.CardType.Ten:\r
130                                         tensCount++;\r
131                                         break;\r
132                                 case Card.CardType.Jack:\r
133                                         tensCount++;\r
134                                         break;\r
135                                 case Card.CardType.Queen:\r
136                                         tensCount++;\r
137                                         break;\r
138                                 case Card.CardType.King:\r
139                                         tensCount++;\r
140                                         break;\r
141                         }\r
142                 }\r
144                 public virtual void Reset( int decks )\r
145                 {\r
146                         cardCount = 0;\r
147                         runningTotal = 0;\r
148                         acesCount = 0;\r
149                         twosCount = 0;\r
150                         threesCount = 0;\r
151                         foursCount = 0;\r
152                         fivesCount = 0;\r
153                         sixesCount = 0;\r
154                         sevensCount = 0;\r
155                         eightsCount = 0;\r
156                         ninesCount = 0;\r
157                         tensCount = 0;\r
158                         Decks = decks;\r
159                 }\r
161                 public virtual double Count\r
162                 {\r
163                         get{ return runningTotal / (( Decks*52 - cardCount ) / 52 ); }\r
164                 }\r
166                 public static ArrayList GetMethods()\r
167                 {\r
168                         ArrayList methods = new ArrayList();\r
170                         methods.Add( "Hi-Lo" );\r
171                         methods.Add( "High-Low" );\r
172                         methods.Add( "Hi Opt I" );\r
173                         methods.Add( "Hi Opt II" );\r
174                         methods.Add( "Silver Fox" );\r
175                         methods.Add( "Brh I" );\r
176                         methods.Add( "Brh II" );\r
177                         methods.Add( "Canfield Expert" );\r
178                         methods.Add( "Canfield Master" );\r
179                         methods.Add( "KO" );\r
180                         methods.Add( "Omega II" );\r
181                         methods.Add( "Red Seven" );\r
182                         methods.Add( "Revere Adv. Plus Minus" );\r
183                         methods.Add( "Revere Point Count" );\r
184                         methods.Add( "Unb. Zen 11" );\r
185                         methods.Add( "Uston Adv. Plus Minus" );\r
186                         methods.Add( "Uston APC" );\r
187                         methods.Add( "Uston SS" );\r
188                         methods.Add( "Wong Halves" );\r
189                         methods.Add( "Zen Count" );\r
190                         methods.Add( "Hi-Lo Ace Side Count" );\r
191                         methods.Add( "HiOptI Ace-Seven Side Count" );\r
193                         return methods;\r
194                 }\r
195                 public static CountMethod NewMethod( string methodName, int n )\r
196                 {\r
197                         CountMethod returnValue = null;\r
199                         switch( methodName )\r
200                         {\r
201                                 case( "Hi-Lo" ):\r
202                                         returnValue = new HiLo( n );\r
203                                         break;\r
204                                 case( "High-Low" ):\r
205                                         returnValue = new HighLow( n );\r
206                                         break;\r
207                                 case( "Hi Opt I" ):\r
208                                         returnValue = new HiOptI( n );\r
209                                         break;\r
210                                 case( "Hi Opt II" ):\r
211                                         returnValue = new HiOptII( n );\r
212                                         break;\r
213                                 case( "Silver Fox" ):\r
214                                         returnValue = new SilverFox( n );\r
215                                         break;\r
216                                 case( "Brh I" ):\r
217                                         returnValue = new BrhI( n );\r
218                                         break;\r
219                                 case( "Brh II" ):\r
220                                         returnValue = new BrhII( n );\r
221                                         break;\r
222                                 case( "Canfield Expert" ):\r
223                                         returnValue = new CanfieldExpert( n );\r
224                                         break;\r
225                                 case( "Canfield Master" ):\r
226                                         returnValue = new CanfieldMaster( n );\r
227                                         break;\r
228                                 case( "KO" ):\r
229                                         returnValue = new KO( n );\r
230                                         break;\r
231                                 case( "Omega II" ):\r
232                                         returnValue = new OmegaII( n );\r
233                                         break;\r
234                                 case( "Red Seven" ):\r
235                                         returnValue = new RedSeven( n );\r
236                                         break;\r
237                                 case( "Revere Adv. Plus Minus" ):\r
238                                         returnValue = new RevereAdvPlusMinus( n );\r
239                                         break;\r
240                                 case( "Revere Point Count" ):\r
241                                         returnValue = new ReverePointCount( n );\r
242                                         break;\r
243                                 case( "Unb. Zen 11" ):\r
244                                         returnValue = new UnbZen11( n );\r
245                                         break;\r
246                                 case( "Uston Adv. Plus Minus" ):\r
247                                         returnValue = new UstonAdvPlusMinus( n );\r
248                                         break;\r
249                                 case( "Uston APC" ):\r
250                                         returnValue = new UstonApc( n );\r
251                                         break;\r
252                                 case( "Uston SS" ):\r
253                                         returnValue = new UstonSS( n );\r
254                                         break;\r
255                                 case( "Wong Halves" ):\r
256                                         returnValue = new WongHalves( n );\r
257                                         break;\r
258                                 case( "Zen Count" ):\r
259                                         returnValue = new ZenCount( n );\r
260                                         break;\r
261                                 case( "Hi-Lo Ace Side Count" ):\r
262                                         returnValue = new HiLoA( n );\r
263                                         break;\r
264                                 case( "HiOptI Ace-Seven Side Count" ):\r
265                                         returnValue = new HiOptIA7( n );\r
266                                         break;\r
267                                 default:\r
268                                         returnValue = null;\r
269                                         break;\r
270                         }\r
272                         return returnValue;\r
273                 }\r
274         }\r
276         public class HiLo : CountMethod\r
277         {\r
278                 public HiLo( int n ) : base( n )\r
279                 {\r
280                 }\r
282                 protected override double[] GetCounts() { return counts; }\r
283                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
284                 protected double[] counts = new double[] { 0, 0, 1, 1, 1, 1, 0, 0, 0,-1 };\r
285                 new private string name = "Hi-Lo";\r
286                 new private int level = 1;\r
287                 public override string MethodName{ get{ return name; }}\r
288                 public override int MethodLevel{ get{ return level; }}\r
289         }\r
291         public class HighLow : CountMethod\r
292         {\r
293                 public HighLow( int n ) : base( n )\r
294                 {\r
295                 }\r
297                 protected override double[] GetCounts() { return counts; }\r
298                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
299                 protected double[] counts = new double[] {-1, 1, 1, 1, 1, 1, 0, 0, 0,-1 };\r
300                 new private string name = "High-Low";\r
301                 new private int level = 1;\r
302                 public override string MethodName{ get{ return name; }}\r
303                 public override int MethodLevel{ get{ return level; }}\r
304         }\r
306         public class HiOptI : CountMethod\r
307         {\r
308                 public HiOptI( int n ) : base( n )\r
309                 {\r
310                 }\r
312                 protected override double[] GetCounts() { return counts; }\r
313                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
314                 protected double[] counts = new double[] { 0, 0, 1, 1, 1, 1, 0, 0, 0,-1 };\r
315                 new private string name = "HiOptI";\r
316                 new private int level = 1;\r
317                 public override string MethodName{ get{ return name; }}\r
318                 public override int MethodLevel{ get{ return level; }}\r
319         }\r
321         public class HiOptII : CountMethod\r
322         {\r
323                 public HiOptII( int n ) : base( n )\r
324                 {\r
325                 }\r
327                 protected override double[] GetCounts() { return counts; }\r
328                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
329                 protected double[] counts = new double[] { 0, 1, 1, 2, 2, 1, 1, 0, 0,-2 };\r
330                 new private string name = "HiOptII";\r
331                 new private int level = 2;\r
332                 public override string MethodName{ get{ return name; }}\r
333                 public override int MethodLevel{ get{ return level; }}\r
334         }\r
336         public class SilverFox : CountMethod\r
337         {\r
338                 public SilverFox( int n ) : base( n )\r
339                 {\r
340                 }\r
342                 protected override double[] GetCounts() { return counts; }\r
343                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
344                 protected double[] counts = new double[] {-1, 1, 1, 1, 1, 1, 1, 0,-1,-1 };\r
345                 new private string name = "Silver Fox";\r
346                 new private int level = 1;\r
347                 public override string MethodName{ get{ return name; }}\r
348                 public override int MethodLevel{ get{ return level; }}\r
349         }\r
350         \r
351         public class BrhI : CountMethod\r
352         {\r
353                 public BrhI( int n ) : base( n )\r
354                 {\r
355                 }\r
357                 protected override double[] GetCounts() { return counts; }\r
358                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
359                 protected double[] counts = new double[] {-2, 1, 2, 2, 3, 2, 1, 0, 0,-2 };\r
360                 new private string name = "BrhI";\r
361                 new private int level = 3;\r
362                 public override string MethodName{ get{ return name; }}\r
363                 public override int MethodLevel{ get{ return level; }}\r
364         }\r
365         \r
366         public class BrhII : CountMethod\r
367         {\r
368                 public BrhII( int n ) : base( n )\r
369                 {\r
370                 }\r
372                 protected override double[] GetCounts() { return counts; }\r
373                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
374                 protected double[] counts = new double[] {-2, 1, 1, 2, 2, 2, 1, 0, 0,-2 };\r
375                 new private string name = "BrhII";\r
376                 new private int level = 2;\r
377                 public override string MethodName{ get{ return name; }}\r
378                 public override int MethodLevel{ get{ return level; }}\r
379         }\r
381         public class CanfieldExpert : CountMethod\r
382         {\r
383                 public CanfieldExpert( int n ) : base( n )\r
384                 {\r
385                 }\r
387                 protected override double[] GetCounts() { return counts; }\r
388                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
389                 protected double[] counts = new double[] { 0, 0, 1, 1, 1, 1, 1, 0,-1,-1 };\r
390                 new private string name = "Canfield Expert";\r
391                 new private int level = 1;\r
392                 public override string MethodName{ get{ return name; }}\r
393                 public override int MethodLevel{ get{ return level; }}\r
394         }\r
395         \r
396         public class CanfieldMaster : CountMethod\r
397         {\r
398                 public CanfieldMaster( int n ) : base( n )\r
399                 {\r
400                 }\r
402                 protected override double[] GetCounts() { return counts; }\r
403                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
404                 protected double[] counts = new double[] { 0, 1, 1, 2, 2, 2, 1, 0,-1,-2 };\r
405                 new private string name = "Canfield Master";\r
406                 new private int level = 2;\r
407                 public override string MethodName{ get{ return name; }}\r
408                 public override int MethodLevel{ get{ return level; }}\r
409         }\r
410         \r
411         public class KO : CountMethod\r
412         {\r
413                 public KO( int n ) : base( n )\r
414                 {\r
415                 }\r
417                 protected override double[] GetCounts() { return counts; }\r
418                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
419                 protected double[] counts = new double[] {-1, 1, 1, 1, 1, 1, 1, 0, 0,-1 };\r
420                 new private string name = "KO";\r
421                 new private int level = 1;\r
422                 public override string MethodName{ get{ return name; }}\r
423                 public override int MethodLevel{ get{ return level; }}\r
424         }\r
425         \r
426         public class OmegaII : CountMethod\r
427         {\r
428                 public OmegaII( int n ) : base( n )\r
429                 {\r
430                 }\r
432                 protected override double[] GetCounts() { return counts; }\r
433                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
434                 protected double[] counts = new double[] { 0, 0, 1, 1, 1, 1, 1, 0,-1,-1 };\r
435                 new private string name = "Omega II";\r
436                 new private int level = 1;\r
437                 public override string MethodName{ get{ return name; }}\r
438                 public override int MethodLevel{ get{ return level; }}\r
439         }\r
440         \r
441         public class RedSeven : CountMethod\r
442         {\r
443                 public RedSeven( int n ) : base( n )\r
444                 {\r
445                 }\r
447                 protected override double[] GetCounts() { return counts; }\r
448                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
449                 protected double[] counts = new double[] {-1, 1, 1, 1, 1, 1,.5, 0, 0,-1 };\r
450                 new private string name = "Red Seven";\r
451                 new private int level = 1;\r
452                 public override string MethodName{ get{ return name; }}\r
453                 public override int MethodLevel{ get{ return level; }}\r
454         }       \r
456         public class RevereAdvPlusMinus : CountMethod\r
457         {\r
458                 public RevereAdvPlusMinus( int n ) : base( n )\r
459                 {\r
460                 }\r
462                 protected override double[] GetCounts() { return counts; }\r
463                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
464                 protected double[] counts = new double[] { 0, 1, 1, 1, 1, 1, 0, 0,-1,-1 };\r
465                 new private string name = "Revere Adv. Plus Minus";\r
466                 new private int level = 1;\r
467                 public override string MethodName{ get{ return name; }}\r
468                 public override int MethodLevel{ get{ return level; }}\r
469         }\r
471         public class ReverePointCount : CountMethod\r
472         {\r
473                 public ReverePointCount( int n ) : base( n )\r
474                 {\r
475                 }\r
477                 protected override double[] GetCounts() { return counts; }\r
478                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
479                 protected double[] counts = new double[] {-2, 1, 2, 2, 2, 2, 1, 0, 0,-2 };\r
480                 new private string name = "Revere Point Count";\r
481                 new private int level = 2;\r
482                 public override string MethodName{ get{ return name; }}\r
483                 public override int MethodLevel{ get{ return level; }}\r
484         }\r
486         public class UnbZen11 : CountMethod\r
487         {\r
488                 public UnbZen11( int n ) : base( n )\r
489                 {\r
490                 }\r
492                 protected override double[] GetCounts() { return counts; }\r
493                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
494                 protected double[] counts = new double[] {-1, 1, 2, 2, 2, 2, 1, 0, 0,-2 };\r
495                 new private string name = "Unb. Zen 11";\r
496                 new private int level = 2;\r
497                 public override string MethodName{ get{ return name; }}\r
498                 public override int MethodLevel{ get{ return level; }}\r
499         }\r
501         public class UstonAdvPlusMinus : CountMethod\r
502         {\r
503                 public UstonAdvPlusMinus( int n ) : base( n )\r
504                 {\r
505                 }\r
507                 protected override double[] GetCounts() { return counts; }\r
508                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
509                 protected double[] counts = new double[] {-1, 0, 1, 1, 1, 1, 1, 0, 0,-1 };\r
510                 new private string name = "Uston Adv. Plus Minus";\r
511                 new private int level = 1;\r
512                 public override string MethodName{ get{ return name; }}\r
513                 public override int MethodLevel{ get{ return level; }}\r
514         }\r
516         public class UstonApc : CountMethod\r
517         {\r
518                 public UstonApc( int n ) : base( n )\r
519                 {\r
520                 }\r
522                 protected override double[] GetCounts() { return counts; }\r
523                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
524                 protected double[] counts = new double[] { 0, 1, 2, 2, 3, 2, 2, 1,-1,-3 };\r
525                 new private string name = "Uston APC";\r
526                 new private int level = 3;\r
527                 public override string MethodName{ get{ return name; }}\r
528                 public override int MethodLevel{ get{ return level; }}\r
529         }\r
531         public class UstonSS : CountMethod\r
532         {\r
533                 public UstonSS( int n ) : base( n )\r
534                 {\r
535                 }\r
537                 protected override double[] GetCounts() { return counts; }\r
538                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
539                 protected double[] counts = new double[] {-2, 2, 2, 2, 3, 2, 1, 0,-1,-2 };\r
540                 new private string name = "Uston SS";\r
541                 new private int level = 2;\r
542                 public override string MethodName{ get{ return name; }}\r
543                 public override int MethodLevel{ get{ return level; }}\r
544         }\r
546         public class WongHalves : CountMethod\r
547         {\r
548                 public WongHalves( int n ) : base( n )\r
549                 {\r
550                 }\r
552                 protected override double[] GetCounts() { return counts; }\r
553                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
554                 protected double[] counts = new double[] {-1,.5, 1, 1,1.5,1,.5, 0,-.5,-1 };\r
555                 new private string name = "Wong Halves";\r
556                 new private int level = 1;\r
557                 public override string MethodName{ get{ return name; }}\r
558                 public override int MethodLevel{ get{ return level; }}\r
559         }\r
561         public class ZenCount : CountMethod\r
562         {\r
563                 public ZenCount( int n ) : base( n )\r
564                 {\r
565                 }\r
567                 protected override double[] GetCounts() { return counts; }\r
568                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
569                 protected double[] counts = new double[] {-1, 1, 1, 2, 2, 2, 1, 0, 0,-2 };\r
570                 new private string name = "Zen Count";\r
571                 new private int level = 2;\r
572                 public override string MethodName{ get{ return name; }}\r
573                 public override int MethodLevel{ get{ return level; }}\r
574         }\r
576         public class HiLoA : CountMethod\r
577         {\r
578                 // The standard HiLo method with an Ace side count\r
579                 public HiLoA( int n ) : base( n )\r
580                 {\r
581                 }\r
583                 protected override double[] GetCounts() { return counts; }\r
584                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
585                 protected double[] counts = new double[] { 0, 0, 1, 1, 1, 1, 0, 0, 0,-1 };\r
586                 public override double GetWager( double normalBet )\r
587                 {\r
588                         double wager = 0;\r
589                         double trueCount = Count;\r
590                         int aceCount = base.SideCount( Card.CardType.Ace );\r
592                         double aceRatio = ((cardCount / 13.0) - aceCount) / (( Decks*52 - cardCount ) / 52.0 );\r
593                         trueCount += aceRatio;\r
595                         if( trueCount > 0 )\r
596                                 wager = normalBet * trueCount;\r
597                         else if( trueCount == 0 )\r
598                                 wager = normalBet;\r
599                         else if( trueCount < 0 )\r
600                                 wager = normalBet * trueCount;\r
602                         // $10 table minimum :)  Also, round to nearest integer\r
603                         wager = (int)Math.Max( 10, wager );\r
605                         return wager;\r
606                 }\r
608                 new private string name = "Hi-Lo Ace Side Count";\r
609                 new private int level = 1;\r
610                 public override string MethodName{ get{ return name; }}\r
611                 public override int MethodLevel{ get{ return level; }}\r
612         }\r
614         public class HiOptIA7 : CountMethod\r
615         {\r
616                 public HiOptIA7( int n ) : base( n )\r
617                 {\r
618                 }\r
620                 protected override double[] GetCounts() { return counts; }\r
621                 // Card counts                             A  2  3  4  5  6  7  8  9  T\r
622                 protected double[] counts = new double[] { 0, 0, 1, 1, 1, 1, 0, 0, 0,-1 };\r
623                 public override double GetWager( double normalBet )\r
624                 {\r
625                         double wager = 0;\r
626                         double trueCount = Count;\r
627                         int aceCount = base.SideCount( Card.CardType.Ace );\r
628                         int sevenCount = base.SideCount( Card.CardType.Seven );\r
630                         double aceRatio = ((cardCount / 13.0) - aceCount) / (( Decks*52 - cardCount ) / 52.0 );\r
631                         double sevenRatio = ((cardCount / 13.0) - sevenCount) / (( Decks*52 - cardCount ) / 52.0 );\r
632                         trueCount += aceRatio;\r
633                         trueCount += sevenRatio;\r
635                         if( trueCount > 0 )\r
636                                 wager = normalBet * trueCount;\r
637                         else if( trueCount == 0 )\r
638                                 wager = normalBet;\r
639                         else if( trueCount < 0 )\r
640                                 wager = normalBet * trueCount;\r
642                         // $10 table minimum :)  Also, round to nearest integer\r
643                         wager = (int)Math.Max( 10, wager );\r
645                         return wager;\r
646                 }\r
648                 new private string name = "Hi Opt I Ace Seven side counts";\r
649                 new private int level = 1;\r
650                 public override string MethodName{ get{ return name; }}\r
651                 public override int MethodLevel{ get{ return level; }}\r
652         }\r