# Cats: The Jellicle Challenge

I just saw Cats in theaters because the reviews made it sound like an acid trip.

One of the reviews suggested a drinking game challenge: drink every time someone says jellicle....

I didn't give the challenge much thought until I witnessed the opening number... jellicle is repeated over and over ad nauseum. You couldn't drink fast enough to hit every utterance! So I'm left wondering, how much would you actually have to drink if you played the jellicle challenge drinking game?

## Jellicle cat says what?

The script for the film isn't available yet, but since it's based on a musical, the musical script should be a close approximation.... First, let's turn this pdf into a text file

```pdftotext -layout TYTCats-Libretto.pdf cats.txt
```

Jellicle appears 161 times (`grep -i -o jellicle cats.txt | wc -l`). According to Google, the play is 160 minutes long. So... let's assume there are 12 sips in a can of beer (this is super scientific, I just tested a can of Sprite). (161/12) That's 13 beers. Drinking 13 beers evenly distributed over the 160 hour play puts the average male viewer between ~0.20-0.30 BAC (depending on which BAC calculator you use). You would have (conveniently) blacked out by the end of the musical, assuming your body could even hold that much liquid.

Note: These stats include theater meta-text, such as "exit stage left", so take these numbers with a grain of salt

However, drinking games have rules. This isn't Nam. You don't get to queue up your drinks and spread them out over the whole musical. When someone says jellicle, you drink. So let's figure out the "rate of sips" to see how much damage the leading Jellicle Songs for Jellicle Cats would do on your brain and liver.

(For simplicity, I'm going to assume that the lyrics of the songs are sung evenly throughout the play, which might not be entirely fair. Sue me.)

### Landing on all fours

```<?php

// php jellicle-challenge.php cats.txt 160

\$words = array_filter(explode(' ', preg_replace("/[^A-Za-z0-9 ]/", '', preg_replace('/\s+/', ' ', strtolower(file_get_contents(\$argv[1]))))));
\$length_in_minutes = (int) \$argv[2];

\$wc = count(\$words);
\$agg_wc = array_count_values(\$words);

print "Word count: " . \$wc . "\n";
print "Total jellicle utterances: " . ((\$agg_wc['jellicle'] ?? 0) + (\$agg_wc['jellicles'] ?? 0)) . "\n";

\$wpm = floor(\$wc / \$length_in_minutes);

\$occurrences_by_minute = [];

for (\$i = 0; \$i < \$length_in_minutes; \$i++) {
\$offset = \$i * \$wpm;
\$subset_agg_wc = array_count_values(array_slice(\$words, \$offset, \$wpm));

\$occurrences_by_minute[] = (\$subset_agg_wc['jellicle'] ?? 0) + (\$subset_agg_wc['jellicles'] ?? 0);
}

print "Sips in the first 20 minutes: " . \$frontloaded_sips . "\n";
print "Beers in the first 20 minutes: " . (\$frontloaded_sips / 12) . "\n";

\$results = implode("\n", \$occurrences_by_minute);

file_put_contents('results.csv', "utterances\n");
file_put_contents('results.csv', \$results, FILE_APPEND);
```

Pop that into a line graph to see the requisite sips-per-minute.

At 12 sips per beer, you'd be slamming ~8 beers in the first 20 minutes.

### The Jellicle Choice

So... uh.... You know.... Don't do the jellicle challenge.

## Verdict

Coincidentally, the graph also represents the highs and lows of the film itself. The acid trip insanity was front-loaded in first half; the second half was pointless and boring.

The acting, singing, and dancing was all fine, it was the (faithful) source material and the CGI that were irreconcilable mistakes. I'd recommend just watching the first few scenes, maybe on youtube, in a few months if/when they're available.

If you're a film buff and really want you test your mettle against an acid trip of a film, I'd recommend Tokyo Gore Police. Be sure to bring a friend so you can discuss the experience together, in therapy.