Бозӣ як намуди фароғатест, ки барои одамон дастрас аст. Бозиҳои ҳама намуди онлайн, дар дастгоҳҳои мобилӣ, дар компютерҳои мизи корӣ ва ғайра дастрасанд. Ҳоло вақти сохтани яке аз он бозиҳои душвор нест.
Бо истифода аз Python, мо як бозии CLI tic-tac-toe месозем. Биёед Python-ро барои сохтани бозии мустақими Tic Tac Toe истифода барем. Он ба шумо дар эҷоди мантиқи бозӣ ва омӯхтани тарзи ташкили код кӯмак мекунад.
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 хоҳад буд.
тахтаи чоп (тахта)
Раёсат ҳамчун далел ба ин усул фиристода мешавад, ки онро дар консол намоиш медиҳад.
аст Winner()
Дар асоси тахтаи мазкур, ин функсия ба мо хабар медиҳад, ки оё номаи пешниҳодшуда ғолиб шудааст. Он ду параметр дорад: le ва board (нома).
Он бояд "X" ё "O" бошад. Танҳо бубинед, ки оё ҳарфи нишондодашуда дар ҳар як хати ғолиби тахта мавҷуд аст ё не.
асосӣ ()
Вақте ки мо мехоҳем бозӣ оғоз кунем, мо ин усулро даъват мекунем. Он ҳар як функсияи сершумори барномаи моро даъват мекунад ва нишон медиҳад, ки барнома чӣ гуна бояд иҷро шавад.
isBoardFull()
Вақте ки ба киштӣ ҳамчун вуруд дода мешавад, ин усул танҳо бармегардад True, агар тахта пур бошад ва дар акси ҳол, False.
playerMove()
Дар ин усул, мо аз корбар интиқол дархост мекунем ва онро тасдиқ мекунем. Агар ҳаракат қонунӣ бошад, мактуб ба шӯро илова карда мешавад. Дар акси ҳол, мо дархости фикру мулоҳизаҳои корбарро идома медиҳем.
CompMove () - AI
AI ҳоло оғоз мешавад. Ҳаракати компютерҳо тавассути ин функсия идора карда мешавад. Он шӯроро арзёбӣ мекунад ва беҳтарин ҳаракатро интихоб мекунад.
Дар зер рӯйхати алгоритмҳое оварда шудааст, ки мо барои ин кор истифода мебарем.
- Агар қадами ҷорӣ анҷом дода нашавад, ба қадами зерин гузаред.
- Агар тавонед, ҳаракати ғолибро гиред.
- Дар навбати зерин ба ин мавқеъ ҳаракат кунед, агар плеер як иқдоми эҳтимолии ғолиб дошта бошад.
- Як кунҷеро интихоб кунед ва онро гардонед. Агар якчанд вариант мавҷуд бошад, ба таври тасодуфӣ интихоб кунед.
- Худро дар миёна ҷойгир кунед.
- Яке аз кунҷҳоро баррасӣ кунед. Агар якчанд вариант мавҷуд бошад, ба таври тасодуфӣ интихоб кунед.
- Агар роҳи ҳаракат набошад, бозӣ бо ҳисоби мусовӣ анҷом меёбад.
интихоб Random()
Бо назардошти рӯйхати маконҳои эҳтимолӣ, ин функсия ба таври тасодуфӣ амалеро, ки андешида мешавад, интихоб мекунад.
Оғози Бозӣ
Ҳоло, ки мо ҳамаи вазифаҳои худро анҷом додем, бозӣ метавонад оғоз шавад. Агар мо танҳо мехостем, ки бозӣ як маротиба иҷро кунем, ба мо танҳо занг задан лозим аст.
Аммо дар вазъияти мо, мо мехоҳем, ки бозӣ то он даме, ки корбар тасмим нагирад, ки онҳо дигар бозӣ кардан намехоҳанд, идома ёбад, аз ин рӯ мо ба хати асосӣ як ҳалқаи ночизи while илова мекунем.
Кодекси пурра
Дар ин ҷо тамоми рамзи бозии мост, ки ҳоло пурра аст.
Натиҷаи
хулоса
Ҳурайя!
Бозие, ки шумо комилан аз сифр сохтаед. Ин бозӣ нест, ки мо мунтазам бозӣ мекунем. Аммо он дар навиштани мантиқ ва нигоҳ доштани сохтори равшан дар код кӯмак мекунад.
Рамзгузории хушбахт!
Дин ва мазҳаб