Този прост урок за игра ще ви помогне да практикувате основите на програмирането на Python.

Създаването на игра „Камък, хартия, ножици“ в Python е чудесен начин да подобрите уменията си за програмиране. Можете да създадете играта с един скрипт на Python и да я играете от командния ред.

Играта започва, като пита играча за техния избор: "камък", "хартия" или "ножица". След това ги чака да въведат своя отговор. Можете да играете играта срещу "компютърен" играч, който автоматично ще избере своя ход.

Играта може да включва и много кръгове. Така че дори и да загубите първия кръг, пак можете да опитате да спечелите два от три!

Как да настроите играта и да попитате играча за техния ход

Когато играта започне, програмата Python трябва да поиска от играча да въведе или „камък“, „хартия“ или „ножица“ и да приеме отговора на играча. За да настроите нова игра, започнете със създаване на нов Python файл с разширение .py.

Пълният код за този урок е достъпен в хранилище на GitHub.

  1. Създайте нов файл, наречен RockPaperScissors.py.
  2. instagram viewer
  3. Отворете новия файл на Python с помощта на всеки текстов редактор, като Notepad++ или Visual Studio Code.
  4. В горната част на файла импортирайте произволния модул. Ще използвате това по-късно в играта, за да изберете на случаен принцип ход за хода на компютъра.
    импортиране случаен
  5. Представете съобщение на играча, като го помолите да въведе камък, хартия или ножица.
    userChoice = вход(„Камък, хартия или ножица? ").нисък()
  6. Инициализирайте масив, наречен "moveOptions", който съхранява списък с наличните ходове, които вие или компютърът можете да играете.
    moveOptions = ["скала", "хартия", "ножица"]
  7. Когато играчът въведе вход, потвърдете го, за да се уверите, че е един от наличните ходове. След като играчът въведе валиден ход, отпечатайте съобщение за потвърждение.
    докато (userChoice не в moveOptions):
    userChoice = вход(„Невалиден избор. Трябва да е камък, хартия или ножица: ").нисък()

    печат("")
    печат (f „Ти избра {userChoice}.")

Как да се редувате с компютъра и да сравнявате ходовете

След като сте въвели хода си, компютърът ще поеме своя ред, като произволно избере „камък“, „хартия“ или „ножица“. След това играта ще трябва да сравни вашия ход с хода на компютъра, за да определи кой е спечелил.

  1. Използвайте произволния модул, за да накарате компютъра да избира произволно от списъка с налични ходове.
    computerChoice = random.choice (moveOptions)
    печат (f „Компютърът избра {computerChoice}.")
  2. Ще трябва да сравните хода си с хода на компютъра, за да определите кой е спечелил. Можете да направите това, като създадете нов речник. Този речник съдържа всеки ход (например „камък“) и от какъв ход печели или губи (например „камък“ побеждава „ножица“ и губи от „хартия“).
    движи = {
    "скала": { бийтове: "ножица", 'losesTo': "хартия" },
    "ножица": { бийтове: "хартия", 'losesTo': "скала" },
    "хартия": { бийтове: "скала", 'losesTo': "ножица" },
    }
  3. Използвайте оператора if на Python за да проверите дали вашият ход и този на компютъра водят до равенство. В противен случай използвайте речника на ходовете, за да сравните хода на играча с хода на компютъра.
    if userChoice == computerChoice:
    печат (f"И вие, и компютърът избрахте {userChoice}. Това е равенство!")
    друго:
    ако (движи[userChoice][бийтове] == компютърен избор):
    печат (е"{userChoice} удари {computerChoice}. Ти печелиш!")

    ако (движи[userChoice]['losesTo'] == компютърен избор):
    печат (е"{userChoice} губи от {computerChoice}. Компютърът печели!")
    Като пример, ако сте избрали "rock", тогава стойността на moves[userChoice]['beats'] ще бъде "scissors". Ако изборът на компютъра е бил "ножица", това означава, че вашият ход бие техния.

Как да запазите резултата между играча и компютъра между няколко рунда

Можете също да добавите допълнителни кръгове, където вие и компютърът правите по три хода.

След като вие и компютърът изберете камък, хартия или ножица, играта ще ви попита отново и ще следи вашите резултати. Резултатът за играча се увеличава в зависимост от това кой е спечелил този конкретен рунд.

  1. Текущият код представлява един кръг от ходове, направени както от играча, така и от компютъра. Добавете целия текущ код с изключение на оператора за импортиране в нова функция turn(). Можете също така да промените съответно изходните съобщения, за да кажете „Вие печелите този кръг“, а не „Вие печелите“:
    дефзавой():
    userChoice = вход(„Камък, хартия или ножица? ").нисък()

    moveOptions = ["скала", "хартия", "ножица"]

    докато (userChoice не в moveOptions):
    userChoice = вход(„Невалиден избор. Трябва да е камък, хартия или ножица: ").нисък()

    печат("")
    печат (f „Ти избра {userChoice}.")

    computerChoice = random.choice (moveOptions)
    печат (f „Компютърът избра {computerChoice}.")

    движи = {
    "скала": { бийтове: "ножица", 'losesTo': "хартия" },
    "ножица": { бийтове: "хартия", 'losesTo': "скала" },
    "хартия": { бийтове: "скала", 'losesTo': "ножица" },
    }

    if userChoice == computerChoice:
    печат (f"И вие, и компютърът избрахте {userChoice}. Това е равенство!")
    друго:
    ако (движи[userChoice][бийтове] == компютърен избор):
    печат (е"{userChoice} удари {computerChoice}. Вие печелите този кръг!")

    ако (движи[userChoice]['losesTo'] == компютърен избор):
    печат (е"{userChoice} губи от {computerChoice}. Компютърът печели!")

  2. Играчът и компютърът трябва да направят по три хода. Добавете глобална променлива, наречена "turns" в горната част на файла.
    обороти = 3
  3. След функцията turn(), използвайте Python for цикъл да повторите кръга три пъти. В началото на всеки кръг отпечатайте числото на кръга. Извикайте функцията turn(), за да помолите играча и компютъра да направят своите ходове за този рунд.
    за i в диапазон (завъртания):
    печат("")
    печат (f" Кръгъл {i+1}: ")
    обръщам ()
  4. За да следите кой е спечелил всеки рунд, добавете променлива за резултат за всеки играч в горната част на файла. Ще присвоите стойности на тези променливи във функцията turn(), така че не забравяйте да ги използвате като глобални променливи.
    computerScore = 0
    playerScore = 0

    дефзавой():
    глобален computerScore, playerScore

  5. Във функцията turn(), след като и играчът, и компютърът са направили своя ход, добавете точка към резултата на победителя. Променете оператора if, за да увеличите стойността на променливата "playerScore" или "computerScore".
    ако (движи[userChoice][бийтове] == компютърен избор):
    печат (е"{userChoice} удари {computerChoice}. Вие печелите този кръг!")
    playerScore += 1

    ако (движи[userChoice]['losesTo'] == компютърен избор):
    печат (е"{userChoice} губи от {computerChoice}. Компютърът печели!")
    computerScore += 1

  6. В края на функцията turn() отпечатайте актуализация на общите резултати за всеки играч.
    # Отпечатайте актуализация на общите резултати след кръга
    печат("")
    печат (f"ТАБЛО | Резултат на играча: {playerScore} | Резултатът на компютъра: {computerScore}")
  7. В самия край на играта и след цикъла for, който повтаря редовете на играча и компютъра, отпечатайте крайния победител.
    печат("")

    if (computerScore > playerScore):
    печат (f"Компютърът печели с {computerScore} точки!")
    елиф (playerScore > computerScore):
    печат (f „Печелите с {playerScore} точки!")
    друго:
    печат (е „Равенство е! И двамата печелите с {playerScore} точки!")

Как да стартирате играта

За да играете играта, стартирайте скрипта на Python, като използвате терминал или команден ред. Въведете своя ход и изчакайте компютърът да направи своя. След като завършите три рунда, програмата ще покаже победителя.

  1. Отворете команден ред или терминал и отидете до папката, в която съхранявате вашия Python файл.
  2. Използвайте командата python, за да изпълните скрипта:
    питонКамък ножица хартия.py
  3. Играйте играта, като въведете „камък“, „хартия“ или „ножица“.

Научете Python чрез създаване на игри

Създаването на прости игри като игра "Камък, хартия, ножици" е чудесен начин да се запознаете по-добре с концепциите за програмиране. Има толкова много други забавни игри, които можете да правите с помощта на Python, като например базирана на текст приключенска игра.