Този прост урок за игра ще ви помогне да практикувате основите на програмирането на Python.
Създаването на игра „Камък, хартия, ножици“ в Python е чудесен начин да подобрите уменията си за програмиране. Можете да създадете играта с един скрипт на Python и да я играете от командния ред.
Играта започва, като пита играча за техния избор: "камък", "хартия" или "ножица". След това ги чака да въведат своя отговор. Можете да играете играта срещу "компютърен" играч, който автоматично ще избере своя ход.
Играта може да включва и много кръгове. Така че дори и да загубите първия кръг, пак можете да опитате да спечелите два от три!
Как да настроите играта и да попитате играча за техния ход
Когато играта започне, програмата Python трябва да поиска от играча да въведе или „камък“, „хартия“ или „ножица“ и да приеме отговора на играча. За да настроите нова игра, започнете със създаване на нов Python файл с разширение .py.
Пълният код за този урок е достъпен в хранилище на GitHub.
- Създайте нов файл, наречен RockPaperScissors.py.
- Отворете новия файл на Python с помощта на всеки текстов редактор, като Notepad++ или Visual Studio Code.
- В горната част на файла импортирайте произволния модул. Ще използвате това по-късно в играта, за да изберете на случаен принцип ход за хода на компютъра.
импортиране случаен
- Представете съобщение на играча, като го помолите да въведе камък, хартия или ножица.
userChoice = вход(„Камък, хартия или ножица? ").нисък()
- Инициализирайте масив, наречен "moveOptions", който съхранява списък с наличните ходове, които вие или компютърът можете да играете.
moveOptions = ["скала", "хартия", "ножица"]
- Когато играчът въведе вход, потвърдете го, за да се уверите, че е един от наличните ходове. След като играчът въведе валиден ход, отпечатайте съобщение за потвърждение.
докато (userChoice не в moveOptions):
userChoice = вход(„Невалиден избор. Трябва да е камък, хартия или ножица: ").нисък()
печат("")
печат (f „Ти избра {userChoice}.")
Как да се редувате с компютъра и да сравнявате ходовете
След като сте въвели хода си, компютърът ще поеме своя ред, като произволно избере „камък“, „хартия“ или „ножица“. След това играта ще трябва да сравни вашия ход с хода на компютъра, за да определи кой е спечелил.
- Използвайте произволния модул, за да накарате компютъра да избира произволно от списъка с налични ходове.
computerChoice = random.choice (moveOptions)
печат (f „Компютърът избра {computerChoice}.") - Ще трябва да сравните хода си с хода на компютъра, за да определите кой е спечелил. Можете да направите това, като създадете нов речник. Този речник съдържа всеки ход (например „камък“) и от какъв ход печели или губи (например „камък“ побеждава „ножица“ и губи от „хартия“).
движи = {
"скала": { бийтове: "ножица", 'losesTo': "хартия" },
"ножица": { бийтове: "хартия", 'losesTo': "скала" },
"хартия": { бийтове: "скала", 'losesTo': "ножица" },
} -
Използвайте оператора if на Python за да проверите дали вашият ход и този на компютъра водят до равенство. В противен случай използвайте речника на ходовете, за да сравните хода на играча с хода на компютъра.
Като пример, ако сте избрали "rock", тогава стойността на moves[userChoice]['beats'] ще бъде "scissors". Ако изборът на компютъра е бил "ножица", това означава, че вашият ход бие техния.if userChoice == computerChoice:
печат (f"И вие, и компютърът избрахте {userChoice}. Това е равенство!")
друго:
ако (движи[userChoice][бийтове] == компютърен избор):
печат (е"{userChoice} удари {computerChoice}. Ти печелиш!")
ако (движи[userChoice]['losesTo'] == компютърен избор):
печат (е"{userChoice} губи от {computerChoice}. Компютърът печели!")
Как да запазите резултата между играча и компютъра между няколко рунда
Можете също да добавите допълнителни кръгове, където вие и компютърът правите по три хода.
След като вие и компютърът изберете камък, хартия или ножица, играта ще ви попита отново и ще следи вашите резултати. Резултатът за играча се увеличава в зависимост от това кой е спечелил този конкретен рунд.
- Текущият код представлява един кръг от ходове, направени както от играча, така и от компютъра. Добавете целия текущ код с изключение на оператора за импортиране в нова функция 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}. Компютърът печели!") - Играчът и компютърът трябва да направят по три хода. Добавете глобална променлива, наречена "turns" в горната част на файла.
обороти = 3
- След функцията turn(), използвайте Python for цикъл да повторите кръга три пъти. В началото на всеки кръг отпечатайте числото на кръга. Извикайте функцията turn(), за да помолите играча и компютъра да направят своите ходове за този рунд.
за i в диапазон (завъртания):
печат("")
печат (f" Кръгъл {i+1}: ")
обръщам () - За да следите кой е спечелил всеки рунд, добавете променлива за резултат за всеки играч в горната част на файла. Ще присвоите стойности на тези променливи във функцията turn(), така че не забравяйте да ги използвате като глобални променливи.
computerScore = 0
playerScore = 0дефзавой():
глобален computerScore, playerScore - Във функцията turn(), след като и играчът, и компютърът са направили своя ход, добавете точка към резултата на победителя. Променете оператора if, за да увеличите стойността на променливата "playerScore" или "computerScore".
ако (движи[userChoice][бийтове] == компютърен избор):
печат (е"{userChoice} удари {computerChoice}. Вие печелите този кръг!")
playerScore += 1ако (движи[userChoice]['losesTo'] == компютърен избор):
печат (е"{userChoice} губи от {computerChoice}. Компютърът печели!")
computerScore += 1 - В края на функцията turn() отпечатайте актуализация на общите резултати за всеки играч.
# Отпечатайте актуализация на общите резултати след кръга
печат("")
печат (f"ТАБЛО | Резултат на играча: {playerScore} | Резултатът на компютъра: {computerScore}") - В самия край на играта и след цикъла for, който повтаря редовете на играча и компютъра, отпечатайте крайния победител.
печат("")
if (computerScore > playerScore):
печат (f"Компютърът печели с {computerScore} точки!")
елиф (playerScore > computerScore):
печат (f „Печелите с {playerScore} точки!")
друго:
печат (е „Равенство е! И двамата печелите с {playerScore} точки!")
Как да стартирате играта
За да играете играта, стартирайте скрипта на Python, като използвате терминал или команден ред. Въведете своя ход и изчакайте компютърът да направи своя. След като завършите три рунда, програмата ще покаже победителя.
- Отворете команден ред или терминал и отидете до папката, в която съхранявате вашия Python файл.
- Използвайте командата python, за да изпълните скрипта:
питонКамък ножица хартия.py
- Играйте играта, като въведете „камък“, „хартия“ или „ножица“.
Научете Python чрез създаване на игри
Създаването на прости игри като игра "Камък, хартия, ножици" е чудесен начин да се запознаете по-добре с концепциите за програмиране. Има толкова много други забавни игри, които можете да правите с помощта на Python, като например базирана на текст приключенска игра.