Table of Contents
How to Set Up for ICYPC Ladder Competition
- Create
~/icypc
(directory in your home directory) - Make world readable/executable (
chmod 755
) - Create executable shell scripts in
~/icypc
(see the next section for examples):~/icypc/hunter
~/icypc/planter
- etc
- Naming convention: Please do not use
-
or.
characters in your script names (just alphanumerics). - Be sure to make them executable (again,
chmod 755
will do it) - Register program(s) at ladder website: https://pc.cs.purdue.edu/icypc
- To help with some automation to locate competitors, please ensure that the only executable files in
~/icypc
are competitor scripts.
A quick way to ensure that your icypc directory and all files are world-readable and (where appropriate) world-executable:
% chmod -R o+rX ~/icypc
This command recursively (-R
) sets all permissions in your ~/icypc
directory and subdirectories to world (“o” for “other”) readable (“r”) and executable (“X”, which sets the execute bit only on directories and files that are already executable).
Note that this command makes everything in your icypc
directory readable, including source code if it is there.
You might find it useful to create subdirectories in ~/icypc
(or elsewhere) to contain your source code and a working copy of your binaries (e.g., .class files for Java). Then, when you've sufficiently debugged your competitor and want to take on other players on the ladder, copy your binaries to the ~/icypc
directory for execution by your competitor script.
Ladder Rules
- Any time a challenger beats a defender, the two competitors swap positions in the ladder.
- If a challenger scores 0 points in a match, that competitor is benched, making it unavailable for future matches until it has been readied again for competition (e.g., by resubmitting it by the original author).
Script Examples
hunter
#!/bin/sh cd /homes/YOUR-LOGIN-ID/icypc /p/java-1.6/bin/java java_example.Hunter
camper
#!/bin/sh cd /homes/YOUR-LOGIN-ID/icypc c++_example/camper
Viewing Instructions
You can view a replay of any ladder match. (Trace files are kept in /homes/cs390cp/traces
.)
- To view a match in 2D (
NNN
is the match number):
% /homes/cs390cp/bin/view2d NNN
- To view a match in 3D (
NNN
is the match number):
% /homes/cs390cp/bin/view3d NNN
- To view the stdout from the match:
% /homes/cs390cp/bin/viewso NNN
- To view the stderr from the match:
% /homes/cs390cp/bin/viewse NNN
To Play a "Friendly" Competition with One Another
- Use setup as above.
- Example (with assumed student/player names)…
% java -jar icypc.jar -player pipe 1 /homes/li400/icypc/hunter -player pipe 1 /homes/wzhang/icypc/planter
There is an example “battle” script in /homes/cs390cp/bin/battle
, which takes four arguments:
% /homes/cs390cp/bin/battle li400 hunter wzhang planter
Also, see the “hunter” and “camper” scripts in /homes/jtk/icypc for examples of running Java and C++ competitors. There is also a “twoer” script that uses a two hunter plus two planter strategy.