[HN Gopher] How good can you be at Codenames without knowing any...
___________________________________________________________________
How good can you be at Codenames without knowing any words?
Author : feltsense
Score : 91 points
Date : 2024-08-12 06:06 UTC (16 hours ago)
(HTM) web link (danluu.com)
(TXT) w3m dump (danluu.com)
| nemetroid wrote:
| On the topic of word game recommendations, I've been playing So
| Clover recently and highly recommend it. It's a cooperative game
| and has almost no downtime (all players write clues at the same
| time, then all players guess together, so the possible downtime
| is the difference between the fastest clue writer and the slowest
| clue writer).
|
| https://www.rprod.com/en/games/so-clover
| jsnell wrote:
| +1, but one thing about So Clover is that not really any game
| in it. It's more of an activity. A very engaging activity, and
| one that has worked with every group I've tried it on, gamers
| and non-gamers alike, and my current #1 choice if I was asked
| to bring some games to some non-gaming social event.
|
| What I mean by there not being a game to it is that there's no
| winning or losing, or even evaluating success. Everyone gives
| their best clues (by some metric; sometimes people optimize for
| fun rather than clarity), you solve the boards and get a score,
| but the score is totally meaningless. It can't even be compared
| across sessions.
|
| It turns out to be quite hard to add a game into it. I thought
| about the problem for a year before deciding that there was no
| viable way to do it within the constraints of the physical
| game, and it'd need to be online. For the last few weeks I've
| been working on an async online word-game inspired by So
| Clover, where one of the tihngs I wanted to do was to add an
| actual game (as a competitive mode), and so far the feedback
| from my playtesters has been that they're not interested in any
| of those plans, and just want to use it as a chill word game
| sandbox and share puzzle links over WhatsApp. (The site isn't
| ready for public consumption, but if anyone here wants to try
| the game out with some friends, hit me up with an email and
| I'll send you a link. Contact details in HN profile.)
| stavros wrote:
| I've emailed you, thanks!
| CamelCaseName wrote:
| This is really neat (and now I want to memorize a few
| combinations)
|
| But it's very similar to chess, where positional sense is crucial
| NeoTar wrote:
| I think the total number of code-names grids possible is
| something like 210 344 706 000, so the 40 cards (plus 4
| rotations, so 160 possible grids) are only a tiny, tiny fragment
| of those possible.
|
| But it does mean that defeating the bot would only mean creating
| a custom grid, which sounds very practical virtually, and
| possible (but harder) in person.
| satyrnein wrote:
| I did a quick search, and there are generators that I guess you
| bring up on your phone, like so:
|
| https://code-names.netlify.app
| pimanrules wrote:
| There's also an official app that has some nice features:
|
| - You can generate grids on multiple devices with a seed
|
| - If the phone displaying the grid falls over, it
| automatically hides the grid.
|
| I don't know if the grids in the app are truly random or if
| they follow some constraints though.
| mkaszkowiak wrote:
| I've also thought about creating a Codenames bot: what if we
| could use semantic similarity to batch words together? Surely,
| this can be done using a prebuilt embedding model and clustering!
|
| After some failed experiments - it performed worse than I thought
| it will - I've googled the subject, and... it turns out there's a
| whole paper about ML and codenames :)
|
| https://arxiv.org/abs/2105.05885 ( _Playing Codenames with
| Language Graphs and Word Embeddings_ ) - fun to read
| 0xDECEA5ED wrote:
| Very cool! A couple of months ago, after playing Codenames for
| the first time, I devised a strategy that any team of humans
| can learn, in order to win in 3 moves, guaranteed, every game.
| It only takes a few minutes to learn.
|
| Imagine you have a Codenames board and you're on the blue team.
| The key is that you can represent the board as a text of 1s and
| 0s, where 1 is blue and 0 is not blue:
|
| 0 1 0 0 1
|
| 0 0 0 0 1
|
| 1 1 0 0 0
|
| 1 0 0 0 1
|
| 0 0 1 0 0
|
| The next key is to realize that each sequence of 4 cards can be
| thought of as a 4-digit binary number, for example the first
| binary sequence above is "0100", or 4. The second binary
| sequence is "1000", or 8.
|
| The strategy is to simply communicate the numbers 4 and 8 to
| your team--so we can simply choose a word that starts with the
| 4th letter of the alphabet (d) and ends in the 8th letter of
| the alphabet (h). If we tell our team "ditch", they'll know
| exactly what the first 8 cards are.
|
| Repeat this for 3 turns, and your team has figured out 8 cards
| each turn, for a total of 24 cards out of 25 total. The final
| card can be inferred simply--on the third turn, if any card is
| unaccounted for, your team knows it must be in the 25th
| position.
|
| I just hope your teammates know how to count in binary.
|
| (N.B. the strategy can be optimized by eliminating less-common
| letters of the English alphabet, like J, where it may be
| difficult to think of words that end in that letter)
| TheDong wrote:
| This strategy is specifically banned by the rules:
| https://czechgames.com/files/rules/codenames-rules-en.pdf
|
| I quote:
|
| > Your clue must be about the meaning of the words. You can't
| use your clue to talk about the letters in a word or its
| position on the table.
|
| You're talking about cluing about the position, so it's
| against the rules.
|
| I guess the rules do also say:
|
| > But if no one notices that a clue is invalid, it counts as
| valid.
|
| which kinda maybe makes it legal, but it seems like it's
| quite against the spirit of the rules, and the "invalid" clue
| thing there is just stuff like "accidentally used a word
| that's a part of a compound word on the board", not
| maliciously trying to cheat the rules.
| abound wrote:
| I'd also attempted something like this years ago [1] based on
| word2vec, and it played decently! Occasionally it would throw
| out nonsensical clues or guesses, but was usable.
|
| I'm sure with more modern embeddings/tools one could make a
| really excellent not.
|
| [1] https://github.com/bcspragu/Codenames
| hangsi wrote:
| This is an interesting view of how random number based security
| is compromised for economic practicalities (though the meanings
| of "security" and "compromised" might be overstretched here).
|
| For completeness, I wondered how many cards would be required to
| give the complete set of patterns.
|
| If we number the positions in the 5x5 grid such that the top row
| has positions 1-5, the second row has 6-10 and so on, the grid
| positions can be converted to a sequence and we can use the
| permutation formula to find the number of arrangements. To
| account for rotations, we can divide the final value by 4 since
| every arrangement can be rotated and is therefore valid.
|
| Of the 25 cards, there are 7 white, 8 red, 8 blue, 1 black and 1
| double agent that can be red or blue, also deciding which team
| goes first. We can treat this final card as one of a kind, then
| double the formula output to account for cases where it is
| swapped to the other team.
|
| Permutations of a multiset has a standard formula [0] that
| calculates a result from these values (rolling in the double
| agent factor of 2 and rotation division factor of 4):
|
| 25! / (7!8!8!1!1! * 2) = 946,551,177,000
|
| (edit: as pointed out, this is 9 times too large as the double
| agent can indistinguishably replace each of the other 8 cards - a
| corrected value is 105,172,353,000)
|
| This is (edit: still) more layout cards than have ever been
| printed across all production runs of Codenames, and would
| probably not fit into the current box size.
|
| [0]
| https://en.wikipedia.org/wiki/Multinomial_theorem#Number_of_...
| Sniffnoy wrote:
| > To account for rotations, we can divide the final value by 4
| since every arrangement can be rotated and is therefore valid.
|
| Note that this is only approximately correct, since some
| layouts will have nontrivial symmetries. (Edit: Actually no
| they won't due to parity reasons! Oops. So that step is exact
| after all.)
|
| Edit: Actually, this isn't correct either, and in a more
| serious way:
|
| > Of the 25 cards, there are 7 white, 8 red, 8 blue, 1 black
| and 1 double agent that can be red or blue, also deciding which
| team goes first. We can treat this final card as one of a kind,
| then double the formula output to account for cases where it is
| swapped to the other team.
|
| On the layout cards, nothing distinguishes the double agent --
| the double agent is purely a matter of representation, it's not
| part of the actual layout. So doing things this way will give
| you a number that's too large by a factor of about 8 or 9.
|
| What you want to do here (ignoring rotations) is take
| 25!/(9!8!7!) to get the count with 9 red and 8 blue, then
| double it to include the count with 8 red and 9 blue, then
| divide by 4 to account for rotation (contrary to what I said
| earlier no need to account for symmetries because the numbers
| mean that none of the layouts can be rotationally symmetric),
| so you get a total of
|
| 25!/(9!8!7!2) = 105,172,353,000
|
| So yeah about 9 times smaller than what you wrote. For what
| it's worth, anyway. :P
| hangsi wrote:
| Yes, I agree completely - I realised something was off in an
| espirit de l'escalier way not long after I posted.
|
| This is great news for my proposed box redesign!
| vitus wrote:
| > Actually no they won't due to parity reasons!
|
| Can you elaborate? I think I can construct some boards that
| effectively have complete rotational symmetry.
|
| For the purposes of the game, black can be thought of as
| another white card (since you will never reveal it in the
| middle of a round), and the double agent can be placed in the
| center. Then, you just need to place the remaining categories
| with rotational symmetry (e.g. red on the two main diagonals,
| and blue on the squares directly clockwise from those). So,
| for instance: RBwwR wRBRB wBdBw
| BRBRw RwwBR
|
| (w)hite and (d)ouble-agent are in lowercase; feel free to
| replace any single white square with blAck (Assassin).
| stavros wrote:
| I'd like to note that giving clues that are not about the words
| themselves is against the rules (and clues about position are
| explicitly called out in the rules as illegal).
|
| The methods in the post are interesting, but technically against
| the rules of the game.
|
| EDIT: Though I didn't figure out whether he means "clues about
| the position" or "clues about the words, until you can open
| enough cards to narrow down to one memorized position".
| anonymoushn wrote:
| If you've memorized all the layouts, you don't need any kind of
| clue, so you don't need a kind of clue that's banned. You could
| for example clue "Sausage" every time and your team would play
| as well as the bot in the article. To play better than the bot,
| you might want to clue about words for 1 turn or so.
| hangsi wrote:
| Clues must be related to the semantic meaning of the cards,
| so irrelevant clues are technically banned. So, a "sausage"
| strategy would be illegal on many boards.
| anonymoushn wrote:
| I guess you'd have to call an unrelated word and zero,
| which is explicitly allowed.
| pimlottc wrote:
| I would say that's still against the rules since "sausage"
| has no relevance to the meaning of the target words.
| Obviously you could just bullshit some extremely tentative
| relationship if pressed but it goes against the spirit of the
| rules.
| TheDong wrote:
| I feel like saying "<death card hint> 0" every time is 100%
| in the spirit of the clue-ing rules, and there's no rules
| related to guessing, so this guessing strategy also doesn't
| seem to violate things that overtly.
|
| I do agree that there's an implicit intention in the rules
| that the operative's guesses are related to the spymaster's
| hints, but I don't think that relation is ever said
| explicitly.
| default-kramer wrote:
| But saying zero disallows your team from guessing at all,
| right? Maybe "<death card hint> 666" would work.
|
| A common pattern in our play groups is when the other
| team is just 1 away from winning and you cannot find a
| clue that covers all your remaining words, you come up
| with the best clue you can and say "99" so that it's
| clear "The number is irrelevant to the clue here, just
| keep guessing until you win or you miss."
|
| Edit: I'm wrong. From the rules: "If 0 is the number, the
| usual limit on guesses does not apply. Field operatives
| can guess as many words as they want. They still must
| guess at least one word."
|
| Edit2: And instead of 99, my play groups should have been
| using "unlimited." Again from the rules: "Sometimes you
| may have multiple unguessed words related to clues from
| the previous rounds. If you want your team to guess more
| than one of them, you may say unlimited instead of a
| number. For example feathers: unlimited."
| TheDong wrote:
| The rules specifically say that a number of zero means
| any number of guesses is permitted. They also say
| 'unlimited' is permitted instead of a number
| TheDong wrote:
| You clearly don't understand the article since it's not about
| clues at all, but entirely about guessing.
|
| Basically, the claim is that based entirely on the pattern of
| the board (revealed red, blue, and white cards), there are so
| few legal board configurations (the cards that the spymasters
| are using), that the field operatives can ignore the hint the
| spymaster gave, and guess correct cards anyway based on the
| board's revealed information.
|
| Effectively, a game where the red team uses this strategy might
| go like this:
|
| Red Team Spymaster: Word unlimited
|
| Red Team Field Operatives: <pick card at random, get white at
| the lower right>
|
| Blue Team Spymaster: <Real Hint> 2
|
| Blue Team Field Operatives: <pick 2 correct cards at the upper
| left>
|
| Red Team Spymaster: Word unlimited
|
| Red Team Field Operatives: "Well, there's only one spymaster
| card with a white card in the lower right and two blue cards in
| the upper left, so now we know where every card is and can pick
| all the red cards" <wins>
|
| In a real practical implementation here, the spymaster would
| probably actually clue "<death card hint> 0" each turn in order
| to ensure their team can safely pick at random until there's
| enough information to know which board they're on.
|
| Please point me to the rule that bans this:
| https://czechgames.com/files/rules/codenames-rules-en.pdf
| Izkata wrote:
| > "<death card hint> 0"
|
| We had a game once where one team was starting to look at
| that card because of previous hints and the spymaster did
| exactly that to say "don't do it", but because the hint was
| for that card they ignored the number and picked it that
| round.
| renewiltord wrote:
| The fun of this game is in the absolute clowning that
| happens. This is fantastic haha.
| travisjungroth wrote:
| If I was the spymaster in that story I'd just chuckle about
| how these games go, excuse myself to the bathroom, and
| scream into a towel.
| jader201 wrote:
| > You clearly don't understand the article since it's not
| about clues at all, but entirely about guessing.
|
| Not entirely about guessing. In fact, guessing isn't involved
| at all, at least not after the first turn.
|
| You left out that to do this, you need to have memorized
| basically all of the spymaster cards, or enough of them to
| increase the odds of you figuring out the configuration.
|
| This is basically the same as the cheat in the memory match
| game in Super Mario Bros. 3 where you uncover matching power
| ups [1], and receive the power ups that you successfully
| uncover -- but there are only 8 possible boards, so it's way
| easier vs. this Codenames cheat.
|
| Even if this is not technically considered cheating, it
| definitely would feel like cheating, since again you need to
| have knowledge of most of the spymaster cards. (And it goes
| without saying, this is definitely against the spirit of the
| game, even if it's a neat party trick.)
|
| [1] https://mario.fandom.com/wiki/Matching_Game
| TheDong wrote:
| By "guessing" I meant "the guessing phase" as opposed to
| "the clueing phase", i.e. it's about the phase where you
| pick cards.
|
| I should have said "picking phase", but from my example,
| you should have been able to see that I knew it was about
| memorizing the boards.
|
| I feel like you've taken an intentionally negative reading
| of my comment, which I suppose fair's fair because I wasn't
| exactly being charitable to my parent comment either.
| thih9 wrote:
| Note that in the described game the spymaster didn't give out a
| clue like this; the article states "From the given clue, we
| were unable to [guess all of our remaining words]". I guess it
| was a teammate that suggested the other strategy.
| ralferoo wrote:
| Adding to the list of related games at the end of the article, I
| recently played "Poetry for Neanderthals" and thought it was
| quite fun, although really once you've figured out how to trick
| your brain into thinking with grunts, it becomes easy quite
| quickly because then you tap into the primal part of your brain
| that prefers single syllables. But bashing people with the rubber
| hammer kept it amusing for longer than it probably should.
| quuxplusone wrote:
| I played "Poetry for Neaderthals" once a few months ago, and
| concluded that its enjoyability must _really_ depend on the
| group. My wife and I were playing at a meetup with a couple of
| party-game guys who maybe weren 't the brightest bulbs in the
| box (they were the ones who brought the game, but they'd never
| played it before either). This made it no trouble at all when
| either of us was the "master," but excruciatingly painful when
| either of them was.
|
| Like, suppose the word is WINDOW. They'd be like, "Um... house.
| [long pause] Grass, sky. Glass! Um... [long pause] see? Eye
| look at?" And I'd be like, "This is a thing in the wall of a
| house. You can see through it. It's made out of glass. Um... it
| has panes, and a sill. It might have drapes next to it. You go
| to it when you want to see out of the house, but it's not the
| door. A thief might come in through it," etc. etc.
|
| Once you realize you can just say whatever you like (as long as
| it's in words of one syllable), it seems like the whole game is
| "cooked." Even with a group of uniformly competent players, I
| feel like it would just devolve into listening very carefully
| to a rapid-fire stream of words to try to detect any slips --
| i.e. real-time proofreading -- which to me doesn't count as an
| enjoyable way to spend a game night.
| cauch wrote:
| I don't know the game that much, but ways to create random 5x5
| grid seems pretty simple when I quickly try to think about one.
|
| What about having 25 scrabble-like squares in a bag, and the
| spymasters pick randomly in the bag. Each square has a number
| from 1 to 25 that correspond to one position on the 5x5 grid, and
| one extra square is chosen to be the black square and shown to
| the spymasters. The spymasters have a pen and a piece of paper
| with a 5x5 grid where they can mark the information they receive.
|
| (that is if the spymasters are not informed of the position for
| the other team, I'm not sure if it's the case or not in the real
| game. If not, it's even simpler: both spymasters look at the
| result of every pick, the squares are colored and the order in
| which they are picked is the order they are on the grid)
| TheDong wrote:
| That adds pretty noticeable friction over the pre-printed
| cards, so I think the pre-printed cards make a lot of sense to
| have.
|
| Note that the game already comes with 25 colored tiles (red /
| blue / white) which are used to cover the game board, so what
| you describe could be easily done with the existing game by
| putting those 25 tiles in a bag, shaking it, and having the
| spymasters secretly draw all 25 and fill in a grid in the order
| they draw them, and then proceed with the game as normal from
| there. I doubt many people would want to bother though.
|
| > that is if the spymasters are not informed of the position
| for the other team
|
| The spymasters both know all information, so it is indeed even
| simpler.
| cauch wrote:
| You are right, it is more cumbersome, but it is worth doing
| it if people have played a lot and they start to
| unconsciously remember the "weird pattern", which is
| basically ruining the game. I would say the printed card can
| be used when that risk is low.
| Skeime wrote:
| The way I would do it: Get a board with a grid of 5x5 insets
| (like a Big Boggle board), a screen to hide it, 25 colored
| marbles (9 blue, 8 red, 1 black, 7 white), and a bag. Shake
| the marbles in the bag and empty it onto the board, shuffling
| it around until each marble is in a hole.
|
| (Add another red marble if you want to alternate the starting
| team without switching their color and remove a red or blue
| marble each time.)
| quuxplusone wrote:
| Excellent article, with multiple directions of rabbit holes to
| descend. I liked the linked essay on "The Bitter Lesson":
| http://www.incompleteideas.net/IncIdeas/BitterLesson.html
|
| I liked the Mastodon thread linked from the appendix, re Dave
| Sirlin's theory of "scrubs" (who'd eschew the post's geometric
| tactic) versus "good players":
| https://mastodon.social/@danluu/110544419353766175
|
| Which in turn links to the original imgur post describing the
| Warhammer 40K match between Wheels and Shooter:
| https://imgur.com/a/V0gND
|
| +1 to nemetroid's recommendation of "So Clover," which is indeed
| more of a pastime than a game, but it's still great and belongs
| on any list of great word games.
|
| I also like "Contact," which is playable without any props:
| https://quuxplusone.github.io/blog/2021/11/12/contact/
| Arnavion wrote:
| For anyone else like me who's only played the online versions and
| was really confused by the article: the physical game does not
| completely randomize the positions of red and blue cards but has
| a fixed set of possible configurations - the "configuration
| cards" that the article is talking about.
| drodio wrote:
| DROdio here, CEO of Storytell.ai
|
| Thanks for trying Storytell for coding work, Dan!
|
| When you say it "I don't think it took too much longer to get
| working code than it would've taken if I just coded up the entire
| thing by hand with no assistance. I'm going to guess that it took
| about twice as long, but for all I know it was a comparable
| amount of time." - I'm actually amazed that it performed as well
| as it did for native code generation.
|
| We put code generation in the "Use with Caution" bucket as I
| describe in https://web.storytell.ai/blog/the-intersection-of-ai-
| curious...
| creer wrote:
| Codenames is a word guessing game - in part. It's also a game of
| ingenuity, of knowing your players / spymasters, of players
| trying to be better as a group than as individuals, of paying
| attention (and using the other team's clues) - and at some point
| it's a game and can be played seriously and competitively.
|
| From that point of view I don't see a serious problem with
| embracing the game pieces provided and taking them into
| consideration. It is a dimension in the game. It does not kill
| the game. Solid thinking from that team.
|
| I have more of a problem with people learning word lists for
| Scrabble. It's not against the rules - but it makes it hard to
| play with these people. It's a significant class difference.
| default-kramer wrote:
| I gotta disagree, I'm way more accepting of Scrabble list
| memorizers (even though I'll never be one) because word
| knowledge was intended by the game designers to be a part of
| the game.
|
| Memorizing the spymaster layouts was almost certainly _not_
| intended by the designers of Codenames. Probably someone
| realized it was possible, but as other commenters mention the
| increased friction of fully randomized layouts isn 't worth it
| when almost no one will want to do this.
| creer wrote:
| Memorizing the layouts altogether would be a step too far.
| And probably some people could do it...
|
| I was thinking more of remembering that the layouts have
| basic characteristics: a team's words are not bunched on one
| side, or all lined up, or in a circle, etc. Not your team's,
| not the other team's.
|
| But now that you mention it, fully randomized would be easy
| to do as a phone app. And a phone could be propped up in
| front of the spymasters. (The setup with the layout propped
| in front of the spymasters works really well in a party
| setting, where it's normal that some people will get up and
| walk around without wanting to cheat.)
| rjp0008 wrote:
| Or a boggle-esque set of dice rather than a phone app.
| creer wrote:
| Or not even any programming and showing one of the online
| Codenames on the phone - just for the map.
| leecarraher wrote:
| This is exactly why i like this game. Upon first playing it, the
| attacks were obvious to beat anyone who was playing legitimately.
| Assuming both teams know this fact, means the choice is, play the
| game to win and it is boring or play the game to have fun and
| challenge yourself and partner. During every occasion, the latter
| has prevailed.
| travisjungroth wrote:
| This could actually make a good interview problem for the
| ability to focus on the stated goal and to play well with
| others. Use Codenames or create a game with many exploits that
| will jump out to smart people. Be explicit the point of the
| exercise is for everyone to have fun and play in the spirit of
| the game. Do they do that, or does their desire to be right and
| "figure it out" trample the real goal?
|
| Good test for an IC that wants to jump to a manager, cross-team
| or especially sales role. Believe me, you don't close deals by
| dunking on your prospects.
___________________________________________________________________
(page generated 2024-08-12 23:01 UTC)