własne projekty

0

Jeśli chodzi o własne projekty i chwalenie się przed pracodawcą - to takim skryptem do gry warto się chwalić ? Czy do pieca ? Trochę sztucznej inteligencji w tym jest [tzn. nie opieranie się jedynie na API a tworzenie własnych metod opartych na fizyce - np. przewidywanie ruchów przeciwnika, kolizje] ale czy mnie wyśmieją to nie mam pojęcia -> https://hastebin.com/kogodegoki.cs

Planuje przestawić się na c/c++ i zacząć pisać normalne programy. Przyciąga mnie do nich: zamknięty kod, szybkość, większe zapotrzebowanie na rynku pracy.

Mam więcej pytań, np. czy praca programisty to taka praca na produkcji gdzie najbardziej liczą się kompetencje społeczne ? Co z ludźmi skrajnie introwertycznymi, lub co gorsza chorymi na schizofrenie czy jakąś inną odmianę chorób emocjonalnych, społecznych ? - czy dadzą radę jedynie jako freelancerzy ? - bo jedyne co słysze to programista pracuje w dużej grupie, przy dużym, wspólnym projekcie. Ja bez leków bym nie pociągnął tak długo - no są różne przypadki ludzi, w moim przypadku zawsze ludzi od siebie odpycham więc wiem że będą zgrzyty w takich sytuacjach.

2

np. przewidywanie ruchów przeciwnika, kolizje] ale czy mnie wyśmieją to nie mam pojęcia -> https://hastebin.com/kogodegoki.cs

Cóż. Mieszasz w jednej klasie wszystko praktycznie, począwszy od ogólnych obliczeń matematycznych do bardzo specyficznej logiki gry. Nie ty jeden i nie ostatni (ja często jak zaczynam projekt piszę wszystko w jednym pliku, dopiero potem dzielę na kilka), ale jednak nie pokazywałbym tego potencjalnemu pracodawcy, bo ten kod to na oko jeden wielki śmietnik.

kryptyczne nazwy zmiennych:

static bool autoei, autoeo, autoq, readyaa;

no i literówka w nazwie zmiennej

lenght

różne magiczne liczby, które nie wiadomo co znaczą.

I dziwna tajemnicza logika, która powtarza się w wielu miejscach, ale z lekkimi modyfikacjami (syndrom programowania "copy paste"), np. tu jest jakaś logika "W":

static void WLogic()
		{
			if (Game.Time < laste + 0.75f || Game.Time < lastq + 0.5f || Player.CanUseSpell(SpellSlot.W) != SpellState.Ready)
				return;

tu jest logika Q:

static void QLogic()
		{
...
			if (Game.Time > laste + 2f && Player.CanUseSpell(SpellSlot.E) == SpellState.Ready)
			{
				delay = 0.8f;
			}

No i piramidki ifów z warunkami, które nie wiadomo skąd się wzięły.
I wszystko inne, co wygląda jakbyś przeczytał książkę "Czysty Kod" i robił na odwrót.

Czyli:

  • za mało uporządkowane to wszystko, zbyt dużo entropii w kodzie

  • piszesz tylko dla siebie (tajemnicze nazwy zmiennych, magiczne liczby, rzeczy typu QELogic czy WLogic które nie wiadomo w ogóle co znaczą (jeśli z jakichś powodów faktycznie w grze występuje "logika W" oraz "logika QE" - przecież są różne gry... - to wypadałoby to udokumentować jakoś).

Niestety nawet w przypadku jednoosobowego programowania to może być problem - bo siądziesz do swojego kodu po miesiącu i nie będziesz wiedział co robiłeś - a w przypadku pracy z innymi jeszcze bardziej jest potrzebne, żeby kod był uporządkowany, podzielony na logiczne części, nazwy zmiennych były opisowe, logika nie była bardziej skomplikowana niż to potrzeba (a u ciebie walają się ciągle jakieś ify nie wiadomo co sprawdzające), czasem też warto dać jakiś komentarz (ale czasem, oszczędnie, najlepiej jakby kod sam się komentował - ale jak wiadomo nie zawsze to jest możliwe).

Bo przyjdzie inny współpracownik i będzie chciał zrozumieć twój kod.

0

Przeczytaj książkę czysty kod i popraw tą klasę ;)

Zobacz np. metodę CastSpell. Bardzo dużo tam zagnieżdżonych ifów i forów. To wszystko powinno być rozbite na mniejsze metody.

0

Tym skryptem lepiej się nie chwal. Pocisnales tam ostro - metody po 5 poziomów zagniezdzenia, wszystko na staticach, magiczne liczby/stringi, niepotrzebne przepisywanie parametrów metod do zmiennych lokalnych. Ogólnie to syf

0

Co do umiejętności miękkich to niestety są potrzebne. Przynajmniej dopóki nie przejdziesz na pracę zdalną, ale nawet wtedy będzie czasem trzeba pojawić się w biurze, na jakiś planning czy coś. Skoro masz już świadomość, że odpychasz ludzi od siebie, to może warto nad tym popracować? Nie musisz z kolegami z zespołu chodzić na planszówki po pracy, wystarczy taka przeciętna umiejętność komunikacji.

0

Cenne rady dzięki.

A jeśli chodzi o Symfonie C++ to wydanie I wersji standard różni się znacząco od wersji 3B ?

2

Symfonię C++ sobie daruj, bo jest dzisiaj przestarzałą pozycją.

1 użytkowników online, w tym zalogowanych: 0, gości: 1