Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Ball PowerPoint Presentation

Ball

150 Vues Download Presentation
Télécharger la présentation

Ball

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Ball • Basic Athletic Logic Language

  2. The Team • Cipta Herwana - Project Manager • Daniel Lasry - Language Guru • Nathan Miller - System Architect • Sam Lee - System Integrator • Jordan Schau - Tester and Validator

  3. What is Ball? • Ball is a language designed to facilitate the simulation of Baseball games for the layman. • Ball is an imperative and interpreted programming language. • Ball is built on the efficiencies and powerful toolset of Java.

  4. Baseball Fans Baseball Managers Little League Parents Sports Bettors Who can use Ball

  5. Objective • Create our own custom Simulation functions with ease.Streamline the process. • Omit obfuscating details: • Scoping • Strong Typing • Irrelevant Declarations

  6. simfunction simpleSim is: if(team1’s W> team2’s W)then: return team1; else: return team2; end end activate simpleSim; sim(Dodgers,Yankees,5); Custom Simulations • Create a simulation function. • Activate! • Call sim(team1, team2, times)

  7. stat bWalk =BB/PA; stat bSingle =(Hits-(2B+3B+HR)) / PA; stat bDouble =2B/PA; stat bTriple =3B/PA; stat bHR =HR/PA; team Dodgers = load("dodgers.team"); player Manny="Manny Ramirez"fromDodgers; printManny’s bHR; list 300hitters=Dodgerswhere(avg >.300); Streamlined Process • Straightforward loading and management of teams. • Simple stat declaration and manipulation. • Easy filtering, sorting and selecting from teams.

  8. print"play ball"; number anInteger =5; number aDecimal =2.34; list aList =[team1,team2, team3]; list aList =[3,4, 5]; function setProb() returns nothing:   probWalk = 2;   probSingle = 3;   probDouble = 4; end Ease of Programming • Scope: • Functions declared anywhere in the body can be called anywhere! • Users do not need to understand scopes. • Typing: • ‘number’ covers integers and decimals. • ‘list, ‘player’ and ‘team’ types. • Irrelevant Declarations: • No need to declare a main class and function. • Simple loops and conditionals

  9. TOOLS USED • Byacc/J • Google Code • Subversion • JFlex • Ubuntu • Eclipse

  10. Compiler Structure Syntax Tree Compiler Front-end Program Parser Expression Declaration Runtime Classes Print Jump Conditional Symbol Table Lexer Java Source J V M Source Program Java Compiler

  11. Example Program • simfunction simpleSim is: • if(team1’s W > team2’s W)then: • return team1; • else: • return team2; • end • end • activate simpleSim;//activates the simpleSim function • team Indians= load(“Indians.team”); • team Orioles= load(“Orioles.team”); • print"Winner: "+ sim(Indians,Orioles,1);

  12. Testing • Test Driven Development • White Box Testing • Regression Testing • Unit Testing • Accuracy Testing • Real Results vs Predicted Results

  13. Why BALL? Simple Lightweight Accurate Fun :) Conclusion

  14. Complex Simulation • /*Set the global probabilities of this inning*/ •     combineProb(batter, pitcher); • randomizeProbabilities(); •     team1Score += probWalk*(1/4)+ probSingle*(1/4)+ probDouble*(2/4)+ probTriple*(3/4)+ probHR; • end • /*NOW, team2 is batting and team1 is pitching! (5 times)*/ • do5 times: •     list bestBatters2 = top(9, team2 where(type is"batter"), AVG); •     player batter = any bestBatters2; •     list bestPitchers2 = bottom(4, team1 where(type is"pitcher"), ERA); •     player pitcher = any bestPitchers2; •     player batter = any team2 where(type is"batter"and AVG is top 5); •     player pitcher = any team1 where(type is"pitcher"and ERA is lowest 5); •     combineProb(batter, pitcher); •     randomizeProbabilities(); •     team2Score += probWalk*(1/4)+ probSingle*(1/4)+ probDouble*(2/4)+ probTriple*(3/4)+ probHR; • end • if(team1Score > team2Score)then: • print"Team "+ team1’s name +" wins against team "+ team2’s name +"!!"; • return team1; • else: • print"Team "+ team2’s name +" wins against team "+ team1’s name +"!!"; • return team2; • end • end • /*END BASIC SIMULATION FUNCTION*/ stat bWalk = BB / PA; stat bSingle =(Hits-(2B+3B+ HR))/ PA; stat bDouble =2B/ PA; stat bTriple =3B/ PA; stat bHR = HR / PA; /*Pitcher probabilities*/ stat pWalk = BB / BF; stat pSingle =(Hits/ BF)- pHR - pTriple - pDouble; stat pDouble =Hits x .174/ BF; stat pTriple =Hits x .024/ BF; stat pHR = HR / BF; /***END STATS DEFINITION***/ /*****************************************************/ /*Global variables that hold combined probabilities given a pitcher and a batter*/ number probWalk =0; number probSingle =0; number probDouble =0; number probTriple =0; number probHR =0; simfunction basicSimulation is:   number team1Score =0;   number team2Score =0; do5 times: /*Select random players from the best 5 of each team*/     list bestBatters = top(9, team1 where(type is"batter"), AVG);     player batter = any bestBatters;     list bestPitchers = bottom(4, team2 where(type is"pitcher"), ERA);     player pitcher = any bestPitchers;