Program v cecku Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

wix
nováček
Příspěvky: 41
Registrován: listopad 05
Pohlaví: Nespecifikováno
Stav:
Offline

Program v cecku  Vyřešeno

Příspěvekod wix » 09 kvě 2006 10:20

ahoj, potreboval bych vysvetlit cast kodu v cecku ( nejak detailne, jednoduse, abych to pochopil ;-) )

hlavne to s tema pointrama.


int UrciSmery(int i1, int i2, int *Sm) // funkce pro nalezeni vsech moznych tahu kone z pozice (i1,i2)
{
int Smer, j1, j2;
int Volne[8]; // pomocne pole, pocet volnych poli v okoli pole urceneho podle Sm
int i,j,k,x;
int PocetSm;

PocetSm = 0;

for (Smer = 0; Smer < 8; Smer++)
{
j1 = i1 + Tah[Smer].d1; // nove pozice kone
j2 = i2 + Tah[Smer].d2;

if ((j1 >= 0) && (j1 < Velikost) && (j2 >= 0) && (j2 < Velikost)) // kontrola pritomnosti na sachovnici
{
if (S[j1][j2] == -1)
{
*(Sm + PocetSm) = Smer; // do pole Sm ulozime smery tahu
Volne[PocetSm] = PocetVolnych(j1,j2); // pocet volnych poli v okoli
PocetSm++; // pocet tahu
}
}
}

for (i = 0; i < PocetSm; i++) // setridime pole Sm podle poctu volnych sousednich poli
{
k = i;
for (j = i; j < PocetSm; j++)
{
if (Volne[j] < Volne[k])
k = j;
}
if (k > i)
{
x = *(Sm + k); // prohozeni prvku pres promennou x
*(Sm + k) = *(Sm + i);
*(Sm + i) = x;

x = Volne[k]; // prohozeni prvku v poli Volne
Volne[k] = Volne[i];
Volne[i] = x;
}
}
return PocetSm; // funkce vraci pocet moznych tahu z pole


moc dekuji.

Reklama
wix
nováček
Příspěvky: 41
Registrován: listopad 05
Pohlaví: Nespecifikováno
Stav:
Offline

Příspěvekod wix » 09 kvě 2006 10:27

A pak nasleduje tohle, cemuz taky moc nerozumim

int Cesta(int i1,int i2) // funkce pro nalezeni cesty kone z pozice (i1,i2) do konce, vystupni parametr Nalezeno udava, zda se cestu podarilo nalezt
{
int Smer, Krok, j1, j2;
int Nalez;
int Nalezeno;
int *Sm;
int PocetSm;

Sm = (int *) malloc(8*sizeof(int)); // alokace pameti pro dynamicke pole

j1 = 0;
j2 = 0;

Krok = S[i1][i2] + 1; // zvedneme cislo kroku o 1

PocetSm = UrciSmery(i1,i2,Sm); // urcime pocet moznych smeru z pole (i1,i2)

Smer = 0; // zacneme od smeru 0

Nalez = 0; // zatim jsme nic nenalezli

while ((Smer < PocetSm) && (Nalez == 0)) // podminka cyklu / dokud jsme nenasli reseni nebo muzeme zkouset nejaky smer
{
j1 = i1 + Tah[*(Sm + Smer)].d1; // Smer udava aktualni pozici v dynamickem poli Sm
j2 = i2 + Tah[*(Sm + Smer)].d2;

S[j1][j2] = Krok; // na souradnice (j1,j2) ulozime aktualni krok

if (Krok == PocetKroku) // pokud jeaktualni krok roven celkovemu poctu kroku, nalezli jsme reseni, ulozime 1 do promenne Nalez
{
Nalez = 1;
}
else
{
Nalez = Cesta(j1,j2); // jinak rekurzivne volame fci Cesta s parametry (j1,j2) coz jsou nove souradanice

if (Nalez == 0)
S[j1][j2] = -1; // neuspesny pokus, je nutno se vratit
}
Smer++; // vyzkousime novy smer
}
Nalezeno = Nalez;
return Nalezeno; // navratova hodnota fce, podle ni pozname, zda jsme nasli reseni ulohy
}

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž
Stav:
Offline

Příspěvekod Jan Pašek » 09 kvě 2006 12:00

O programovacích jazycích vím prd ale vím kde by vědět mohly (PLS omlouvám se všem co je tímhle odkazem připravím o práci)
http://www.programujte.com
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Ltb
Administrátor
Master Level 8.5
Master Level 8.5
Příspěvky: 6755
Registrován: únor 03
Bydliště: Praha západ
Pohlaví: Muž
Stav:
Offline
Kontakt:

Příspěvekod Ltb » 10 kvě 2006 00:24

Osobně si myslím, že jsi o práci nepřipravil nikoho :wink: Ani já Cčku moc nehovím :?


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Program ONVIF, IP cam
    od NIESRA » 16 pro 2023 20:21 » v Vše ostatní (sw)
    6
    791
    od petr22 Zobrazit poslední příspěvek
    17 pro 2023 09:11
  • Program pro editaci fontů
    od IoannesPragensis » 05 čer 2023 20:01 » v Programy ke stažení
    2
    1732
    od atari Zobrazit poslední příspěvek
    06 čer 2023 11:33
  • Program se stále ptá na spuštění při startu OS
    od Karrex » 17 pro 2023 15:09 » v Windows 11, 10, 8...
    2
    1030
    od zeus Zobrazit poslední příspěvek
    19 pro 2023 18:50
  • Free program na vytváření technických výkresů
    od Tazator » 31 říj 2023 14:28 » v Vše ostatní (sw)
    4
    1389
    od Tazator Zobrazit poslední příspěvek
    01 lis 2023 06:09
  • Program: klávesová zkratka->napíše se text
    od pikaso.andreas » 18 črc 2023 14:12 » v Vše ostatní (sw)
    2
    1599
    od pikaso.andreas Zobrazit poslední příspěvek
    19 črc 2023 11:24

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů