CSc 180 -- Fall 2017
Intelligent Systems


Fall 2017 Tournament Results - "Hi Ya"



       **** RESULTS ****
16th ANNUAL AI STRATEGY GAME CONTEST
------------------------------------

The 16th Annual AI Strategy Game Contest took place October 24-26, 2017.
Several previous competitors were in attendance, as well as one former champion.

The game this year was "HiYA!", which is a sort of reduced version of chess,
with a "martial arts"-like theme in which players "attack" other pieces and
reduce their strength.  The game proved to be quite tactical and entertaining,
often leading to clever combinations and sudden victory.

This year there were 54 entrants spread across two sections.  Most programs
used minimax with alpha-beta pruning, and many also used iterative deepening.
A few used more advanced features such as history tables or killer move heuristic
to enhance the pruning and increase search depth.  Three programs used multi-
threading, and at least one used bitmapped move generation for extra speed.  One
used transposition tables to avoid repeating searches that had already been performed.
Over a third of the students claimed that they couldn't beat their own program.

A wide variety of different languages were used, including Java, C++, C, C#, Python,
and Rust.  There were many extremely strong programs this time, with at least 7 or 8
programs having a legitimate chance at the title.

As always, each match consisted of two games, so programs could lose individual
games along the way and still win by amassing more victories or by defeating other
highly-ranked programs.  The instructor also competed with his program, named "Panda".

In Section 1, the event became a close race between three programs: "Threshold" 
(Chris Pulido), "Icicle" (Vitalina Dub), and "Kami-Sama" (Chris Lowe).  In the end,
"Threshold" edged out the rest of the pack by just one game, finishing at 16-2.

In Section 2, the top three finishers were "Sockfish" (Chris Swenson), "Fat Buddha"
(Kevin Ludanov), and the instructor's program "Panda" (it was only entered in the
section #2 event).  In this case, "Sockfish" had a clear victory, finishing 17-1,
a full 4 points ahead of "Fat Buddha".

A playoff between "Sockfish" and "Threshold" was held the following week, with the
result being a 2-0 victory for "Sockfish".

"Sockfish" is based on the open-source chess engine Stockfish.  In Swenson's "Sockfish",
the core implementation elements such as move generation, search, heuristics, and
interface were written to be compatible with Stockfish's "Lazy SMP" algorithm, in which
multithreading is used to forward-fill transposition tables. Swenson's "Sockfish"
also utilizes a fairly sophisticated heuristic that includes material, mobility,
and bonus points for moving pieces closer to the opponent's king.  "Sockfish"'s lone
single-game loss was an early round suprise upset by the 7th place finishing program
"Kung Fury" (by Alex Best).

Several of the programs improved between day 1 and day 2.  In section 1, "Tokugawa"
(Graeme Knowles) corrected several bugs to rise from the middle of the field up to a
6th place finish.  Isaac Lozano's program "ZeroCostAbstraction" was unable to play
legally on day 1, but played cleanly and had several wins on day 2.  In section 2,
probably the most improved programs were "Colabot" (John Marshall) and "The Beast"
(Derek Bohnet), which on day 1 had no wins, but after numerous bug fixes each ran
off a series of victories.

But it was "JavaJuice" (Mathieu Cardinal) that had the most dramatic improvement,
starting on day 1 with a broken minimax algorithm, but by day 2 having minimax,
alpha-beta pruning, and killer move heuristic, and winning the coveted Golden Hamster
award for the most improved program.

Complete results are shown below, including results from prelims, rounds 2 and 3,
quarters, semis, finals, and all consolation rounds, for both course sections:

SECTION ONE

    PROGRAM         AUTHOR     FINAL 3 SEMI  2  QTR  1  PRE  TOTAL
