|
|
Sziasztok megint én vagyok, az oldalt amit belinkeltem haladok szép sorban, lenne egy feladat, egy labirintust kell csinálni és abból kivezetni a karaktert, ami lehet kör, figura bármi. Grafikus módban, szóval nem szövegesbe. Én úgy gondoltam hogy csinálok egy kétdimenziós tömböt, ami 9,0,5 fog álni előző példánál szöveges módba így oldottuk meg hogy megtalálja a gép a kivezető utat. Szóval case lab[j,j] of-ba megadom hogy a 9 nél rajzoljon téglalapot ami kivan töltve stb szinnel. Nos hát mégse jött össze, kérdésem ti hogyan oldanátok meg vagy ez a elképzelésem eleve halott, vagy a másik hogy megkéne szabni hogy 1tömb hány pixelből áll, és akkor utána kirajzolni hogy a 9es tömb fal, a 0 a bejárható út stb. Válaszotok előre is köszönöm.
Ezt a hozzászólást spanky módosította (2010.09.27 16:27 GMT+1 óra, ---)
|
|
|
Köszönöm szépen mindenkinek,már működik köszönöm, ha a tanulásba elakadok akkor még írok mert sajna az oldalról tanulok meg már itt is néztem leckéket amik jók. És következőre a kódot úgy illesztem be bocsi csak még új vagyok
|
|
|
Huhh, de régen tanultam Pascalt. 
A házikó azért csúszik el, mert a writeln parancsnál a kiírás után a kurzor a következő sor elejére ugrik. Szóval minden writeln elé kellene egy gotoxy, (és ezért nem is kell a writeln, elég a write) de mivel véletlenszerű helyre akarod kirajzolni, ezért szerintem az x és y pozíciót paraméterként add át a kirajzoló eljárásodnak, valahogy így:
Kód: program Kepernyovedo;
uses crt;
var c:char;
procedure abra(x,y:integer);
begin
gotoxy(x,y);
write(' *');
gotoxy(x,y+1);
write(' ***');
gotoxy(x,y+2);
write('*****)';
gotoxy(x,y+3);
write('* *');
gotoxy(x,y+4);
write('* *');
gotoxy(x,y+5);
write('* *');
gotoxy(x,y+6);
write('******');
end;
begin
repeat
clrscr;
abra(random(75)+1,random(24)+1);
delay(500);
clrscr;
until keypressed;
c:=readkey;
end.
Valami ilyesmi, remélem le is fordul...
u.i.: afene, mindenki megelőzőtt?  
Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
|
|
|
A WriteLN a szöveg kiírása után az X-et mindig nullázza és az Y-t növeli egyel, ezért megy csak az első sorod véletlen helyre és a többi a sor elejétől kezdődik. Az eljárás legyen inkább valami ilyesmi:
Kód: Procedure Abra(X,Y: integer);
Begin
ClrScr;
GotoXY(X,Y); Write(' *');
GotoXY(X,Y+1); Write(' ***');
GotoXY(X,Y+2); Write('*****');
GotoXY(X,Y+3); Write(' ***');
GotoXY(X,Y+4); Write(' * *');
End;
És főprogramban:
Kód: Randomize;
Abra(Random(75)+1,Random(24)+1);
Ha így is fura dolgokat csinál, vedd kisebbre a 75-öt és a 24-et, most nem jut eszembe mekkora egy dosos képernyő.
Szerk: eh, megelőztek
|
|
|
Vagy kiírod minden sor elé a GotoXY-t:
Kód: program Kepernyovedo;
uses
Crt;
procedure Abra(X, Y: Integer);
begin
GotoXY(X, Y);
WriteLn(' *');
GotoXY(X, Y + 1);
WriteLn(' ***');
GotoXY(X, Y + 2);
WriteLn('*****');
GotoXY(X, Y + 3);
WriteLn('* *');
GotoXY(X, Y + 4);
WriteLn('* *');
GotoXY(X, Y + 5);
WriteLn('*****');
end;
begin
Randomize;
repeat
Abra(Random(75) + 1, Random(19) + 1);
Delay(500);
ClrScr;
until KeyPressed;
Readkey;
end.
Vagy GotoXY helyett lekorlátozod a kiírást Window-val egy kisebb részére a képernyőnek.
Kód: program Kepernyovedo;
uses
Crt;
procedure Abra;
begin
WriteLn(' *');
WriteLn(' ***');
WriteLn('*****');
WriteLn('* *');
WriteLn('* *');
WriteLn('*****');
end;
begin
Randomize;
repeat
ClrScr;
Window(Random(75) + 1, Random(19) + 1, 80, 25);
Abra;
Delay(500);
until KeyPressed;
Window(1, 1, 80, 25);
ClrScr;
Readkey;
end.
Ad1: A véletlen szám generálót elfelejtetted inicializálni (Randomize).
Ad2: A kódot rakd [code][/code] blokkba, akkor jól fog megjelenni.
Ad3: Egyik kódot sem fordítottam le, lehet benne elírás.
|
|
|
Sziasztok remélem tudtok segíteni elkezdtem tanulni a pascal nyelvet itt és elakadtam az első feladatnál megírtam a programot, az ábra egy ház, a kirajzolása külön eljárásban van amit úgy hívok meg, de előtte ugye ott van a random gotoxy hogy minden egyes kirajzolás után másik random helyre rakja ki és az a baj hogy csak az első sorra veszi ezt, azt hittem ha külön eljárásba rakom akkor az arébb tolja azt is de nem, első csillag oda random helyre kerül de alatta marad az alaphelyen..Itt a program kódja amúgy free pascalt használok.:
program Kepernyovedo;
uses crt;
var c:char;
procedure abra;
begin
writeln(' *'  ;
writeln(' ***'  ;
writeln('*****'  ;
writeln('* *'  ;
writeln('* *'  ;
writeln('* *'  ;
writeln('******'  ;
end;
begin
repeat
clrscr;
gotoxy(random(75)+1,random(24)+1);
abra;
delay(500);
clrscr;
until keypressed;
c:=readkey;
end.
Az ábránál a csillagokat el csúsztatta itt  e jó sorrendbe vannak amugy. Válaszotok előre is köszi.
|
|
|
Akkor talán az lehet a baja, hogy a unit kiterjesztése .ppu, a DevPascal meg csak a .ppw-t ismeri
(bár ebben nem vagyok biztos, de úgy tűnik a devpas unitok .ppw kiterjesztésűek)
|
|
|
igen van csak nem tom benne az opengl-es unitot dekrarálni.
sima free pascalban: Kód: uses GL, GLU, GLUT;
dev-nél ilyenkor szépen kiirja hogy nem található ilyen unit
|
|
|
Idézet Joga :
OpenGL az csak Free-Pascalon megy, nem?
De a DevPascal nem FreePascal fordítót használ? És megnéztem, a DevPascalnak is van units\OpenGl mappája.
|
|
|
Idézet kicsy :
Jeez, ki az aki Pascalt választana .NET-hez bármi más helyett? 
Ha a Chrome-ra érted, akkor bárki, akinek van egy kis esze, szereti a Pascalt/Delphit és .NET-et akar használni.  Ráadásul a Chrome jobb nyelvi kiterjesztéseket használ, mint a C#, tömörebb és átláthatóbb kódot lehet vele írni.
|
|
|
Jeez, ki az aki Pascalt választana .NET-hez bármi más helyett?
|
|
|
Egyik este rábukkantam egy programra, amely a Chrome nevet viseli, és az a lényege, hogy .Net-es alkalmazásokat lehet vele írni Pascal nyelven. Beépíthető a Visual Studio 2005-be is...
|
|
|
ja nagyon úgy néz ki 
feltettem free pascalt ott minden jóó
|
|
|
OpenGL az csak Free-Pascalon megy, nem?
|
|
|
A Dev-Pascalhoz nem igazán értek de a FreePascalban az OpenGl unitokat a units\opengl mappába kell tenni.
|
|
|
letöltötem OpenGL unitot és egy forráskódot ami ezt használja csak szóval az a baj hogy amikor forditanám nem találja a unitot. Hogy tudom használni??? lényszi valaki segítsen!! (dev pascalt használok)
|
|
|
Ja ,bocs már rájöttem: nem talált egy .dll fájlt.
|
|
|
Nem tudom újra fordítani néhány korábbi FreePascalos OpenGl programomat. Eddig működtek, de most ha megpróbálom lefordítani hiba üzenetet kapok, hogy "error while linking" vagy "program exited with exitcode=217". Nem tudjátok mi lehet a baj? Talán véletlenül töröltem néhány fájlt?
|
|
|
Jó lett!!!!! Műűködik!!! 1000köszönet
|
|
|
Idézet
procedure DetectGraph( var GraphDriver: SmallInt; var GraphMode: SmallInt );
Kód: var gd,gm,i:integer;
helyett próbáld igy:
Kód: var gd,gm,i:SmallInt;
|
|
|
|
Szétszedve melyik sorra adja a hibát?
|
|
|
Szétszedve se jó. 
Hiba: ERROR: call by var parameters hava to mach exactly: Got LONGINT expected SMALLINT
|
|
|
Nem nagyon pascaloztam, de próbáld szétszedni azt a sort:
Kód: DetectGraph(gd,gm); //br
InitGraph(gd, gm,'');
Esetleg a hiba, amit dob?
|
|
|
Hello!
Nemrég kezdtem el dev pascalban programozni és volna egy kisebb problémám. A GRAPH unitot nem akarja használni. Egy oldalról bemásoltam egy egyszerű kis 3D-s program kódját, fordít, és hiba!!! Nem tom mi bajja lehet, LÉGYSZI VALAKI SEGÍTSEN!! itt a kód:
Kód: program KOROK;
uses GRAPH;
var gd,gm,i:integer;
begin
DetectGraph(gd,gm); InitGraph(gd, gm,''); // ebbe a sorba köt bele
for i:=1 to 10 do begin
Circle(200+i*10,200,60+i*10);
end;
ReadLn; CloseGraph;
end.
|
|
|
jéé tényleg  megint én vok hüle
|
|
|
Kihagytál egy aposztrofot a ! mögül.
Kód: '!);
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
|
|
|
nah ismét én
Kód: writeln('Ellenfeled egy ',szorny,'!); <---itt van gondja
Fatal: String exceeds line <---ez a gondja
Ötlet h ezt hogy lehetne megoldani?
|
|
|
igen, ez megoldotta a problémát, viszont felvetett pár újat
Idézet
Error: Incompatible types: got "LONGINT" expected "SHORTSTRING"
Error: Incompatible types: got "LONGINT" expected "SHORTSTRING"
Error: Incompatible types: got "LONGINT" expected "SHORTSTRING"
Fatal: There were 3 errors compiling module, stopping
szerk.: nem szóltam, én vok hüle  megoldottam
|
|
|
Na az a helyzet, hogy eggyel több until van benne, mint repeat.
A smájlik meg azért lettek, mert nem forrásként raktad be a program szövegét, a fórum motorja meg ennek megfelelően értelmezte a beírtakat. Kód: '); '  ;
Így jobban látszik:
Kód: PROCEDURE harc(mgold:integer;szorny:string; mdmg:integer; mspec:string; mspecdmg:integer; mlife:integer);
begin
repeat
mdmg:=mdmg*((armordef+shielddef) div 100);
csataeleje:;
{Jatekos tamadasa}
writeln('Mit teszel?');
writeln('(1) Tamadok a fegyveremmel');
repeat
readln(act);
until (act>0) and (act<(actions+1));
writeln;
{Egyszeru fegyveres tamadas}
if act=1 then
begin
if dmg=0 then writeln('Csapasod nem talalta el a szornyet!');
if (dmg>0) and (dmg<=15) then writeln('Eppenhogy eltalaltad ellenfeled! ',dmg,'-t sebeztel ra!');
if (dmg>15) and (dmg<=30) then writeln('Szepen odasoztal a szornynek! ',dmg,'-t sebeztel ra!');
if (dmg>30) and (dmg<=75) then writeln('Mesteri roham volt! ',dmg,'-t sebeztel a szornyre!');
if (dmg>75) and (dmg<=100) then writeln('Csoda hogy el meg a kis dog! ',dmg,'-t sebeztel ra!');
mlife:=mlife-dmg;
end;
if mlife<=0 then goto mveg;
{Ellenfel tamadasa}
mspec:=(random(9));
if mspec>0 then
Begin
if mdmg=0 then writeln('A szorny csapasa elsuhan melletted!');
if (mdmg>0) and (mdmg<=15) then writeln('Ellenfeled epphogy eltalalt teged! ',mdmg,'-t sebezett rajtad!');
if (mdmg>15) and (mdmg<=40) then writeln('Most aztan jol megkaptad! ',szorny,' ',mdmg,'-t sebzett rajtad!');
if (mdmg>40) and (mdmg<=70) then writeln('Sulyos sebet kaptal! ',szorny,' ',mdmg,'-t sebzett rajtad!');
if (mdmg>70) and (mdmg<=90) then writeln('Iszonyatos fajdalom hasit beled! ',szorny,' ',mdmg,'-t sebzett rajtad!');
life:=life-mdmg;
writeln('Maradek eleterod: ',life);
End;
{Szörny specialis kepessege}
if mspec=0 then
Begin
writeln(mspec);
life:=life-mspecdmg;
writeln('Maradek eleterod: ',life);
end;
readkey;
writeln;
{ első until }
until (life<=0) or (mlife<=0);
{Halalok}
{Szörnyhalál}
begin
mveg:;
writeln(szorny,' meg rad pislant, majd osszerogy. GYOZTEL!!!');
gold:=gold+mgold;
writeln;
writeln('Szerzett arany: ',mgold);
end;
{Jatekoshalal}
veg:;
if life<=0 then writeln('A vilag elsotetul elotted. Osszeesel, MEGHALTAL!!!');
readkey;
{ második until, ennek nincs meg a párja }
until life<=0;
goto menuu;
End;
|
|
|
azokat nem én tettem oda... nincsenek is benne a programban
|
|
|
a sok szmájli
|
|
|
|
PROCEDURE harc(mgold:integer;szorny:string; mdmg:integer; mspec:string; mspecdmg:integer; mlife:integer);
begin
repeat
mdmg:=mdmg*((armordef+shielddef) div 100);
csataeleje:;
{Jatekos tamadasa}
writeln('Mit teszel?'  ;
writeln('(1) Tamadok a fegyveremmel'  ;
repeat
readln(act);
until (act>0) and (act<(actions+1));
writeln;
{Egyszeru fegyveres tamadas}
if act=1 then
begin
if dmg=0 then writeln('Csapasod nem talalta el a szornyet!'  ;
if (dmg>0) and (dmg<=15) then writeln('Eppenhogy eltalaltad ellenfeled! ',dmg,'-t sebeztel ra!'  ;
if (dmg>15) and (dmg<=30) then writeln('Szepen odasoztal a szornynek! ',dmg,'-t sebeztel ra!'  ;
if (dmg>30) and (dmg<=75) then writeln('Mesteri roham volt! ',dmg,'-t sebeztel a szornyre!'  ;
if (dmg>75) and (dmg<=100) then writeln('Csoda hogy el meg a kis dog! ',dmg,'-t sebeztel ra!'  ;
mlife:=mlife-dmg;
end;
if mlife<=0 then goto mveg;
{Ellenfel tamadasa}
mspec:=(random(9));
if mspec>0 then
Begin
if mdmg=0 then writeln('A szorny csapasa elsuhan melletted!'  ;
if (mdmg>0) and (mdmg<=15) then writeln('Ellenfeled epphogy eltalalt teged! ',mdmg,'-t sebezett rajtad!'  ;
if (mdmg>15) and (mdmg<=40) then writeln('Most aztan jol megkaptad! ',szorny,' ',mdmg,'-t sebzett rajtad!'  ;
if (mdmg>40) and (mdmg<=70) then writeln('Sulyos sebet kaptal! ',szorny,' ',mdmg,'-t sebzett rajtad!'  ;
if (mdmg>70) and (mdmg<=90) then writeln('Iszonyatos fajdalom hasit beled! ',szorny,' ',mdmg,'-t sebzett rajtad!'  ;
life:=life-mdmg;
writeln('Maradek eleterod: ',life);
End;
{Szörny specialis kepessege}
if mspec=0 then
Begin
writeln(mspec);
life:=life-mspecdmg;
writeln('Maradek eleterod: ',life);
end;
readkey;
writeln;
until (life<=0) or (mlife<=0);
{Halalok}
{Szörnyhalál}
begin
mveg:;
writeln(szorny,' meg rad pislant, majd osszerogy. GYOZTEL!!!'  ;
gold:=gold+mgold;
writeln;
writeln('Szerzett arany: ',mgold);
end;
{Jatekoshalal}
veg:;
if life<=0 then writeln('A vilag elsotetul elotted. Osszeesel, MEGHALTAL!!!'  ;
readkey;
until life<=0;
goto menuu;
End;
|
|
|
Akkor másold be az egész eljátást, valószínűleg előbb van a hiba valódi oka.
|
|
|
a procedúra legelején a begin után rögtön
|
|
|
A repeat hol van az until előtt?
|
|
|
sehol sem hagytam ki, ezért is találtam furcsának...
Idézet
veg:;
if life<=0 then writeln(iras);
readkey;
until life<=0;
goto menuu;
End;
|
|
|
Valahol elhagytál egy pontosvesszőt, ezért írja, hogy ;-t várt, de nem jött, csak egy UNTIL.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
|
|
|
Idézet 125 / 6 rpg.pas
Fatal: Syntax error, ; expected but UNTIL found
felraktam a dev-pascalt, ez a gondja most... haladás
|
|
|
Sharp:  a könyv mindig hasznos!
Nekem is van többszáz mega ebookom, de amit csak tudok megveszek rendes könyvben is. Könnyebb belőle tanulni. Attól függetlenül
ebookz.hu, doksi.hu Biztos van pascalos könyv/leírás is.
Én viszont fp után sokkal gyorsabban tudtam dev-vel dolgozni.  És nem is bugzik annyit mint a fp.
Próbálja csak ki
|
|
|
DevPascal sztem egy sz*r. Kiprobáltam elég sok freepascal IDE-t, és sztem az összes elég ratyi, az eredeti jó, csak ronda, de jó. Könyvet meg eszedbe ne jusson venni, hamár fizetsz havi X ezret netre, akkor már térüljön meg...
|
|
|
|
|
|
akkor sajnos passz. 
lefordítod, hiba van benne, de a hibát jelző ablak nem jön elő... ilyet nem láttam még.
de ha javasolhatom, használj dev pascalt fp helyett. könnyebb használni, normális bill.kombók vannak benne, áttekinthetőbb, stb.
|
|
|
|
akkor zárd be a free pascalt, indítsd el újra, és fordítsd le újra a cuccot. úgy talán újra előjön az ablak.
|
|
|
az is megvan, de hiába nyomom meg nem hoz elő semmit!
|
|
|
sorry, félreértettelek.
ami neked kell, (ha jól értem....) akkor az a compiler messages lesz.
|
|
|
Legújabb project:
Smashed Potatoes
Legutóbb frissített project:
Smashed Potatoes
Friss kép a galériából:
|