pascal pohyb

Programovacie jazyky, rady, poradňa...
jjakub
Amateur
Amateur
Príspevky: 23
Registrovaný: 13 sep 2009, 13:56

pascal pohyb

Príspevok od používateľa jjakub »

ahojte robim clovece

Spravil som si hraciu plochu
dal som si 2 cykly

for i 1 to 12
for j 1 to 12 som spravil stvorec

a cez dalsie cykly som si spravil plochu ze som si vybral suradnice z obidvoch a cez polia som spravil plochu .

cize mam kruhy

Kód: Vybrať všetko

    000
    000
    000
    000
00000 00000
00000 00000
00000 00000
    000
    000
    000
    000
tak nejak to vyzera a mam stredy tych kruhov robil som to ako polia circle(a,b[j],15);

Potreboval bz som ale nejak hybat panakmi. ked hodim napr 5 aby sa posunul y aktualneho miesta o 5 viete mi nieco poradit ako by som to mohol spravit ? dik
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: pascal pohyb

Príspevok od používateľa audiotrack »

hlavne by si si mal tie ramena spraviť rovnako dlhe. Teraz máš tie hore a dole po 4 krúžky, kým vpravo a vľavo po 5 krúžkov. Myslím že to tak v človeče nebýva. A potom zistiť novú polohu je iba práca s poľom. Bud si budeš novú pozíciu vypočítavať podľa toho, kde si a o koľko sa dá posunuť doprava, potom dole, zase doprava... čiže ako keď hrá človek to človeče, alebo lepšie riešenie je si to pole preindexovať aby malo prvky po obvode a nie po riadkoch ako to máš teraz, a budeš sa hýbať iba po indexoch. Ak som na prvku i=5 a hodím 4 tak pôjdem na i=5+4. Pokiaľ to pretečie počet krúžkov na obvode, tak sa ide do domčeku
jjakub
Amateur
Amateur
Príspevky: 23
Registrovaný: 13 sep 2009, 13:56

Re: pascal pohyb

Príspevok od používateľa jjakub »

ja som to zle napisal mam to rovnako ako si vravel .

jj praveze len neviem ako robit tu polohu lebo mam kazde policko aj panaka spravene cez 2 polia 1 pole dava xove suradnice a druhe pole y suradnice cize neviem spravit aby to slo po tom indexe spravne
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: pascal pohyb

Príspevok od používateľa audiotrack »

to si dosť komplikuješ. Prečo nevyužívaš nejaké štruktúry, napríklad record kde budeš mať oboje súradnice spolu? A tieto recordy potom pekne do poľa
jjakub
Amateur
Amateur
Príspevky: 23
Registrovaný: 13 sep 2009, 13:56

Re: pascal pohyb

Príspevok od používateľa jjakub »

hmm tak to si musim nastudovat pretoze s tym sme nikdy nerobili
Zappir
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 498
Registrovaný: 17 aug 2008, 9:38
Bydlisko: Praha / Prievidza

Re: pascal pohyb

Príspevok od používateľa Zappir »

ja by som to robil tak, ze by som spravil jedno 2D pole, tam by som si nakreslil tu hraciu plochu a druhe 2D pole, tam by som si spravil suradnicovi system tej hracej plochy, a stade vlastne nacitaval suradnice kam ma ist dalej panacik. prikladam ilustracny obrazok
Prílohy
system.jpg
jjakub
Amateur
Amateur
Príspevky: 23
Registrovaný: 13 sep 2009, 13:56

Re: pascal pohyb

Príspevok od používateľa jjakub »

procedure polohy(var poloha:integer; var a,b:pole);

begin
case poloha of
0: begin circle(a[1],b[5],10); end;
1: begin circle(a[2],b[5],10); end;
2: begin circle(a[3],b[5],10); end;
3: begin circle(a[4],b[5],10); end;
4: begin circle(a[5],b[5],10); end;
5: begin circle(a[5],b[4],10); end;
6: begin circle(a[5],b[3],10); end;

nejak takto mam nacitane tie suradnice keby som mal dokopy 10 tak by to malo vykreslit na 10 ja len neviem dat do kopy proceduru ako si vyberem panaka ktoreho chcem posuniem ho na tuto poziciu a ako potom zmazem toho stareho
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: pascal pohyb

Príspevok od používateľa audiotrack »

veď to iste som mu hovoril, lenže používam iba jedno 2d pole kým ty dve :) To s hracou plochou je ti úplne zbytočné, lebo všetky údaje o políčkach na ktoré sa dá pristúpiť máš v tom pravom poli
jjakub
Amateur
Amateur
Príspevky: 23
Registrovaný: 13 sep 2009, 13:56

Re: pascal pohyb

Príspevok od používateľa jjakub »

A da sa pole naplnit cislami nejak zo zatvorky ? napr mam (5,5,8,2,6,9,10) a toto nacitat do pola ?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: pascal pohyb

Príspevok od používateľa audiotrack »

myslím že v pascale nie, iba si to prechádzať ako string, a postupne rozsekať na čísla
jjakub
Amateur
Amateur
Príspevky: 23
Registrovaný: 13 sep 2009, 13:56

Re: pascal pohyb

Príspevok od používateľa jjakub »

hmm dpc neviem s tym hnut ...
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

Re: pascal pohyb

Príspevok od používateľa mirak2 »

pokial neviem zakladne veci v pascale tak toto je dost advanced task by som povedal.
urob si jedno pole dvojrozmerne do ktoreho si napraskas na zaciatku natvrdo suradnice hracieho planu, potom vykreslis kaxde policko - prejdes polom a vykreslis kruh so stredom na suradniciac pole[1],pole[2]...a potom ked hodis kockou tak ak je panacik na 5. pozicii a hodi trojku tak to prekreslis cele tak ze panacik bude uz na 8. pozicii (zmazes plochu, a nanovo vykreslis plan a panacikov)..prechod cez 0 by nemal byt problematicky, snad to zvladnes
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: pascal pohyb

Príspevok od používateľa audiotrack »

lenže každý panáčik má nulu inde :)
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

Re: pascal pohyb

Príspevok od používateľa mirak2 »

to viem, aj to sa da osetrit, skor som myslel nulu v poli policok..kazdopadne clovece nie je len tak
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Re: pascal pohyb

Príspevok od používateľa Gregi »

mozno toto Ti pomoze ;-)

Kód: Vybrať všetko

program CLOVECE_NZLOB_SE;
uses Graph;
const
  priemer=5; {primer kruzku}
  posun=15; {vzdialenost medzi kruzkami}
  pole: array[1..40] of Char = '1111122221133331111334444333344222244442';
var
  i,Gd,Gm,pivot_x,pivot_y: Integer;

BEGIN
  Gd:=Detect;
  InitGraph(Gd,Gm,'');
  pivot_x:=215; {pociatocna vychodiskova X-ova pozicia prveho kruzku}
  pivot_y:=185; {pociatocna vychodiskova Y-ova pozicia prveho kruzku}
  for i:=1 to 40 do begin
    if pole[i]='1' then begin
      pivot_x:=pivot_x+15;
      Circle(pivot_x,pivot_y,priemer);
    end;
    if pole[i]='2' then begin
      pivot_y:=pivot_y-15;
      Circle(pivot_x,pivot_y,priemer);
    end;
    if pole[i]='3' then begin
      pivot_y:=pivot_y+15;
      Circle(pivot_x,pivot_y,priemer);
    end;
    if pole[i]='4' then begin
      pivot_x:=pivot_x-15;
      Circle(pivot_x,pivot_y,priemer);
    end;
  end;

END.
Napísať odpoveď