Тоглоом бол хүмүүст зориулсан зугаа цэнгэлийн нэг хэлбэр юм. Бүх төрлийн тоглоомыг онлайнаар, хөдөлгөөнт төхөөрөмж, ширээний компьютер гэх мэтээр ашиглах боломжтой. Одоо эдгээр сорилттой тоглоомуудын нэгийг бүтээх цаг биш юм.
Python ашиглан бид CLI tic-tac-toe тоглоом хийх болно. Python-г ашиглан энгийн Tic Tac Toe тоглоом бүтээцгээе. Энэ нь тоглоомын логикийг бий болгох, кодыг хэрхэн зохион байгуулах талаар сурахад тань туслах болно.
Tic Tac Toe
Код бичиж эхлэхээсээ өмнө би тоглоомыг хурдан дүгнэж, түүнийг хөгжүүлэх төлөвлөгөөгөө ярилцъя гэж бодлоо.
Эхлээд бид X нь үргэлж санаачлагыг гартаа авч, түрүүлж хөдөлдөг гэсэн таамаглалыг бий болгож, хэрэглэгчдэд үйлдэл хийх боломжийг олгоно.
Консолоос 1-ээс 9 хүртэлх тоог оруулах болно. Тоо тус бүр өөр тоотой тохирч байгаа сүлжээнд (зүүн дээд талд 1, баруун доод талд 9 байна).
Хэрэглэгч хөдөлсний дараа компьютер автоматаар тодорхойлж, хөдөлгөөнөө хийх болно. Төрөл бүрийн горимуудыг дууддаг нэг үндсэн тоглоомын гогцоог би ашиглах болно.
Энэ текстэд суурилсан хичээлийн гарчиг бүрд аль функцийг дуусгаж байгааг зааж өгсөн байх.
Самбарыг зохион бүтээх
Өмнө нь хэлсэнчлэн бид самбараа сүлжээний схемийг ашиглан дүрслэх болно. Үүнийг хийхийн тулд бид Python-д board нэртэй жагсаалт гаргах бөгөөд энэ нь 10 хоосон утгуудаас эхэлнэ.
Хэрэглэгч 1-ээс 9-ыг биш 0-ээс 8 хүртэлх тоонуудыг оруулах боломжтой тул бидэнд 10 биш харин 9 хоосон утгатай байна. Тиймээс аливаа зүйлийг хялбарчлахын тулд бид жагсаалтынхаа эхний оруулгад "хоосон текст" гэсэн утгыг өгнө.
Ийм маягаар бид жагсаалтын оруулгуудыг индексжүүлэхийн тулд 1-9-ийн оронд 0-8-ийг ашиглаж болно.
үсэг оруулах()
Letter болон Pos нь энэ функцийн хоёр оролт болно. Энэ нь зөвхөн хүссэн захидлыг хүссэн газарт нь байрлуулах болно.
spaceIsFree(pos)
Энгийнээр хэлэхэд, энэ арга нь заасан газар чөлөөтэй байгаа эсэхийг бидэнд мэдэгдэх болно. Тиймээс тэнд захидал алга. Пос, түүний цорын ганц аргумент нь 1-ээс 9-ийн хоорондох бүхэл тоо байх болно.
хэвлэх самбар (самбар)
Самбарыг энэ аргын аргумент болгон илгээсэн бөгөөд үүнийг консол дээр харуулдаг.
isWinner()
Одоогийн самбар дээр үндэслэн энэ функц нь өгсөн захидал ялсан эсэхийг бидэнд мэдэгдэх болно. Энэ нь le болон самбар (үсэг) гэсэн хоёр параметртэй.
Энэ нь "X" эсвэл "O" байх ёстой. Самбар дээрх ялах боломжит мөр бүрт заасан үсэг байгаа эсэхийг шалгахад л хангалттай.
гол ()
Бид тоглоомыг эхлүүлэхийг хүсвэл энэ аргыг дуудах болно. Энэ нь манай программын олон функц бүрийг дуудаж, програм хэрхэн ажиллах ёстойг чиглүүлэх болно.
isBoardFull()
Хэрэв самбар дүүрсэн бол энэ арга нь Үнэн, эс бөгөөс худал гэсэн хариуг өгөх болно.
playerMove()
Энэ аргын хувьд бид хэрэглэгчээс нүүлгэх хүсэлт гаргаж, баталгаажуулах болно. Хэрэв нүүдэл нь хууль ёсны бол уг бичгийг самбарт нэмнэ. Үгүй бол бид хэрэглэгчийн санал хүсэлтийг үргэлжлүүлэн авах болно.
CompMove () - AI
AI одоо эхлэх болно. Компьютерийн хөдөлгөөнийг энэ функцээр удирдана. Энэ нь удирдах зөвлөлийг үнэлж, хамгийн сайн алхамыг сонгох болно.
Үүнийг хийхийн тулд бидний ашиглах алгоритмын жагсаалтыг доор харуулав.
- Хэрэв одоогийн алхмыг дуусгах боломжгүй бол дараах алхам руу шилжинэ үү.
- Боломжтой бол ялалтын нүүдлийг хий.
- Тоглогч хожсон нүүдэлтэй бол дараагийн ээлжинд тэр байрлал руу шилжинэ.
- Нэг булан сонгоод эргүүлээрэй. Хэд хэдэн сонголт байгаа бол санамсаргүй байдлаар сонгоно уу.
- Өөрийгөө дунд нь тавь.
- Нэг ирмэгийг авч үзье. Хэд хэдэн сонголт байгаа бол санамсаргүй байдлаар сонгоно уу.
- Хэрвээ хөдлөх арга байхгүй бол тоглолт тэнцээгээр дуусна.
санамсаргүй сонгох()
Боломжит байршлын жагсаалтыг өгвөл энэ функц нь санамсаргүй байдлаар хийх арга хэмжээг сонгох болно.
Тоглоомын эхлэл
Одоо бид бүх даалгавраа хийж дууссан тул тоглоомыг эхлүүлж болно. Хэрэв бид тоглоомыг нэг л удаа ажиллуулахыг хүсвэл main гэж залгахад л хангалттай.
Гэхдээ бидний нөхцөл байдалд хэрэглэгч цаашид тоглохыг хүсэхгүй байгаа гэж шийдэх хүртэл тоглоомыг үргэлжлүүлэхийг хүсч байгаа тул үндсэн мөрөнд жижиг while гогцоо нэмнэ.
Бүрэн код
Манай тоглоомын кодыг бүхэлд нь энд оруулав.
гаралтын
Дүгнэлт
Бөхийг!
Таны бүрэн эхнээс нь хийсэн тоглоом. Энэ бол бидний байнга тоглодог тоглоом биш. Гэхдээ энэ нь логик бичих, кодын тодорхой бүтцийг хадгалахад тусалдаг.
Кодлоход баяртай байна!
хариу үлдээх