------------------------------------------------------------------
1.  Threshold       (Pulido)  5-1(3-1)  5-1     4-0     4-0  16-2
2.  KamiSama        (Lowe)    4-2(3-1)  4-2     2-2     4-0  13-5
3.  Icicle          (Dub)     2-4(1-3)  5-1     4-0     6-0  16-4
4.  19th Place      (Gunter)  1-5(1-3)  4-2     4-0     3-1  12-6
5.  Mongolian       (Engle)         1-1 3-3     4-0     2-2  10-6
6.  Tokugawa        (Knowles)       3-1     3-1 1-3     2-2   9-7
7.  Sherlock        (Aldrich)       0-2 3-3     3-1     4-0  10-6
8.  Ninja Gaiden    (Rice)          3-1 0-6     4-0     3-1  10-8
9.  SpookyMurderer  (Cheong)        2-2 0-6     3-1     4-0   9-9
10. Shiori          (Hoang)         1-3     4-0 2-2     2-2   9-7
11. GitKraken       (Delwiche)              2-2 1-3     3-1   6-6
12. Bal-Bados       (Do)            4-0     1-3 1-1     2-2   8-6
13. JavaJuice       (Cardinal)      5-1     4-0     1-3 0-4  10-8 [GH]
14. Scruffles       (Ruiz)          3-1     2-0 3-1     2-2  10-4
15. Distasteful     (May)           2-2     4-0 3-1     2-2  11-5
16. Gas Snake       (VangT)         1-3     1-3 1-3     4-0   7-9
... Ayih            (Tran)          2-2     1-3 1-5     3-1   7-11
... Mr.Miyagi       (Donaldson)     1-1     2-2 0-4     2-2   5-9
19. Shogun          (Villegas)      0-4     4-0 2-2     2-2   8-8
20. MonkaS          (Kishiyama)     1-3     2-2 1-3           4-8
21. ZeroCostAbstrac (Lozano)        2-2     2-0 0-4           4-6
22. Wookie          (Nguyen)        0-2     0-4 0-4     2-2   2-12
23. Pushka          (Barakat)               0-4     4-0 0-4   4-8
24. Daimyo          (Anderson)      3-1     0-2     1-3 0-4   4-10
... Stan            (Shaw)          4-2     1-1     0-2 0-4   5-9
... Dexter          (Samoian)       4-0     1-1     4-0 0-4   9-5
27. SingedFiber     (Logan)         0-4     2-2     2-2 0-4   4-12
28. EverybodyWasKFF (Gritsyuk)      2-2     0-2     2-0 0-4   4-8
29. Bushido         (Thao)          0-4     0-4     0-4 0-4   0-16
30. Ninga           (Saeed)                     0-4           0-4
... Silver          (Balacy)                            0-2   0-2
DNC Pingu           (Wetzel)
DNC C3-P"Yo"        (Peck)
DNC DamagedNinja    (Louer)
DNC PettyBot        (VangC)


SECTION TWO

    PROGRAM         AUTHOR     FINAL 3 SEMI  2  QTR  1  PRE  TOTAL
------------------------------------------------------------------
1.  Sockfish        (Swenson) 6-0(4-0)  6-0     3-1     4-0  17-1
2.  Fat Buddha      (Ludanov) 3-3(1-3)  5-1     3-1     4-0  13-5
3.  Panda           (Gordon)  2-4(2-2)  4-2                   6-4
4.  Ray             (Alonzo)  1-5(1-3)  3-3     3-1     3-1  10-8
5.  Ronin           (Ezaki)         3-1 2-4     2-2     4-0  11-7
6.  70Apostrophes   (Lamphere)      2-2 3-3     2-2     2-0   9-7
7.  KungFury        (Best)          1-3     4-0 1-3     4-0  10-6
8.  AuGusto         (Lock)          3-1     2-2 0-4     4-0   9-7
9.  Muda            (Zech)          2-2 1-5     2-2     3-1   8-10
10. OmaeWaMouSindei (Thomas)        1-3 0-6     2-2     2-2   5-13
11. Trump2017       (Wong)          4-0     4-0 3-1     2-2  13-3
12. GarenV2.0       (Liang)         2-2     3-1     4-0 0-4   9-7
13. Sparkle Motion  (Hayes)         4-0     2-2 2-2     2-2  10-6
14. Colabot         (Marshall)      3-1     3-1 0-3     0-2   6-7
15. Alice           (Gimpel)        2-2     1-3 3-1     2-2   8-8
16. The Beast       (Bohnet)        3-3     2-2               5-5
17. Plue            (Madsen)                0-4 4-0     0-4   4-8
18. Tron2.0         (Malhotra)      0-4     2-2 0-4     0-4   2-14
19. MaboTofu        (Miao)          2-2     1-3     2-2 0-4   5-11
20. K8TO            (Asercion)      0-4     0-4         0-4   0-12
... Sanada Maru     (Cai)           0-2             0-4 0-4   0-10
22. Coyote          (Duran)                             0-1   0-1
23. treePly         (Pelar)
DNC oddCar          (Guierrez)
DNC MewMew          (Lanini)
DNC LGI BOT         (Diaz)
DNC Hello           (Manzanillo)
DNC Hazledwarf      (Bariana)


PLAYOFF

  "Sockfish" 2-0 "Threshold"


Many thanks to Dewayne Alexander, Chris Diaz, Oscar Gutierrez, Chris Lanini,
Chanel Manzanillo, Andrew Peklar, Tanveer Bariana, Jammy Loeur, and Cher Vang
for volunteering at the tournament.  Also thank you to last semester's
champion Theodore Dubois for proctoring the instructor's program on Day 2.

"HiYA" was a great game and is still far from being solved!