Ойын – адамдарға қолжетімді ойын-сауықтың бір түрі. Барлық түрдегі ойындар онлайнда, мобильді құрылғыларда, үстел үсті компьютерлерде және т.б. қол жетімді. Қазір сол қиын ойындардың бірін жасайтын уақыт емес.
Python көмегімен біз CLI tic-tac-toe ойынын жасаймыз. Қарапайым Tic Tac Toe ойынын құру үшін Python-ды қолданайық. Ол сізге ойын логикасын жасауға және кодты ұйымдастыруды үйренуге көмектеседі.
Tic-Tac-Toe
Кодтауды бастамас бұрын мен ойынды тез қорытындылап, оны әзірлеу жоспарымды талқылаймын деп ойладым.
Біріншіден, Xs әрқашан бастаманы өз қолына алады және бірінші болып қозғалады, бұл пайдаланушыға әрекет ету мүмкіндігін береді деген болжам жасаймыз.
Консольден 1 мен 9 арасындағы сан енгізіледі. Әрбір сан басқа санға сәйкес келетін торда (жоғарғы сол жақта 1, төменгі оң жақта 9).
Пайдаланушы қозғалғаннан кейін компьютер автоматты түрде анықтайды және оның қозғалысын жасайды. Мен бірнеше түрлі тәртіптерді шақыратын бір негізгі ойын циклін қолданамын.
Қай функцияның аяқталып жатқаны осы мәтінге негізделген сабақтың әрбір тақырыбында көрсетілген болуы мүмкін.
Тақтаны жобалау
Мен бұрын көрсеткендей, біз тақтаны тор макетін пайдаланып бейнелейміз. Мұны істеу үшін Python тілінде тақта деп аталатын тізімді жасаймыз және ол 10 бос мәннен басталады.
Пайдаланушы 1-ден 9-ге дейін емес, 0-ден 8-ға дейінгі сандарды ғана енгізе алатындықтан, бізде 10 емес, 9 бос мән бар. Осылайша, заттарды жеңілдету үшін тізімдегі бірінші жазбаға «бос мәтін» мәнін береміз.
Осылайша, тізімдегі жазбаларды индекстеу үшін 1-9 орнына 0-8 пайдалана аламыз.
insertLetter()
Letter және Pos бұл функция үшін екі кіріс болады. Ол тек сұралған хатты сұралған жерге қояды.
spaceIsFree(pos)
Қарапайым сөзбен айтқанда, бұл әдіс көрсетілген аумақ бос болса, бізге хабарлайды. Демек, ол жерде хат жоқ. Пос, оның жалғыз аргументі 1 мен 9 арасындағы бүтін сан болады.
баспа тақтасы (тақта)
Тақта осы әдіске дәлел ретінде жіберіледі, ол оны консольде көрсетеді.
isWinner()
Қазіргі тақтаға сүйене отырып, бұл функция бізге берілген хаттың жеңіске жеткенін хабарлайды. Оның екі параметрі бар: le және board (әріп).
Ол «Х» немесе «О» болуы керек. Тақтадағы әрбір ықтимал ұтыс жолында көрсетілген әріптің бар-жоғын білу үшін жай қараңыз.
негізгі ()
Ойынды бастағымыз келгенде, біз бұл әдісті шақырамыз. Ол біздің бағдарламамыздың көптеген функцияларының әрқайсысын шақырады және бағдарламаның қалай жұмыс істейтінін бағыттайды.
isBoardFull()
Кіріс ретінде берілген кезде, бұл әдіс тақта толы болса, True мәнін береді, ал кері жағдайда False мәнін қайтарады.
playerMove()
Бұл әдісте біз пайдаланушыдан жылжытуды сұраймыз және оны растаймыз. Егер көшу заңды болса, хат тақтаға қосылады. Олай болмаса, біз пайдаланушының пікірін сұрауды жалғастырамыз.
CompMove() – AI
AI енді басталады. Компьютерлердің қозғалысы осы функция арқылы басқарылатын болады. Ол тақтаны бағалайды және ең жақсы қозғалысты таңдайды.
Төменде біз мұны істеу үшін қолданатын алгоритмдердің тізімі берілген.
- Ағымдағы қадамды аяқтау мүмкін болмаса, келесіге өтіңіз.
- Мүмкіндік болса, жеңіске жететін қадамды жасаңыз.
- Ойыншының ықтимал жеңіске жету мүмкіндігі болса, келесі айналымда сол орынға ауысыңыз.
- Бұрышты таңдап, оны бұраңыз. Бірнеше опция болса, кездейсоқ таңдаңыз.
- Өзіңізді ортаға қойыңыз.
- Шеттердің бірін қарастырыңыз. Бірнеше опция болса, кездейсоқ таңдаңыз.
- Қозғалыс жолы болмаса, ойын тең есеппен аяқталады.
таңдауRandom()
Ықтимал орындар тізімін ескере отырып, бұл функция орындалатын әрекетті кездейсоқ таңдайды.
Ойынның басталуы
Енді біз барлық тапсырмаларды орындап болған соң ойынды бастауға болады. Ойынды бір рет іске қосқымыз келсе, бізге негізгі қоңырау шалу керек.
Бірақ біздің жағдайымызда, пайдаланушы бұдан былай ойнағысы келмейтінін шешкенше ойынның жалғасуын қалаймыз, сондықтан негізгі жолға кішкене while циклін қосамыз.
Толық код
Міне, біздің ойынның толық коды, ол қазір аяқталды.
шығыс
қорытынды
Құйылсын!
Сіз толығымен нөлден жасаған ойын. Бұл біз тұрақты түрде ойнайтын ойын емес. Бірақ ол логиканы жазуға және кодта нақты құрылымды сақтауға көмектеседі.
Кодтау құтты болсын!
пікір қалдыру