Witajcie
Zwracam się do bardziej doświadczonych programistów o merytoryczną ocenę kodu.
Pozdrawiam
- SILNIK.PAS (31 KB) - ściągnięć: 116
- tic_tac_toe.pas (12 KB) - ściągnięć: 80
Witajcie
Zwracam się do bardziej doświadczonych programistów o merytoryczną ocenę kodu.
Pozdrawiam
=true
jest nadmiarowe z tego co pamietam pascalazmienna=false
jest nieczytelne, lepiej pisać not zmienna
Spr_Wyg
- nie skracaj nazw funkcji. Kiedyś litery były drogie, dziś są tanieif abs(wezly[schow[l_rows]]) = 9 then
begin
pocz := pocz^.galez9;
z_pola := z_pola - 1
end;
if abs(wezly[schow[l_rows]]) = 8 then
begin
pocz := pocz^.galez8;
z_pola := z_pola - 1
end;
to się prosi o przeróbkę na case
Zamieszczałeś to samo wielokrotnie, w tym pod tytułem "portfolio", bardziej szczęśliwy z tym jesteś?
Grzebiesz w technologii przestarzałej o jakieś 20 lat nawet na Wybrzeżu Kości Słoniowej (w PL o 30). Zaprzestań oszukiwać sam siebie, i troszkę do przodu.
if (pocz^.plansza[rows,cols] = ' ') and (rows = 2) and (cols = 3) then
masz dużo takich powtórzeń (czemu sprawdzasz ileś warunków do każdego przypadku, zamiast zrobić jeden warunek, a dobrze?) oraz coś takiego:
nast^.galez4 := pocz;
nie wnikałem w to, co ten kod robi, ale tutaj aż krzyczy, że coś jest nie tak.
Czemu galez3, galez4 itp. ? Takie rzeczy się zwykle robi w tablicach albo w innych strukturach danych.
if abs(wezly[schow[l_rows]]) = 5 then
begin
pocz := pocz^.galez5;
z_pola := z_pola - 1
end;
tutaj też. Powtarza się ten kod. Czyli na dobrą sprawę kod mógłby być z 10 razy krótszy, gdybyś zrobił jakąś abstrakcję - nie chodzi o to, żeby porobić z 10 zmiennych nazwa1
, nazwa2
, nazwa3
itp. tylko, żeby raczej wymyślić sobie jedną albo więcej abstrakcji / struktur danych, które pozwolą ci pisać mało kodu, a zrobić to, co chcesz.
Czyli musisz zejść głębiej i patrzyć szerzej niż tylko indywidualny przypadek (a myśląc w "ifach" myślisz w kategorii indywidualnych przypadków. To trochę jak polskie prawo się robi. Gdzie masz tysiące durnych przepisów i jedynym sposobem na "naprawę" Polski politycy upatrują w dowaleniu setki kolejnych durnych przepisów. Gdzie każdy przepis to jak "if". nie idź tą drogą. Lepiej w programowaniu naśladować nauki ścisłe takie jak matematyka czy fizyka (które rządzą się ogólnymi prawami i mniej lub bardziej uniwersalnymi modelami) niż polityków, którzy muszą każdy przypadek osobno uchwalić, co jest podobne właśnie do pisania czegoś w formie if za ifem, tak jak w tym pliku SILNIK.PAS).
"i troszkę do przodu" - Według ciebie jaki powinien być mój następny krok ? Czego powinienem zacząć się uczyć ? - Adept123 6 minut temu
Jakiś aktualny język to po pierwsze. Koledzy np @LukeJL wytykają np nieoptymalne użycie nawet starego języka - wiedza ze świata, dobra książka, a nie getto własnych myśli. Moze nawet to drugie, to jest pierwsze. Czytanie projektów Open Source (ale nie wklejki na githubie od słabych studentów). DOBRE kursy (wiele jest złych, np do C/C++.
Jaki język?
Jak przemyślę, to dopiszę to i owo.
Popularne stronki się pisze w PHP, ale tam jest zamieszanie, do czego się odnieść. Są mistrze, i jest dużo słabiutkich piszących słaby kod na fuchę.
AnyKtokolwiek napisał(a):
- gdybyś widział w perspektywie Javę, zaczął bym na rozgrzewkę od Groovy
Ale czemu chcesz robić taką krzywdę komuś kto ogarną statyczne typowanie? Groovy to połączenie najgorszych wad Pythona z Javą + Legenda SmallTalka. Trudno o coś gorszego