Free Pascalban dolgozgatok. Ki lehetne ezt egészíteni valamivel? Két óra alatt csináltam, tehát még lehet rajta tökéletesíteni.
Program ghost_projekt;
uses crt;
var nev,jelszo:string;
begin
clrscr;
textcolor(lightgray);
writeln('ez egy titkositott dokumentum. megtekintesehez adja meg nevet es jelszavat.');
writeln;
writeln;
writeln;
writeln;
writeln(LOADING....');
writeln;
writeln;
write('neve:');
readln(nev);
if nev= 'ghost_projekt' then
textcolor(lightgreen);
if nev= 'ghost_projekt' then
write('O.K.');
if nev<> 'ghost_projekt' then
textcolor(lightred);
if nev<> 'ghost_projekt' then
write('a megadott nev hibas, a belepes ismetlesehez inditsa ujra a programot.');
textcolor(lightgray);
if nev='ghost_projekt' then
writeln;
if nev='ghost_projekt' then
writeln;
if nev='ghost_projekt' then
writeln;
if nev='ghost_projekt' then
writeln;
if nev='ghost_projekt' then
writeln('LOADING....');
writeln;
writeln;
if nev='ghost_projekt' then
begin
write('jelszo:');
readln(jelszo);
if jelszo='benxdestroyer' then
textcolor(lightgreen);
if jelszo='benxdestroyer' then
write('O.K.');
if jelszo<>'benxdestroyer' then
textcolor(lightred);
if jelszo<> 'bendestroyer' then
write('a megadott jelszo hibas, a belepes ismetlesehez inditsa ujra a programot.');
textcolor(magenta);
gotoxy(45,42);
writeln('Copyright 2014');
readkey;
clrscr;
textcolor(yellow);
gotoxy(35,2);
writeln('kilepeshez nyomja meg az entert....');
textcolor(magenta);
gotoxy(45,42);
writeln('Copyright 2014');
end;
readkey;
end.
Az if után írhatsz több sort, ha begin-end közé teszed.
Kiegészíteni sokféleképpen lehet. Például írjon ki valamit. Utánna, hogy a memóriában ne szerepeljen konkrétan a jelszó és az adat titkosítatlanul.
Praktikusabb lenne a nevet és a jelszót legalább változóban tárolni. Én egy signolt fileban tárolnám hashelve. Még valami, a sok if-edet össze lehetne vonni. Pl ezt:
if jelszo='benxdestroyer' then
textcolor(lightgreen);
if jelszo='benxdestroyer' then
write('O.K.');
if jelszo<>'benxdestroyer' then
textcolor(lightred);
if jelszo<> 'bendestroyer' then
write('a megadott jelszo hibas, a belepes ismetlesehez inditsa ujra a programot.');
ezzé:
if jelszo='benxdestroyer' then begin
textcolor(lightgreen);
write('O.K.');
end else begin then
textcolor(lightred);
write('a megadott jelszo hibas, a belepes ismetlesehez inditsa ujra a programot.');
end
1. Tessék használni valamilyen forráskód-megosztó oldalt - áttekinthetőbbé teszi a kódot - például az általad mutatott kód (a 13. sorban hiányzott egy aposztróf, azt javítottam):
2. Pár optimalizációs javaslat:
- A sok Writeln ronda - használhatsz helyette a szöveg után rakott sortöréssel - például:
write('LOADING....',chr(10),chr(13),chr(10),chr(13));
- Használd az if () begin...end else begin...end; szerkezetet.
- Mielőtt visszaadnád a vezérlést a felhasználónak, állítsd vissza a konzolszínt.
Optimalizált változat:
Tökéletesíteni mindig lehet :)
Előszöt is írjunk egy eljárást (procedure) ami a kiíratást végzi:
procedure Kiir(szoveg : string; szin, bgszin, sorem : byte);
const sor = #10#13;
var i: byte;
begin
TextColor(szin);
TextBackground(bgszin);
Write(szoveg);
for i := 1 to sorem do Write(sor);
end;
A paraméter nevek magukért beszélnek.
Utána írjunk egy függvényt ami az adatbekérést végzi:
function Beker(szoveg, helyes : string; szin, bgszin : byte) : boolean;
var adat : string;
begin
TextColor(szin);
TextBackground(bgszin);
Write(szoveg +': ');
ReadLn(adat);
Beker := adat = helyes;
end;
Itt lehet fejleszteni, hogy ne írja ki a karaktereket ezt már rád bízom, ha nem megy segítek.
Az eljárásunk és függvényünk segítségével átláthatóbb programot lehet írni.
Minta: [link]
Továbbiak: A Pascal karakteres 'üzemmódban' 80 x 25 -ös képernyőt kezel ezért a GotoXY-nál erre hagyatkozzál. Nem dob hibát, de értelmetlen dolog.
Bár a nyelv nem érzékeny a kis és nagybetűkre, de tessék megtanulni szép kódot írni. Átláthatóbb, értelmezhetőbb ha szépen használjuk a kis és nagybetűket. Ajánlom figyelmedbe a 6.0 -as Turbo Pascal magyar helpjét -oldalamról a programmal együtt letölthető : [link] - a Turbo.pif-et töröld futtatás előtt -
Köszönöm mindenkinek a segítséget,megpróbálok minden tanácsot megfogadni. :)
#6 nem értem miért kellene menekülnöm? :D
már ezt szoktam meg. Nem zárkózok el a többi akár negezebb nyelvtöl de egyelöre ennél maradok.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!