lucadipalma
commited on
Commit
·
7be7dad
1
Parent(s):
f9d1667
improved readme with "how to play" section
Browse files- README.md +99 -2
- pages/how_to_play.py +8 -1
- support/game_settings.py +1 -1
README.md
CHANGED
|
@@ -24,7 +24,7 @@ tags:
|
|
| 24 |
|
| 25 |
[My post on LinkedIn](https://www.linkedin.com/posts/luca-di-palma-99024a1b7_most-of-us-use-llms-to-create-reports-write-activity-7400225424770932736-OTPU?utm_source=share&utm_medium=member_desktop&rcm=ACoAADJnVPwBh-8LoV25AQVeclIBTKNuOP6rr08)
|
| 26 |
|
| 27 |
-
**New to Codenames? No problem
|
| 28 |
|
| 29 |
---
|
| 30 |
|
|
@@ -95,7 +95,7 @@ Your AI teammates will interpret your hint and take their guesses.
|
|
| 95 |
|
| 96 |
## 🕹️ Main Features
|
| 97 |
|
| 98 |
-
* **
|
| 99 |
* **Switch between AI vs AI** and **Human vs AI** modes
|
| 100 |
* **Detailed per-turn logs** for all model decisions
|
| 101 |
* **Transparent reasoning chains**
|
|
@@ -116,4 +116,101 @@ The Stats section of the app includes:
|
|
| 116 |
|
| 117 |
This turns the Arena into a dynamic benchmarking tool for evaluating LLM semantic reasoning, coordination abilities, and reliability under pressure.
|
| 118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
|
|
|
|
| 24 |
|
| 25 |
[My post on LinkedIn](https://www.linkedin.com/posts/luca-di-palma-99024a1b7_most-of-us-use-llms-to-create-reports-write-activity-7400225424770932736-OTPU?utm_source=share&utm_medium=member_desktop&rcm=ACoAADJnVPwBh-8LoV25AQVeclIBTKNuOP6rr08)
|
| 26 |
|
| 27 |
+
**New to Codenames? No problem.** Go to the [How to Play section](#-how-to-play) below or check out the example in the _How to Play_ tab in the app to get started.
|
| 28 |
|
| 29 |
---
|
| 30 |
|
|
|
|
| 95 |
|
| 96 |
## 🕹️ Main Features
|
| 97 |
|
| 98 |
+
* **Build teams by selecting providers** or choose `random` to generate a mixed-model team.
|
| 99 |
* **Switch between AI vs AI** and **Human vs AI** modes
|
| 100 |
* **Detailed per-turn logs** for all model decisions
|
| 101 |
* **Transparent reasoning chains**
|
|
|
|
| 116 |
|
| 117 |
This turns the Arena into a dynamic benchmarking tool for evaluating LLM semantic reasoning, coordination abilities, and reliability under pressure.
|
| 118 |
|
| 119 |
+
---
|
| 120 |
+
|
| 121 |
+
## ❓ How to Play
|
| 122 |
+
|
| 123 |
+
|
| 124 |
+
### 📝 Summary
|
| 125 |
+
|
| 126 |
+
Codenames is a word-association game where two teams compete to guess all their secret words before the opponents do. Each team has a Boss who **can see** a hidden color-coded board showing which words belong to their team, which belong to the other team, which are neutral, and which single word is the deadly assassin. The Boss gives one-word clues paired with a number, hinting at how many words on the board relate to that clue. Their teammates, **who cannot see any colors**, must discuss, interpret the clue, and decide which words the Boss is pointing toward. Choosing their own words brings them closer to victory, while accidentally selecting an opponent’s word, a neutral word, or the assassin can derail their progress or end the game instantly. The goal is simple: interpret clues wisely, avoid dangerous words, and be the first team to uncover all your hidden words.
|
| 127 |
+
|
| 128 |
+
### 💡 Let's see an example
|
| 129 |
+
|
| 130 |
+
What Bosses see (left) VS what other players see (right)
|
| 131 |
+
|
| 132 |
+
<img src="assets/example.png" alt="Example board" width="400">
|
| 133 |
+
<img src="assets/no-color-board.png" alt="Example board" width="400">
|
| 134 |
+
|
| 135 |
+
### 👥 Team Roles
|
| 136 |
+
|
| 137 |
+
Each team has four members with distinct responsibilities:
|
| 138 |
+
|
| 139 |
+
* **1 Boss** 🎯: The only player who can see the color-coded board. Provides clues to guide the team.
|
| 140 |
+
* **1 Captain** 🧭: Coordinates team reasoning, synthesizes suggestions, and makes final word selections.
|
| 141 |
+
* **2 Players** 💭: Collaborate with the Captain, propose interpretations and associations.
|
| 142 |
+
|
| 143 |
+
---
|
| 144 |
+
|
| 145 |
+
### 🎮 How a Turn Works
|
| 146 |
+
|
| 147 |
+
#### 1️⃣ Boss Gives a Clue
|
| 148 |
+
|
| 149 |
+
The Red Boss (seeing the board) might say:
|
| 150 |
+
|
| 151 |
+
> **"Atmosphere: 2"**
|
| 152 |
+
|
| 153 |
+
This clue suggests 2 red words are related to *atmosphere*. Looking at the board, the Boss is thinking of:
|
| 154 |
+
|
| 155 |
+
* **AIR** (part of the atmosphere)
|
| 156 |
+
* **SPACE** (beyond the atmosphere)
|
| 157 |
+
|
| 158 |
+
*⚠️ Important: The clue must be ONE word and ONE number. The number indicates how many words relate to that clue.*
|
| 159 |
+
|
| 160 |
+
---
|
| 161 |
+
|
| 162 |
+
#### 2️⃣ Team Discussion
|
| 163 |
+
|
| 164 |
+
The Captain and Players discuss without seeing the colors:
|
| 165 |
+
|
| 166 |
+
* **Player 1:** “AIR feels like the safest bet — it's literally the atmosphere.”
|
| 167 |
+
* **Player 2:** “SPACE could connect because it's outside the atmosphere.”
|
| 168 |
+
|
| 169 |
+
---
|
| 170 |
+
|
| 171 |
+
#### 3️⃣ Captain Makes Final Selection
|
| 172 |
+
|
| 173 |
+
The Captain decides which words to touch, in order:
|
| 174 |
+
|
| 175 |
+
1. AIR ✅ (Red — Correct!)
|
| 176 |
+
2. SPACE ✅ (Red — Correct!)
|
| 177 |
+
|
| 178 |
+
The team can stop after any correct guess or continue up to the number given (+1 bonus from previous turns if applicable).
|
| 179 |
+
|
| 180 |
+
---
|
| 181 |
+
|
| 182 |
+
### ⚠️ Mistakes to Avoid
|
| 183 |
+
|
| 184 |
+
* Guessing **STAFF** (black — killer word) ends the game **immediately**. They **lose**!
|
| 185 |
+
* Guessing **WALL** (blue — opponent’s word) ends the turn and gives that word to the Blue team.
|
| 186 |
+
* Guessing **SATURN** (beige — neutral) simply ends the turn.
|
| 187 |
+
|
| 188 |
+
---
|
| 189 |
+
|
| 190 |
+
### 🏆 Winning the Game
|
| 191 |
+
|
| 192 |
+
The game ends when:
|
| 193 |
+
|
| 194 |
+
* ✅ **A team finds all their colored words** → That team wins!
|
| 195 |
+
* ❌ **A team touches the killer word (STAFF)** → That team loses immediately!
|
| 196 |
+
|
| 197 |
+
---
|
| 198 |
+
|
| 199 |
+
### 💡 Strategy Tips
|
| 200 |
+
|
| 201 |
+
#### For the Boss:
|
| 202 |
+
|
| 203 |
+
* Try to link multiple words with creative clues
|
| 204 |
+
* Avoid clues that may lead to the killer or opponent’s words
|
| 205 |
+
* Consider associations your team might make
|
| 206 |
+
|
| 207 |
+
#### For Captain & Players:
|
| 208 |
+
|
| 209 |
+
* Discuss all possible interpretations
|
| 210 |
+
* Consider risky words
|
| 211 |
+
* Don’t be afraid to stop early to avoid the killer word
|
| 212 |
+
* The Captain has final say but should consider all suggestions
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
|
| 216 |
|
pages/how_to_play.py
CHANGED
|
@@ -14,9 +14,16 @@ with gr.Blocks(fill_width=True) as demo:
|
|
| 14 |
show_label=True,
|
| 15 |
height=450,
|
| 16 |
elem_id="example_game_board_img",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
)
|
| 18 |
with gr.Column():
|
| 19 |
gr.HTML(EXAMPLE_GAME_RULES_HTML, elem_id="rules_content")
|
| 20 |
|
| 21 |
if __name__ == "__main__":
|
| 22 |
-
demo.launch()
|
|
|
|
| 14 |
show_label=True,
|
| 15 |
height=450,
|
| 16 |
elem_id="example_game_board_img",
|
| 17 |
+
),
|
| 18 |
+
gr.Image(
|
| 19 |
+
"assets/no-color-board.png",
|
| 20 |
+
label="“Captains' and Players' View",
|
| 21 |
+
show_label=True,
|
| 22 |
+
height=450,
|
| 23 |
+
elem_id="example_game_board_img",
|
| 24 |
)
|
| 25 |
with gr.Column():
|
| 26 |
gr.HTML(EXAMPLE_GAME_RULES_HTML, elem_id="rules_content")
|
| 27 |
|
| 28 |
if __name__ == "__main__":
|
| 29 |
+
demo.launch()
|
support/game_settings.py
CHANGED
|
@@ -132,7 +132,7 @@ EXAMPLE_GAME_BOARD_HTML = """
|
|
| 132 |
<li><strong style="color: #6c757d;">Beige squares</strong> = Neutral words (innocent bystanders)</li>
|
| 133 |
<li><strong style="color: #212529;">Black square</strong> = Killer word (instant loss if touched!)</li>
|
| 134 |
</ul>
|
| 135 |
-
<p><strong>Remember:</strong> Only the <strong>Boss</strong> sees these colors. The <strong>Captain</strong> and <strong>Players</strong> only see the words!</p>
|
| 136 |
</div>
|
| 137 |
</div>
|
| 138 |
"""
|
|
|
|
| 132 |
<li><strong style="color: #6c757d;">Beige squares</strong> = Neutral words (innocent bystanders)</li>
|
| 133 |
<li><strong style="color: #212529;">Black square</strong> = Killer word (instant loss if touched!)</li>
|
| 134 |
</ul>
|
| 135 |
+
<p><strong>Remember:</strong> Only the <strong>Boss</strong> sees these colors (image above). The <strong>Captain</strong> and <strong>Players</strong> only see the words (image below)!</p>
|
| 136 |
</div>
|
| 137 |
</div>
|
| 138 |
"""
|