Овај једноставан водич за игру ће вам помоћи да вежбате основе Питхон програмирања.
Прављење игре „Камен, папир, маказе“ у Питхон-у је одличан начин да унапредите своје вештине програмирања. Можете креирати игру помоћу једне Питхон скрипте и играти је на командној линији.
Игра почиње тако што се од играча тражи избор: "камен", "папир" или "маказе". Затим чека да унесу свој одговор. Можете да играте игру против "компјутерског" играча, који ће аутоматски изабрати свој потез.
Игра такође може укључивати много рунди. Дакле, чак и ако изгубите у првом кругу, и даље можете покушати да добијете две од три!
Како подесити игру и питати играча за њихов потез
Када игра почне, Питхон програм треба да затражи од играча да унесе или "камен", "папир" или "маказе" и да узме у обзир играчев одговор. Да бисте подесили нову игру, почните креирањем нове Питхон датотеке са екстензијом .пи.
Комплетан код за овај водич је доступан у ГитХуб спремиште.
- Креирајте нову датотеку под називом РоцкПаперСциссорс.пи.
- Отворите нову Питхон датотеку користећи било који уређивач текста, као што је Нотепад++ или Висуал Студио Цоде.
- На врху датотеке увезите насумични модул. Ово ћете користити касније у игри да насумично изаберете потез за рачунар.
увоз насумично
- Представите поруку играчу, тражећи од њега да унесе камен, папир или маказе.
усерЦхоице = инпут(„Камен, папир или маказе? ").ловер()
- Иницијализујте низ под називом "мовеОптионс" који чува листу доступних потеза које можете да играте или ви или рачунар.
мовеОптионс = ['рок', 'папир', 'маказе']
- Када играч унесе унос, потврдите га да бисте били сигурни да је то један од доступних потеза. Када играч унесе исправан потез, одштампајте поруку за потврду.
док (кориснички избор није ин мовеОптионс):
усерЦхоице = инпут(„Неисправан избор. Мора бити камен, папир или маказе: ").ловер()
принт("")
штампа (ф" Ти си изабрао {усерЦхоице}.")
Како се смењивати са рачунаром и упоређивати потезе
Када унесете свој потез, рачунар ће доћи на ред насумично бирајући или "камен", "папир" или "маказе". Игра ће затим морати да упореди ваш потез са потезом рачунара да би утврдила ко је победио.
- Користите насумични модул да натерате рачунар да насумично бира са листе доступних потеза.
цомпутерЦхоице = рандом.цхоице (мовеОптионс)
штампа (ф"Компјутер је изабрао {цомпутерЦхоице}.") - Мораћете да упоредите свој потез са потезом рачунара да бисте утврдили ко је победио. То можете учинити тако што ћете направити нови речник. Овај речник садржи сваки потез (на пример, „камен“) и од којег потеза добија или губи (на пример, „камен“ побеђује „маказе“ и губи од „папира“).
потези = {
'рок': { 'откуцаји': 'маказе', 'лосесТо': 'папир' },
'маказе': { 'откуцаји': 'папир', 'лосесТо': 'рок' },
'папир': { 'откуцаји': 'рок', 'лосесТо': 'маказе' },
} -
Користите Питхон иф наредбу да проверите да ли ваш потез и потез рачунара резултирају нерешеним резултатом. У супротном, користите речник потеза да упоредите потез играча са потезом рачунара.
На пример, ако сте изабрали "камен", онда би вредност потеза[усерЦхоице]['беатс'] била "маказе". Ако је избор рачунара био "маказе", то значи да је ваш потез победио њихов.ако усерЦхоице == цомпутерЦхоице:
штампа (ф"И ви и компјутер сте изабрали {усерЦхоице}. То је кравата!")
друго:
ако (помера[усерЦхоице]['откуцаји'] == компјутерски избор):
штампа (ф"{усерЦхоице} откуцаја {цомпутерЦхоице}. Ти си победник!")
ако (помера[усерЦхоице]['лосесТо'] == компјутерски избор):
штампа (ф"{усерЦхоице} губи на {цомпутерЦхоице}. Компјутер побеђује!")
Како задржати резултат између играча и рачунара између више рунди
Такође можете додати додатне рунде, где ви и рачунар правите по три окрета.
Када ви и рачунар одаберете камен, папир или маказе, игра ће вас поново питати и пратити ваше резултате. Резултат за играча се повећава на основу тога ко је победио у тој рунди.
- Тренутни код представља један круг окрета који су направили и играч и рачунар. Додајте сав тренутни код осим наредбе импорт унутар нове функције турн(). Такође можете да промените излазне поруке у складу са тим, да кажете „Победио си у овој рунди“ уместо „Победио си“:
дефред():
усерЦхоице = инпут(„Камен, папир или маказе? ").ловер()мовеОптионс = ['рок', 'папир', 'маказе']
док (кориснички избор није ин мовеОптионс):
усерЦхоице = инпут(„Неисправан избор. Мора бити камен, папир или маказе: ").ловер()принт("")
штампа (ф" Ти си изабрао {усерЦхоице}.")цомпутерЦхоице = рандом.цхоице (мовеОптионс)
штампа (ф"Компјутер је изабрао {цомпутерЦхоице}.")потези = {
'рок': { 'откуцаји': 'маказе', 'лосесТо': 'папир' },
'маказе': { 'откуцаји': 'папир', 'лосесТо': 'рок' },
'папир': { 'откуцаји': 'рок', 'лосесТо': 'маказе' },
}ако усерЦхоице == цомпутерЦхоице:
штампа (ф"И ви и компјутер сте изабрали {усерЦхоице}. То је кравата!")
друго:
ако (помера[усерЦхоице]['откуцаји'] == компјутерски избор):
штампа (ф"{усерЦхоице} откуцаја {цомпутерЦхоице}. Победио си у овој рунди!")ако (помера[усерЦхоице]['лосесТо'] == компјутерски избор):
штампа (ф"{усерЦхоице} губи на {цомпутерЦхоице}. Компјутер побеђује!") - Играч и рачунар добијају по три окрета. Додајте глобалну променљиву под називом "турнс" на врх датотеке.
окрета = 3
- Након функције турн(), користите Питхон фор петљу да се круг понови три пута. На почетку сваког круга одштампајте број круга. Позовите функцију турн() да замолите играча и рачунар да направе своје потезе за ту рунду.
за и у домету (окрети):
принт("")
штампа (ф" Округли {и+1}: ")
ред() - Да бисте пратили ко је победио у свакој рунди, додајте променљиву резултата за сваког играча на врх датотеке. Овим променљивим ћете доделити вредности унутар функције турн(), па се побрините да их користите као глобалне променљиве.
компјутерски резултат = 0
резултат играча = 0дефред():
глобално цомпутерСцоре, плаиерСцоре - Унутар функције турн(), када и играч и рачунар повуку потез, додајте поен резултату победника. Измените иф наредбу да повећате вредност променљиве „плаиерСцоре“ или „цомпутерСцоре“.
ако (помера[усерЦхоице]['откуцаји'] == компјутерски избор):
штампа (ф"{усерЦхоице} откуцаја {цомпутерЦхоице}. Победио си у овој рунди!")
резултат играча += 1ако (помера[усерЦхоице]['лосесТо'] == компјутерски избор):
штампа (ф"{усерЦхоице} губи на {цомпутерЦхоице}. Компјутер побеђује!")
компјутерски резултат += 1 - На крају функције турн() одштампајте ажурирање укупних резултата за сваког играча.
# Штампајте ажурирање укупних резултата након рунде
принт("")
штампа (ф"ТАБЛА | Резултат играча: {плаиерСцоре} | Рачун рачунара: {цомпутерСцоре}") - На самом крају игре, а након фор петље која понавља окрете играча и рачунара, одштампајте коначног победника.
принт("")
иф (цомпутерСцоре > плаиерСцоре):
штампа (ф"Компјутер побеђује са {цомпутерСцоре} бодова!")
елиф (плаиерСцоре > цомпутерСцоре):
штампа (ф"Побеђујете са {плаиерСцоре} бодова!")
друго:
штампа (ф"То је нерешено! Обојица побеђујете са {плаиерСцоре} бодова!")
Како покренути игру
Да бисте играли игру, покрените Питхон скрипту помоћу терминала или командне линије. Унесите свој потез и сачекајте да рачунар учини свој. Када завршите три рунде, програм ће приказати победника.
- Отворите командну линију или терминал и идите до фасцикле у којој чувате своју Питхон датотеку.
- Користите команду питхон да покренете скрипту:
питхонРоцкПаперСциссорс.пи
- Играјте игру тако што ћете унети 'камен', 'папир' или 'маказе'.
Научите Питхон креирањем игара
Прављење једноставних игара као што је игра „Камен, папир, маказе“ је одличан начин да се боље упознате са концептима програмирања. Постоји толико много других забавних игара које можете направити користећи Питхон, као што је текстуална авантуристичка игра.