Stephen Crowe
Alex DiPaolo
December 3, 2014


Dota Helper tools is a small application that provides two helper aspects for the videogame Dota 2: a Counterpicking Tool, and a replay parsing tool.


Concepts Demonstrated

1/6 of the project grade is based on which concepts from OPL are demonstrated in your project. Please identify them here. Be brief; a simple list and one-sentence explanation for each concept should be adequate; e.g.:

  • Data abstraction is used to interface with the JSON data for the heroes, items, and all data related to steam.
  • Lambda Functions are used throughout the project.
  • Callback Functions are used with both the counterpicker and parser.
  • Object Orientation is used with the racket GUI library constantly, as well as with our hero objects.

External Technology and Libraries

JSON data is fetched from a URL, through use of the JSON functionalities. A lookup table of heroes is used and parsed. We used the racket GUI library for display purposes throughout the project.

Favorite Lines of Code

Each partner should identify a favorite line of code, Scheme expression, or entire procedure written by himself / herself in the entire project, and explain what it does. E.g.:

  • Stephen Crowe: (print-player r-1 first) You might be asking yourself, one simple call? That's your favorite? Yep. The sheer amount of things this line pulls together across the canvas make it my favorite. It's painting

the UI for the heroes, the players, the items, the stats, EVERYTHING. And it's neatly wrapped inside this single call.

  • Alex DiPaola:
    [callback (lambda (button event)
                                      (set! name-field1 (send hero-field1 get-value))
                                      (set! name-field2 (send hero-field2 get-value))
                                      (set! name-field3 (send hero-field3 get-value))
                                      (set! name-field4 (send hero-field4 get-value))
                                      (set! name-field5 (send hero-field5 get-value))

This code does a callback of search when a button is pressed after the 5 hero names are inputted to get the counters. It gets the name of the hero by grabbing the name from the name field of the hero object .

Technology Used Block Diagram

Create a simple block diagram of your software system that illustrates the major technical components and how they interact. Indicate which partner did which part of the work by putting an individual's initials inside the component(s) for which that person was primarily responsible. E.g.:

Additional Remarks

All code for the project will be made available on our public github by the date of the presentation, and can be found here:

The total write-up, including screen shot and block diagram, should be two to three pages in length (when printed).