Оюн - бул адамдарга жеткиликтүү көңүл ачуунун бир түрү. Бардык түрдөгү оюндар онлайнда, мобилдик түзмөктөрдө, рабочий компьютерлерде ж.
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 жана такта (кат).
Ал "X" же "О" болушу керек. Жөн гана көрсөтүлгөн тамга тактадагы ар бир мүмкүн болуучу утуш сызыгында бар-жоктугун карап көрүңүз.
main ()
Оюнду баштоону каалаганда, биз бул ыкманы чакырабыз. Ал биздин программанын көптөгөн функцияларынын ар бирин чакырып, программанын кандайча иштеши керек экенин көрсөтөт.
isBoardFull()
Киргизүү катары бортко берилгенде, бул ыкма такта толгон болсо "True", башка учурда "False" деп кайтарат.
playerMove()
Бул ыкмада биз колдонуучудан жылдырууну суранып, аны текшеребиз. Эгерде кыймыл мыйзамдуу болсо, кат тактага кошулат. Болбосо, биз колдонуучунун пикирлерин сурай беребиз.
CompMove() – AI
AI азыр башталат. Компьютерлердин кыймылы ушул функция менен башкарылат. Ал коллегияга баа берип, эң жакшы кадамды тандайт.
Төмөндө биз бул үчүн колдоно турган алгоритмдердин тизмеси.
- Учурдагы кадамды аягына чыгаруу мүмкүн болбосо, кийинки кадамга өтүңүз.
- Мүмкүн болсо, жеңүүчү кадамга барыңыз.
- Эгерде оюнчуда жеңишке жетүү мүмкүн болсо, кийинки бурулушта ошол позицияга өтүңүз.
- Бир бурчту тандап, аны буруңуз. Бир нече варианттар бар болсо, туш келди тандаңыз.
- Өзүңдү ортого кой.
- Четтеринин бирин карап көрөлү. Бир нече варианттар бар болсо, туш келди тандаңыз.
- Эгер кыймылга жол жок болсо, оюн тең чыгуу менен аяктайт.
selectRandom()
Потенциалдуу жерлердин тизмесин эске алуу менен, бул функция кабыл алынуучу иш-аракетти туш келди тандайт.
Оюндун башталышы
Биз бардык тапшырмаларыбызды аткаргандан кийин оюнду азыр баштаса болот. Эгерде биз оюнду бир жолу иштеткибиз келсе, анда негизги чалышыбыз керек.
Бирок биздин шартта, колдонуучу ойногусу келбейт деп чечмейинче оюндун уланышын каалайбыз, андыктан негизги сапка кичинекей while циклин кошобуз.
Толук Code
Бул жерде биздин оюндун толук коду, ал азыр аяктады.
продукция
жыйынтыктоо
Hurray!
Сиз толугу менен нөлдөн баштап жасаган оюн. Бул биз үзгүлтүксүз ойной турган оюн эмес. Бирок бул логиканы жазууга жана коддун так структурасын сактоого жардам берет.
Бактылуу коддоо!
Таштап Жооп