Mae hapchwarae yn un math o adloniant sydd ar gael i bobl. Mae gemau o bob math ar gael ar-lein, ar ddyfeisiau symudol, ar gyfrifiaduron bwrdd gwaith, ac ati. Nid nawr yw'r amser i greu un o'r gemau heriol hynny.
Gan ddefnyddio Python, byddwn yn gwneud gêm tic-tac-toe CLI. Gadewch i ni ddefnyddio Python i adeiladu gêm Tic Tac Toe syml. Bydd yn eich cynorthwyo i greu rhesymeg gêm a dysgu sut i drefnu cod.
Tic-Tac-Toe
Cyn i ni ddechrau codio, roeddwn i'n meddwl y byddwn i'n crynhoi'r gêm yn gyflym ac yn trafod fy nghynllun ar gyfer ei datblygu.
Yn gyntaf, byddwn yn sefydlu'r rhagdybiaeth bod Xs bob amser yn cymryd yr awenau ac yn symud yn gyntaf, gan roi cyfle i'r defnyddiwr weithredu.
O'r consol, bydd rhif rhwng 1 a 9 yn cael ei fewnbynnu. Mewn grid lle mae pob rhif yn cyfateb i rif gwahanol (chwith uchaf yw 1, gwaelod dde yw 9).
Bydd y cyfrifiadur yn pennu ac yn symud yn awtomatig unwaith y bydd y defnyddiwr yn symud. Bydd un ddolen gêm gynradd sy'n galw nifer o arferion amrywiol yn cael ei defnyddio gennyf i.
Mae'n debyg bod pob swyddogaeth sy'n cael ei chwblhau wedi'i nodi ym mhob pennawd yn y wers hon sy'n seiliedig ar destun.
Dylunio Bwrdd
Byddwn yn darlunio ein bwrdd gan ddefnyddio cynllun grid, fel y nodais yn flaenorol. Byddwn yn gwneud rhestr o'r enw bwrdd yn Python i wneud hyn, a bydd yn dechrau gyda 10 gwerth gwag.
Gan mai dim ond rhifau 1 i 9 y gall y defnyddiwr eu nodi, nid 0 trwy 8, mae gennym 10 o werthoedd gwag yn hytrach na 9. Felly, er mwyn symleiddio pethau, byddwn yn rhoi'r gwerth “testun gwag” i gofnod cyntaf ein rhestr.
Yn y modd hwn, gallwn ddefnyddio 1–9 yn lle 0–8 i fynegeio’r cofnodion yn ein rhestr.
mewnosod llythyr()
Llythyren a Phos fydd y ddau fewnbwn ar gyfer y swyddogaeth hon. Bydd ond yn rhoi'r llythyr y gofynnwyd amdano yn y lleoliad y gofynnwyd amdano.
spaceIsFree(pos)
Wedi'i ddweud yn syml, bydd y dull hwn yn ein hysbysu os yw'r ardal benodol yn rhad ac am ddim. Felly, nid oes llythyr yno eisoes. Pos, ei hunig ddadl, fydd cyfanrif rhwng 1 a 9.
bwrdd argraffu (bwrdd)
Anfonir y bwrdd fel dadl i'r dull hwn, sy'n ei arddangos ar y consol.
yn Enillydd()
Yn seiliedig ar y bwrdd presennol, bydd y swyddogaeth hon yn rhoi gwybod i ni os yw'r llythyr a ddarparwyd wedi ennill. Mae ganddo ddau baramedr: le a bwrdd (llythyr).
Mae'n rhaid iddo fod yn "X" neu'n "O." Yn syml, edrychwch i weld a yw'r llythyren benodedig yn bresennol ar bob llinell fuddugol bosibl ar y bwrdd.
prif ()
Pan fyddwn am ddechrau'r gêm, byddwn yn galw'r dull hwn. Bydd yn galw pob un o swyddogaethau niferus ein rhaglen ac yn cyfeirio sut mae'r rhaglen i fod i redeg.
ynLlawn()
Pan gaiff ei roi ar fwrdd fel mewnbwn, bydd y dull hwn yn dychwelyd Gwir os yw'r bwrdd yn llawn ac yn Anghywir fel arall.
symud chwaraewr()
Yn y dull hwn, byddwn yn gofyn am symud gan y defnyddiwr ac yn ei ddilysu. Bydd y llythyr yn cael ei ychwanegu at y bwrdd os yw'r symudiad yn gyfreithlon. Os na, byddwn yn parhau i ofyn am adborth y defnyddiwr.
CompMove() – AI
Bydd yr AI nawr yn dechrau. Bydd symudiad y cyfrifiaduron yn cael ei reoli gan y swyddogaeth hon. Bydd yn gwerthuso'r bwrdd ac yn dewis y cam gorau i'w wneud.
Yn dilyn mae rhestr o'r algorithm y byddwn yn ei ddefnyddio i wneud hyn.
- Os na ellir gorffen y cam presennol, symudwch ymlaen i'r un canlynol.
- Cymerwch y symudiad buddugol os gallwch chi.
- Symudwch i'r safle hwnnw ar y tro canlynol os oes gan y chwaraewr symudiad a allai fod yn fuddugol.
- Dewiswch gornel a'i throi. Dewiswch ar hap os oes sawl opsiwn.
- Rhowch eich hun yn y canol.
- Ystyriwch un o'r ymylon. Dewiswch ar hap os oes sawl opsiwn.
- Os nad oes unrhyw ffordd i symud, mae'r gêm yn gorffen mewn gêm gyfartal.
dewis Ar hap()
O gael rhestr o leoliadau posibl, bydd y swyddogaeth hon yn dewis ar hap y camau i'w cymryd.
Cychwyn y Gêm
Gellir dechrau'r gêm nawr nawr ein bod ni wedi gorffen ein holl dasgau. Y cyfan y byddai angen i ni ei wneud yw galw prif os ydym am redeg y gêm unwaith yn unig.
Ond yn ein sefyllfa ni, rydyn ni am i'r gêm barhau i redeg nes bod y defnyddiwr yn penderfynu nad ydyn nhw eisiau chwarae mwyach, felly byddwn ni'n ychwanegu dolen fach fach i'r brif linell.
Cod Cwblhau
Dyma'r cod cyfan ar gyfer ein gêm, sydd bellach wedi'i gwblhau.
Allbwn
Casgliad
Brysiwch!
Gêm rydych chi wedi'i gwneud yn gyfan gwbl o'r dechrau. Nid yw’n gêm yr ydym yn ei chwarae’n rheolaidd. Ond mae'n helpu i ysgrifennu rhesymeg a chynnal strwythur clir yn y cod.
Codio hapus!
Gadael ymateb