Queer European MD passionate about IT
ソースを参照

Create Mission855Solutions.ipynb

acstrahl 1 年間 前
コミット
345fce0390
1 ファイル変更247 行追加0 行削除
  1. 247 0
      Mission855Solutions.ipynb

+ 247 - 0
Mission855Solutions.ipynb

@@ -0,0 +1,247 @@
+{
+ "cells": [
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "450f5892-ec18-4250-9759-91c0a071a2f1",
+   "metadata": {},
+   "source": [
+    "#My First Interactive Python Game#"
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "89e3c523-4cfc-4b4c-aab8-098271a6d3c9",
+   "metadata": {},
+   "source": [
+    "##Word Raider##"
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "cd1c3728-58fb-47a0-a960-2bf7994061a1",
+   "metadata": {},
+   "source": [
+    "We start by importing the `random` library to use later on."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "16df9641-fa55-4c91-a8a5-5e9d52ba9193",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import random"
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "f0df582d-81c7-4c4d-b225-df204c75f637",
+   "metadata": {},
+   "source": [
+    "##Define initial variables##"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "10c00858-d7d9-4ac1-8c8b-6644dfdfd73a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "game_title = \"Word Raider\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2c817451-8b32-4bef-b595-24ef5aaa5fab",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set up the list of words to choose from\n",
+    "word_bank = []"
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "4524e1bd-c737-4715-a6ff-f4857c2883d3",
+   "metadata": {},
+   "source": [
+    "##Open file for loading in the word bank## "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "93b9a55b-5ed4-42d9-80ca-8c484f02e844",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "with open(\"words.txt\") as word_file:\n",
+    "    for line in word_file:\n",
+    "        word_bank.append(line.rstrip().lower())\n"
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "c14b75fd-26c8-48d4-ad27-a833bce5e004",
+   "metadata": {},
+   "source": [
+    "##Select the word to guess##"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5667fb8f-4300-4b1f-a1b1-577d25d1de84",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Pick a random word from the list\n",
+    "word_to_guess = random.choice(word_bank)"
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "84abd85d-f8bf-4b3b-aea9-ca104bcdf65f",
+   "metadata": {},
+   "source": [
+    "##Define the remaining game variables##"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b2a2a89e-9739-4244-9558-7f3b3933ac72",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set up the game variables\n",
+    "misplaced_guesses = []\n",
+    "incorrect_guesses = []\n",
+    "max_turns = 5\n",
+    "turns_taken = 0"
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "b34341ce-8ef5-449d-95a9-675ea360f161",
+   "metadata": {},
+   "source": [
+    "##Print the current game state##"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "7918773d-7e43-4fe8-bec6-313d342effde",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Display the initial game state\n",
+    "print(\"Welcome to\", game_title)\n",
+    "print(\"The word has\", len(word_to_guess), \"letters.\")\n",
+    "print(\"You have\", max_turns - turns_taken, \"turns left.\")"
+   ]
+  },
+  {
+   "attachments": {},
+   "cell_type": "markdown",
+   "id": "2771a668-a06a-4306-8b61-f39a3871f4c1",
+   "metadata": {},
+   "source": [
+    "##Build the game loop##"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b21e5fbd-461f-4556-ae64-b4deaf7f16ba",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "while turns_taken < max_turns:\n",
+    "    # Get the player's guess\n",
+    "    guess = input(\"Guess a word: \").lower()\n",
+    "\n",
+    "    # Check if the guess length equals 5 letters and is all alpha letters\n",
+    "    if len(guess) != len(word_to_guess) or not guess.isalpha():\n",
+    "        print(\"Please enter 5-letter word.\")\n",
+    "        continue\n",
+    "\n",
+    "    # Check each letter in the guess against the word's letters\n",
+    "    index = 0\n",
+    "    for c in guess:\n",
+    "        if c == word_to_guess[index]:\n",
+    "            print(c, end=\" \")\n",
+    "            if c in misplaced_guesses:\n",
+    "                misplaced_guesses.remove(c)\n",
+    "        elif c in word_to_guess:\n",
+    "            if c not in misplaced_guesses:\n",
+    "                misplaced_guesses.append(c)\n",
+    "            print(\"_\", end=\" \")\n",
+    "        else:\n",
+    "            if c not in incorrect_guesses:\n",
+    "                incorrect_guesses.append(c)\n",
+    "            print(\"_\", end=\" \")\n",
+    "        index += 1\n",
+    "\n",
+    "    print(\"\\n\")\n",
+    "    print(\"Misplaced letters: \", misplaced_guesses)\n",
+    "    print(\"Incorrect letters: \", incorrect_guesses)\n",
+    "    turns_taken += 1\n",
+    "\n",
+    "    # Check if the player has won\n",
+    "    if guess == word_to_guess:\n",
+    "        print(\"Congratulations, you win!\")\n",
+    "        break\n",
+    "\n",
+    "    # Check if the player has lost\n",
+    "    if turns_taken == max_turns:\n",
+    "        print(\"Sorry, you lost. The word was\", word_to_guess)\n",
+    "        break\n",
+    "\n",
+    "    # Display the number of turns left and ask for another guess\n",
+    "    print(\"You have\", max_turns - turns_taken, \"turns left.\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8417510d-ffb1-4593-b65b-2ec49d6900b6",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.11.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}