Sakk tábla készítése c-ben
2011-11-08T15:31:37+01:00
2011-11-08T21:45:40+01:00
2022-07-19T04:53:02+02:00
  • Igen ez lesz az,ez volt csak 8*8-ba :))))
    Mutasd a teljes hozzászólást!
  • mivel 1 kép többet ér 1000 szónál (tfh. a TÁBLA_MÉRETE == 4; MEZŐ_MÉRETE == 3):

    oszlop == 0 | oszlop == 1 | | oszlop == 2 | | | oszlop == 3 | | | | sor == 0 mező_sor == 0 XXX XXX mező_sor == 1 XXX XXX mező_sor == 2 XXX XXX sor == 1 mező_sor == 0 XXX XXX mező_sor == 1 XXX XXX mező_sor == 2 XXX XXX sor == 2 mező_sor == 0 XXX XXX mező_sor == 1 XXX XXX mező_sor == 2 XXX XXX sor == 3 mező_sor == 0 XXX XXX mező_sor == 1 XXX XXX mező_sor == 2 XXX XXX ||| mező_oszlop == 0|| mező_oszlop == 1| mező_oszlop == 2

    remélem érthető...
    Mutasd a teljes hozzászólást!
  • "
    Huha egy kicsit most elvesztettem a fonalat,azért köszi mégegyszer...
    "

    az 1 mező = 1 karakter algoritmusát érted?

    ez gyakorlatilag "ugyanaz":

    + a "sor" ciklusban végigmegyünk a sakktábla sorain,
    + mivel egy sor nem egy karaktersorból áll, hanem többől (és úgy-e írtad, hogy tömböt nem használhatsz), ezért többször íratunk ki minden egyes sort, pontosabban mondva MEZŐ_MÉRETE-szer,
    + az "oszlop" ciklusban egy sor egy karaktersorán megyünk végig, az egyszerűség kedvéért kiszámoljuk, hogy az adott mezőn milyen karakterképet kell kiírnunk,
    + mivel minden egyes mező (oszlopa) sem egy karakterből áll, ezért az előbbiek alapján itt is egy ciklust használunk, viszont itt már ez a "rész" ugyanabból, az előzőleg kiszámolt karakterképből fog állni, azaz egymás mellé kiírunk MEZŐ_MÉRETE darab 'X'-et vagy szóközt,
    + minden egyes teljes karaktersor után kiírunk egy soremelés karaktert,
    röviden ennyi...

    "
    Ha felmerül valami probléma tudsz majd még segíteni?
    "
    ha esetleg nem is én, de biztos akad majd valaki...
    Mutasd a teljes hozzászólást!
  • Huha egy kicsit most elvesztettem a fonalat,azért köszi mégegyszer még apukámmal megnézzük,hogyjóesz-e.Ha felmerül valami probléma tudsz majd még segíteni?
    Mutasd a teljes hozzászólást!
  • "
    A kockák több karakterből állnak,de csak a fehér kockákra igaz,mert a feketék helyén nincs semmi vagyis ott space vagy enter szerűség lehet,ez is gond ,mert nem tudom hogyan kell azt kihagyni.
    "

    szerintem ekkor a feketék helyére is több szóközt kell kiírni, mert egyébként vizuálisan "nehezen értelmezhető" a sakktábla-minta (illetve, ha még oszloponként be is tartanád az "egy fekete-egy szóköz, de egy fehér-sok X" szabályt, akkor kérdéses, hogy a sorokkal mi legyen, hiszen azokat egyforma magasságban akarod kiírni nem?)

    vázlat:

    for (sor = 0; sor < TÁBLA_MÉRETE; ++sor) for (mező_sor = 0; mező_sor < MEZŐ_MÉRETE; ++mező_sor) { for (oszlop = 0; oszlop < TÁBLA_MÉRETE; ++oszlop) { mező_karakter = (sor + oszlop) % 2 ? 'X' : ' '; for (mező_oszlop = 0; mező_oszlop < MEZŐ_MÉRETE; ++mező_oszlop) putchar(mező_karakter); } putchar('\n'); }

    szerkesztve: TÁBLA_MÉRETE gondolom 8, a MEZŐ_MÉRETE meg az első hozzászólásod alapján szintén 8,

    szerkesztés szerkesztése: ha nagyon akarod, akkor egy ciklussal is meg tudod írni (meg explicit ciklus nélkül is, azaz rekurzióval), de szerintem talán így a legátláthatóbb,
    Mutasd a teljes hozzászólást!
  • Köszi a segítséget,már ez is nagy előre lépés. A kockák több karakterből állnak,de csak a fehér kockákra igaz,mert a feketék helyén nincs semmi vagyis ott space vagy enter szerűség lehet,ez is gond ,mert nem tudom hogyan kell azt kihagyni.
    Mutasd a teljes hozzászólást!
  • melyik része nem megy?

    ciklus (0-tól N-1-ig):

    int i; for (i = 0; i < N; ++i) utasítás;

    egy mező kiírása egy karakterrel:
    putchar((sor_száma + oszlop_száma) % 2 ? 'X' : ' ');

    gondolom e kettőből már össze tudod rakni (értelemszerűen a sor_száma és az oszlop_száma helyébe a két ciklusváltozódat írjad, meg egy-egy sor végén írjál ki egy soremelést is: '\n')

    apropó, nem vagyok otthon sakkban, ezért nem tudom, hogy melyik mezőnek kellene a "bal felső" sarokba kerülnie, azaz előfordulhat, hogy fel kell cserélned a két karaktert,

    szerkesztve: ha persze egy mező nem egy karakterből áll (nekem még mindig nem egyértelmű), akkor további ciklusokra van szükséged...
    Mutasd a teljes hozzászólást!
  • Le tudnád írni a programot?
    Nagy segítség lenne,mert bent nagyon senki se tudta megcsinálni...
    Mutasd a teljes hozzászólást!
  • Szia ! Igen elcsúszott 1 kicsit megpróbálom még 1x.

    tehát:

    xxx xxx
    xxx xxx
    xxx
    xxx

    így tovább,ha nem csúszott el megint
    Mutasd a teljes hozzászólást!
  • például:
    egy ciklussal végigmész a sorokon, minden egyes ciklusban végigmész az oszlopokon, és "felváltva írogatod a "kockákat" (vagy ez utóbbit úgy is csinálhatod, hogy az aktuális sor- és oszlopindexből számolod, hogy vajon milyen mezőn vagy, például azok összegének párosságát vizsgálva),

    az ábrárat nem igazán tudtam értelmezni...
    Mutasd a teljes hozzászólást!
  • Sziasztok! Most kezdtünk el a suliban foglalkozni a c-vel,és föladtak egy feladatot ,h csináljunk 1 sakk táblát for ,és if ciklusokkal tömb deklarálása nélkül. Sima mezei 8*8-as négyzetekből állna a fehér helyeken x a fekete kocka üres.
    valahogy így:

    xxxxxxxxxx xxxxxxxxxx
    xxxxxxxxxx xxxxxxxxxx
    xxxxxxxxxx xxxxxxxxxx
    xxxxxxxxxx xxxxxxxxxx
    xxxxxxxxxx
    xxxxxxxxxx
    xxxxxxxxxx
    xxxxxxxxxx
    xxxxxxxxxx
    xxxxxxxxxx
    xxxxxxxxxx
    xxxxxxxxxx

    stb.

    Légyszi valaki segítsen megoldani,mert gőzőm sincs róla hogyan kell neki indulni....
    Mutasd a teljes hozzászólást!
Ez a téma lezárásra került a moderátor által. A lezárás oka: Tud�st�r, tud�st�r, tud�st�r...
Címkék
abcd