Minor tweaks after making video
Browse files- README.md +1 -0
- prototype.ipynb +14 -4
README.md
CHANGED
@@ -23,6 +23,7 @@ It has been great fun making this Arena and watching LLMs duke it out!
|
|
23 |
Quick links:
|
24 |
- The [Live Arena](https://edwarddonner.com/connect-four/) courtesy of amazing HuggingFace Spaces
|
25 |
- The [GitHub repo](https://github.com/ed-donner/connect) for the code
|
|
|
26 |
- My [LinkedIn](https://www.linkedin.com/in/eddonner/) - I love connecting!
|
27 |
|
28 |
If you'd like to learn more about this:
|
|
|
23 |
Quick links:
|
24 |
- The [Live Arena](https://edwarddonner.com/connect-four/) courtesy of amazing HuggingFace Spaces
|
25 |
- The [GitHub repo](https://github.com/ed-donner/connect) for the code
|
26 |
+
- My [video walkthrough](https://youtu.be/0OF-ChlKOQY) of the code
|
27 |
- My [LinkedIn](https://www.linkedin.com/in/eddonner/) - I love connecting!
|
28 |
|
29 |
If you'd like to learn more about this:
|
prototype.ipynb
CHANGED
@@ -67,7 +67,7 @@
|
|
67 |
"class Board:\n",
|
68 |
"\n",
|
69 |
" def __init__(self):\n",
|
70 |
-
" self.cells = [[
|
71 |
" self.player = RED\n",
|
72 |
" self.winner = EMPTY\n",
|
73 |
"\n",
|
@@ -245,7 +245,7 @@
|
|
245 |
" def system(self, board):\n",
|
246 |
" legal_moves = \", \".join(board.legal_moves())\n",
|
247 |
" return f\"\"\"You are an expert player of the board game Connect 4.\n",
|
248 |
-
"Players take turns to drop counters into one of
|
249 |
"The winner is the first player to get 4 coins in a row in a straight or diagonal line.\n",
|
250 |
"You are playing with the {pieces[self.color]} coins.\n",
|
251 |
"And your opponent is playing with the {pieces[self.color * -1]} coins.\n",
|
@@ -305,7 +305,9 @@
|
|
305 |
" messages=[\n",
|
306 |
" {\"role\": \"system\", \"content\": system},\n",
|
307 |
" {\"role\": \"user\", \"content\": user}\n",
|
308 |
-
" ]
|
|
|
|
|
309 |
" )\n",
|
310 |
" self.process_move(reply.choices[0].message.content)"
|
311 |
]
|
@@ -329,7 +331,7 @@
|
|
329 |
"source": [
|
330 |
"board = Board()\n",
|
331 |
"red = Player(\"gpt-4o-mini\", RED)\n",
|
332 |
-
"yellow = Player(\"gpt-4o
|
333 |
"while not board.winner:\n",
|
334 |
" red.move(board)\n",
|
335 |
" print(board)\n",
|
@@ -337,6 +339,14 @@
|
|
337 |
" yellow.move(board)\n",
|
338 |
" print(board)"
|
339 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
}
|
341 |
],
|
342 |
"metadata": {
|
|
|
67 |
"class Board:\n",
|
68 |
"\n",
|
69 |
" def __init__(self):\n",
|
70 |
+
" self.cells = [[EMPTY for _ in range(7)] for _ in range(6)]\n",
|
71 |
" self.player = RED\n",
|
72 |
" self.winner = EMPTY\n",
|
73 |
"\n",
|
|
|
245 |
" def system(self, board):\n",
|
246 |
" legal_moves = \", \".join(board.legal_moves())\n",
|
247 |
" return f\"\"\"You are an expert player of the board game Connect 4.\n",
|
248 |
+
"Players take turns to drop counters into one of 7 columns labelled A, B, C, D, E, F, G.\n",
|
249 |
"The winner is the first player to get 4 coins in a row in a straight or diagonal line.\n",
|
250 |
"You are playing with the {pieces[self.color]} coins.\n",
|
251 |
"And your opponent is playing with the {pieces[self.color * -1]} coins.\n",
|
|
|
305 |
" messages=[\n",
|
306 |
" {\"role\": \"system\", \"content\": system},\n",
|
307 |
" {\"role\": \"user\", \"content\": user}\n",
|
308 |
+
" ],\n",
|
309 |
+
" response_format={\"type\": \"json_object\"}\n",
|
310 |
+
" \n",
|
311 |
" )\n",
|
312 |
" self.process_move(reply.choices[0].message.content)"
|
313 |
]
|
|
|
331 |
"source": [
|
332 |
"board = Board()\n",
|
333 |
"red = Player(\"gpt-4o-mini\", RED)\n",
|
334 |
+
"yellow = Player(\"gpt-4o\", YELLOW)\n",
|
335 |
"while not board.winner:\n",
|
336 |
" red.move(board)\n",
|
337 |
" print(board)\n",
|
|
|
339 |
" yellow.move(board)\n",
|
340 |
" print(board)"
|
341 |
]
|
342 |
+
},
|
343 |
+
{
|
344 |
+
"cell_type": "code",
|
345 |
+
"execution_count": null,
|
346 |
+
"id": "f73d9d16-9658-4e85-8d46-f75e6adf7051",
|
347 |
+
"metadata": {},
|
348 |
+
"outputs": [],
|
349 |
+
"source": []
|
350 |
}
|
351 |
],
|
352 |
"metadata": {
|