Milyen játékot vagy projektet készítsek (pascal)?
Szívesen, de azért megvan a magam haszna is a dolgon... Az ilyesféle kalandok segítenek átgondolni olyan problémákat vagy megoldásokat, amelybe egyébként talán bele se botlanék. Amit sikerül más számára is érthető módon megfogalmaznom, azt talán én is értem...
Ha nem is túl sokáig, de engedelmeddel még babrálok ezzel a dologgal, kisébb érdekességek még várhatók.
Ami a tic-tac-toe-t illeti, semmit az égegyadta világon.
Számomra az egész diskurzusból az jött le, hogy Kérdező problémái még messze innen vannak attól a ponttól, ahol a te helyénvaló tanácsaid haszonnal forgathatók. A programja alapján az a furcsa érzésem támadt, hogy egy csomó dolog _létezését_ megtanulta, a használatuk módjáról és értelméről viszont sejtelme sincs. Én a program ürügyén megpróbálok valamennyit felépíteni a láthatóan hiányzó alapokból, de magával a játékkal nem foglalkozom.
Most még a változókról van hátra némi mondandóm, meg tervezem, hogy szecskát csinálok egy szintén kezdő által írt hasonló programból is, hogy Kérdező ismét okosnak érezze magát. Nagyjából ennyi lenne a babrálás.
"A dolog megértéséhez annyit kell tudni, hogy a feltételvizsgálatokból ismerős AND tulajdonképpen egy matematikai művelet, amely a számok bitjeinek azonosságát vizsgálja. Nézz utána, ha nem tudod, hogy ez hogy megy, itt legyen elég annyi, hogy például a xo[0,0] and xo[0,1] and xo[0,2] kifejezés értéke csak akkor egyenlő TURN értékével, ha a vizsgált tömbelemek mindegyike TURN értékű."
Ez így nem igaz. Az ÉS művelet eredménye az összes bit 1-es (magas) értékénél 1 csak.
A te vizsgálatodban egy "010"-ra az AND-es kifejezés 0-t adna, ami 0-ás TURN-nél igaz kifejezést eredményez, holott a "010" minta esetén senki nem győzött.
Érdemesebb lenne akkor már az állást tároló tömbben az alábbi kódolást alkalmazni:
0: üres cella, 1: játékos#1 jele, -1: játékos#2 jele.
Ekkor lehet azt csinálni, hogy
(tömb[0, 0] + tömb[0, 1] + tömb[0, 2]) * turn = 3
ha a turn = 1, ha játékos#1 rakott, turn = -1, ha játékos#2 rakott.
Ha ugyanis kijött egy sor, akkor az összeg értéke 3, vagy -3. Ekkor azonos előjelű szorzat (összeg = 3, turn = 1; VAGY összeg = -3, turn = -1) esetén a szorzat 3. Minden más esetben az eredmény nem lesz 3.
De egyébként elég azt nézni, turn-től függetlenül, hogy az összeg abszolút értéke 3-e.
Kedves Srapnel!
Az általam közölt programváltozatban TURN értéke csak 1 vagy 2 lehet, tehát a véletlen nullaegyezés nem állhat elő. Elnézést, ha a szavaimból at derült volna ki, hogy ez általános estben is igaz. Ez a két érték egyébként az esetlegessége miatt nekem sem rokonszenves, csak Kérdező illetve a másik szerző elemzett programjaihoz igazodva használtam őket. Az eredetileg írt programom ( [link] megoldása gyakorlatilag megegyezik az általad javasolttal: +1, -1, és összeadások :)
Nem t'om, IE-ben nekem is zöld, másképp értelmezheti a stílusfájlt. Az is lehet, hogy én írtam benne félre valamit, és az egyik böngésző kihagyja a problémás részt, a másik megpróbálja értelmezni, és sikerül neki.
Majd megnézem alaposabban.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!