Pelaaminen on yksi ihmisten saatavilla oleva viihdemuoto. Kaikenlaisia pelejä on saatavilla verkossa, mobiililaitteilla, pöytätietokoneilla jne. Nyt ei ole oikea aika luoda yhtä näistä haastavista peleistä.
Pythonilla teemme CLI tic-tac-toe -pelin. Rakennataanpa Pythonilla yksinkertainen Tic Tac Toe -peli. Se auttaa sinua luomaan pelilogiikkaa ja oppimaan järjestämään koodia.
Ristinolla
Ennen kuin aloitamme koodauksen, ajattelin tehdä nopeasti yhteenvedon pelistä ja keskustella suunnitelmastani sen kehittämiseksi.
Ensin vahvistetaan oletus, että X:t tekevät aina aloitteen ja liikkuvat ensin, jolloin käyttäjällä on mahdollisuus toimia.
Konsolista syötetään numero väliltä 1-9. Ruudukkossa, jossa jokainen numero vastaa eri numeroa (vasen yläkulma on 1, oikea alakulma on 9).
Tietokone määrittää ja tekee liikkeensä automaattisesti, kun käyttäjä liikkuu. Käytän yhtä ensisijaista pelisilmukkaa, joka kutsuu useita erilaisia rutiineja.
Mikä toiminto on valmistumassa, on luultavasti osoitettu tämän tekstipohjaisen oppitunnin jokaisessa otsikossa.
Taulun suunnittelu
Kuvaamme taulumme ruudukkoasettelulla, kuten aiemmin mainitsin. Teemme tätä varten luettelon nimeltä board Pythonissa, ja se alkaa 10 tyhjällä arvolla.
Koska käyttäjä voi syöttää vain numeroita 1–9, ei 0–8, meillä on 10 tyhjää arvoa 9:n sijaan. Joten asioiden yksinkertaistamiseksi annamme luettelomme ensimmäiselle merkinnälle arvon "tyhjä teksti".
Tällä tavalla voimme käyttää 1–9 numeroiden 0–8 sijaan indeksoidaksemme luettelomme kohdat.
insertLetter()
Letter ja Pos ovat tämän toiminnon kaksi tuloa. Se sijoittaa vain pyydetyn kirjeen pyydettyyn paikkaan.
spaceIsFree(pos)
Yksinkertaisesti sanottuna tämä menetelmä ilmoittaa meille, jos määritetty alue on vapaa. Siksi siellä ei ole jo kirjettä. Pos, sen ainoa argumentti, on kokonaisluku väliltä 1-9.
tulostustaulu (taulu)
Taulu lähetetään argumenttina tälle menetelmälle, joka näyttää sen konsolissa.
on Voittaja()
Nykyisen taulun perusteella tämä toiminto ilmoittaa meille, jos toimitettu kirje on voittanut. Siinä on kaksi parametria: le ja board (kirjain).
Sen on oltava "X" tai "O". Katso vain, onko määritetty kirjain jokaisella mahdollisella voittolinjalla laudalla.
main ()
Kun haluamme aloittaa pelin, kutsumme tätä menetelmää. Se kutsuu jokaista ohjelmamme monista toiminnoista ja ohjaa kuinka ohjelman on tarkoitus toimia.
isBoardFull()
Kun tämä menetelmä annetaan syötteenä, tämä menetelmä palauttaa yksinkertaisesti True, jos taulu on täynnä, ja False muussa tapauksessa.
playerMove()
Tässä menetelmässä pyydämme käyttäjältä siirtoa ja vahvistamme sen. Kirje lisätään taululle, jos siirto on laillinen. Jos ei, pyydämme edelleen käyttäjältä palautetta.
CompMove() – AI
Tekoäly alkaa nyt. Tämä toiminto ohjaa tietokoneiden liikettä. Se arvioi hallituksen ja valitsee parhaan liikkeen.
Seuraavassa on luettelo algoritmeista, joita käytämme tähän.
- Jos nykyistä vaihetta ei voida suorittaa loppuun, siirry seuraavaan.
- Ota voittosiirto, jos voit.
- Siirry kyseiseen asentoon seuraavalla kierroksella, jos pelaajalla on mahdollisesti voittosiirto.
- Valitse kulma ja käännä se. Valitse satunnaisesti, jos vaihtoehtoja on useita.
- Aseta itsesi keskelle.
- Harkitse yhtä reunaa. Valitse satunnaisesti, jos vaihtoehtoja on useita.
- Jos et pääse liikkumaan, peli päättyy tasapeliin.
select Random()
Tämä toiminto valitsee satunnaisesti haluamasi toiminnon, kun annetaan luettelo mahdollisista paikoista.
Pelin Alku
Peli voidaan nyt aloittaa nyt, kun olemme suorittaneet kaikki tehtävämme. Meidän tarvitsee vain soittaa main, jos haluamme vain ajaa pelin kerran.
Mutta meidän tilanteessamme haluamme pelin jatkuvan, kunnes käyttäjä päättää, ettei hän enää halua pelata, joten lisäämme pienen while-silmukan pääriville.
Täydellinen koodi
Tässä on pelimme koko koodi, joka on nyt valmis.
ulostulo
Yhteenveto
Hurraa!
Peli, jonka loit kokonaan tyhjästä. Se ei ole peli, jota pelaamme säännöllisesti. Mutta se auttaa logiikan kirjoittamisessa ja selkeän rakenteen ylläpitämisessä koodissa.
Hyvää koodausta!
Jätä vastaus