ScurtleScurtle

Scurtle is a system for working with Turtle Graphics. Turtle graphics are 2-dimensional line graphics drawn in a relative manner.

Imagine you have a turtle on a canvas, with a paintbrush on his tail. If his tail is up, he is simply moving, and the canvas remains blank. If, however, the turtle has his tail down, he is drawing, and a line is created underneath him as he moves.

The turtle can turn left or right, changing which direction he is facing. When he next moves again, it will be in this new direction. Unlike Cartesian Geometry, where each point is represented by a set of coordinates, lines in turtle geometry are represented by a combination of an angle and a distance, and depend on previous moves.

homepage | documentation | download
PHP Java PropertiesPHP Java Properties

PHP library to load Java .properties files

homepage | documentation | download
SPOJ Problem StatisticsSPOJ Problem Statistics

Currently, the Sphere Online Judge shows only two statistics for each problem--the number of users who have solved it, and the percentage of submissions that are accepted.

This site takes a little bit of a different approach. Instead of looking at each submission individually, the submissions are grouped into author/language pairs, and only the final result for each is taken into consideration. So, for example, if Joe gets two wrong answers followed by a time limit exceeded in Python, followed by a wrong answer and then an accepted in C++, it is counted as one TLE (time limited exceeded) for Python and one AC (accepted) for C/C++. As this shows, some languages are grouped, for example C and C++, because they share similar performance characteristics.

A difficulty rating for each problem is calculated as the percentage of users that ultimately succeed (rather than the percentage of submissions that are accepted). Additionally, a speed difficulty is calculated as the percentage of users that are stumped by a TLE. This can be an important clue as to whether it is ok to solve the problem in a high-level language such as Python/Ruby, or whether a lower-level approach is needed.

homepage | documentation | download

matt( at )innerweaver.com