1 / 20

Virtual Moneyball

Create a program for simulating fictional MLB teams over seasons, tracking player statistics. Explore economics of sports, salaries, and game strategies. Utilizes C# and Microsoft Access database for player data.

tbeatrice
Download Presentation

Virtual Moneyball

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Virtual Moneyball A Baseball League Simulator By Ryan Kroening http://compsci.snc.edu/cs460/kroera

  2. Project Definition • In Brief: • Create a program to allow the creation of fictional MLB teams and simulate their performance over a number of seasons. • Track any and all appropriate player and/or team statistics for research purposes • Why Do We Care: The Economics of Sports • The Salaries of Sports Stars • Worker Exploitation • The Problem of Data

  3. Detailed Project Requirements • Three Key Components to the Program • Drafting • Different Draft Philosophies • Steinbrenner or Beane? • Statistics • What Wins Games? • Batting or Pitching? • Simulation • Deterministic • …yet Random • Other Requirements • Manage Multiple Teams/Leagues • Between Season Alterations • Reporting

  4. Baseball Solved in Two Parts • Microsoft Access Database • Models the Desired League Structure • Stores User Data • Keeps Statistics • C# • User Interface • Simulation Component • Reporting (Crystal Reports)

  5. Solid Management – Database Solution • Function #1 – Store Player Statistics

  6. Solid Management – Database Solution • Function #2 – Model a Baseball League Commissioner Schedule League Results Teams Draft Philosophy Pitchers Batters

  7. Solid Management – Database Solution • Other Components • Available vs. Taken Players • Keeping Historical Data – Season ID Variable Teams Selected Pitchers Selected Batters Master Player Table Master Player Table

  8. Sharp On-Field Talent – C# Solution • Program Flow Models DB Model

  9. Sharp On-Field Talent – C# Solution • Simulation Component – What Wins Games?

  10. Sharp On-Field Talent – C# Solution • Simulation Component – Money, Talent, and Luck

  11. Sharp On-Field Talent – C# Solution • Reporting

  12. Making Cuts – Database Exceptions • Microsoft Access – A Bit Pudgy • How Granular to Make the Data? • What Does User Have Control Over? Pitchers Batters Stats Stats What Stats Matter? Commissioner League (all) Teams (one)

  13. Making Cuts – Interface Exceptions • “To-The-Point” Interface • Fixed Player List • Multiple Draft Philosophies • Reporting Options • Data Dump vs. Full Calculation • More, More, More

  14. Methodology • Solid Database Model • Rapid Prototyping • Get Something Working! • Dual-Program Design • Interface • Functional • “One Piece a Day” • Pick a Function/Task • Get Something Working! • Debug • Save It • Put Pieces Together Later

  15. Demonstration • Will almost certainly outperform the Brewers…

  16. Strategies for Learning • New Skills Acquired • C# • Visual Studio 2008 Development • Building a DB from Scratch • Learning/Developing at the Same Time • Trial and Error (Get Something Working!) • On-the-Job Training • The Internet • Google “C# AND …” • MSDN

  17. From the Classroom to the Diamond • Database Theory/Modeling • Good Model Easier Coding • Program Flow Comes Naturally from Model • OOP Principles • Break Program Apart Into Chunks • Functions and Classes/Objects • Programming Language Theory • Need to Learn, and Learn Fast • Understood General C# First, Specifics Later

  18. Expansion Teams/Program Extensions • Migrate from Microsoft Access to SQL Server • Performance Boost • LINQ vs. DataSet • Player Level Statistics • Randomize Individual Game Performance • Change Player Stats Throughout Season • Dynamic AI • Automatically Add/Drop Players During Season • Trade Between Teams • More Detailed Reports

  19. Advice From An Old Pro • Get Something Working! • Obey Your Timeline • Be Honest With Yourself • “One Piece a Day” • Use Your Resources • CS Faculty • Coworkers, Friends, Past Seniors, etc. • Exercise! (trust me)

  20. Thanks/Q&A • Thanks to the Following People for Helping Me Out: • The Entire SNC Computer Science Faculty • Dr. Kevin Quinn • The IT Department at Enzymatic Therapy • Questions and Comments from the Audience?

More Related