Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

c++ Pisanie dropu czy czego tam się chce w TABLICY!


Rekomendowane odpowiedzi

Opublikowano

Cześć, jakiś czas temu zobaczyłem temat w którym ktoś napisał drop za pomocą if, else if itp co jak dla mnie jest kompletnym idiotyzmem...

 

Nie wiem czy to z braku wiedzy czy jak, ale jeżeli chcemy sobie babrać ręce pisząc wielki kod na 100 linijek to ok, ale jeżeli ktoś woli napisać to w 4 linijkach to coś dla niego!

 

Pokaże wam jak napisać sobie drop w tablicy na przykładzie małża.

case 27987:
 {
   item->SetCount(item->GetCount() - 1);
   int losowanie = number(0, 2);
   const int itemy[] = {27992, 27993, 27994};
   AutoGiveItem(itemy[losowanie]);
 }
Teraz informacja dla mało kumatych ludzi :) Odliczanie tablicy zaczynamy od 0! Piszę to po to aby zaraz jakiś idiota nie napisał jakiegoś debilnego tekstu.

Jak widać cały kod ma kilka 4 linijki, jedynie co zmieniamy to dodajemy item do tablicy oraz przedział z jakiego ma losować ID

 

Można taż napisać to tak:

case 27987:
 {
   item->SetCount(item->GetCount() - 1);
   int losowanie = number(0, 3);
   const int itemy[] = {27992, 27993, 27994};
   if ( losowanie != 3 )
   {
    AutoGiveItem(itemy[losowanie]);
   }
   else
   {
    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Niestety ten malz byl pusty!"));
   }
 }
Jest wiele sposobów zastosowania tego kodu, mam nadzieje że, komuś się to przyda :)

EWOLUCJA : ]


 


84440201455649434251.jpg


 

Opublikowano
  1. Ja tutaj widzę sześć linijek, nie cztery.
  2. Losowanie z tablicy można zrobić w inny, optymalniejszy sposób niż wykorzystanie randoma.

Poza tym kod słaby jakościowo o ile w ogóle ten skrawek można nazwać kodem. Myślę, że każdy kto pisze w C++ powinien ogarniać operację na tablicach...

Opublikowano
  • Ja tutaj widzę sześć linijek, nie cztery.
  • Losowanie z tablicy można zrobić w inny, optymalniejszy sposób niż wykorzystanie randoma.
Poza tym kod słaby jakościowo o ile w ogóle ten skrawek można nazwać kodem. Myślę, że każdy kto pisze w C++ powinien ogarniać operację na tablicach...

 

1. Oj tam to miała być tylko przenośnia, jak ktoś chce może to nawet w 1 linijce napisać.

2. Szybkie bazgranie + nigdy nie zagłębiałem się bardziej w tworzenie tablic oraz operację na nich :)

EWOLUCJA : ]


 


84440201455649434251.jpg


 

Opublikowano

@Matzar

No to pokaż przykład kodu (długo Ci nie zajmie napisanie skoro ma być optymalny).

Zamiast pisać pustych słów.

Czekamy z baran'em.

Ale to nie są puste słowa. Nadmieniłem po prostu, że da się to zrobić lepiej, ładniej, optymalniej. Każdy kto kroczy w świecie programowania metina powinien potrafić wykonywać podstawowe operacje na tablicach.

Opublikowano

Ale to nie są puste słowa. Nadmieniłem po prostu, że da się to zrobić lepiej, ładniej, optymalniej. Każdy kto kroczy w świecie programowania metina powinien potrafić wykonywać podstawowe operacje na tablicach.

No dobra, ale pokaż jak da się to zrobić lepiej, ładniej, optymalniej.

 

A ja bym się jedynie przyczepił do sztywnego wpisywania ilości losowanych itemów (o ile dobrze wyczytałem), na pewno jest jakąś funkcja licząca rekordy z tablicy.

QufL90L.png


 

Opublikowano

A ja bym się jedynie przyczepił do sztywnego wpisywania ilości losowanych itemów (o ile dobrze wyczytałem), na pewno jest jakąś funkcja licząca rekordy z tablicy.

Przy większych systemach piszemy o dynamicznej alokacji pamięci C++ na tablicach i tak dalej. Po co się rozwodzić na ten temat gdy nie ma tutaj programistów, tylko są tzw. klepacze kodu w większości (parę osób które na prawdę potrafią programować w C++ się znajdzie)?

Opublikowano

Przy większych systemach piszemy o dynamicznej alokacji pamięci C++ na tablicach i tak dalej. Po co się rozwodzić na ten temat gdy nie ma tutaj programistów, tylko są tzw. klepacze kodu w większości (parę osób które na prawdę potrafią programować w C++ się znajdzie)?

Tez jestem jak to nazwales klepaczem, bo uważam ze jestem początkujący w c++, ale akurat wiem o co Cu chodzi, z tym, ze zachęcam Cie caly czas do pokazania przykladu, gdyż narazie w mojej ocenie wychodzisz na typowego cwaniaka, który dużo mówi po obejrzeniu kursu, a konkretów brak. :)

Ps. Jednym z celów forum jest żeby się czegoś tez nauczyć, wiec nie pisz w odpowiedzi czegos w stylu "nikomu nie musze nic udowadniać".

 

 

 

No widzisz, skoro wiesz o co chodzi to już mamy sukces. Niepotrzebnie reagujesz w moim kierunku tak złośliwie. Tak się składa, że nie przepadam za C++ aczkolwiek takie podstawy właśnie jak alokacja pamięci, operacje na tablicach znam bo każdy powinien je znać. Zwróciłem tylko uwagę na to, że da się to zrobić lepiej i nie radzi się nikomu stosować takich rzeczy przy większych systemach :) Wystarczy ogarnąć parę kursów nt. alokacji i już potencjalny 'programista' który odwiedził ten temat będzie wiedział o co mi chodzi. Nie muszę poprawiać żadnego kodu i dobrze o tym wiesz. ;)

Cóż, z mojej strony nie było żadnej złośliwości, być może mam taki styl pisania. :) Wiem tylko, że inni mogą opacznie Cie zrozumieć.

 

 

Witamy na MpcForum.

@Topic. dzięki, może się przyda. ;)

­

Bez przesady, widywałem gorsze fora. ;)

Ps. Forum się stacza również przez c*****e wstawki. ^^

Opublikowano

Tez jestem jak to nazwales klepaczem, bo uważam ze jestem początkujący w c++, ale akurat wiem o co Cu chodzi, z tym, ze zachęcam Cie caly czas do pokazania przykladu, gdyż narazie w mojej ocenie wychodzisz na typowego cwaniaka, który dużo mówi po obejrzeniu kursu, a konkretów brak. :)

Ps. Jednym z celów forum jest żeby się czegoś tez nauczyć, wiec nie pisz w odpowiedzi czegos w stylu "nikomu nie musze nic udowadniać".

No widzisz, skoro wiesz o co chodzi to już mamy sukces. Niepotrzebnie reagujesz w moim kierunku tak złośliwie. Tak się składa, że nie przepadam za C++ aczkolwiek takie podstawy właśnie jak alokacja pamięci, operacje na tablicach znam bo każdy powinien je znać. Zwróciłem tylko uwagę na to, że da się to zrobić lepiej i nie radzi się nikomu stosować takich rzeczy przy większych systemach :) Wystarczy ogarnąć parę kursów nt. alokacji i już potencjalny 'programista' który odwiedził ten temat będzie wiedział o co mi chodzi. Nie muszę poprawiać żadnego kodu i dobrze o tym wiesz. ;)

Opublikowano

 

Tez jestem jak to nazwales klepaczem, bo uważam ze jestem początkujący w c++, ale akurat wiem o co Cu chodzi, z tym, ze zachęcam Cie caly czas do pokazania przykladu, gdyż narazie w mojej ocenie wychodzisz na typowego cwaniaka, który dużo mówi po obejrzeniu kursu, a konkretów brak. :)

Ps. Jednym z celów forum jest żeby się czegoś tez nauczyć, wiec nie pisz w odpowiedzi czegos w stylu "nikomu nie musze nic udowadniać".

 

 

 
Cóż, z mojej strony nie było żadnej złośliwości, być może mam taki styl pisania. :) Wiem tylko, że inni mogą opacznie Cie zrozumieć.

 

Witamy na MpcForum.

@Topic. dzięki, może się przyda. ;)

­

Opublikowano

@topic
Skoro mówimy o krótkim kodzie, co myślicie o tym:

case 27987:
 {
   item->SetCount(item->GetCount() - 1);
   AutoGiveItem(27992 + number(0,2)); // po co tablica w tym przypadku to tylko autor chyba wie
 }
// na pewno byl tutaj break, ale czy to wazne

­

A ten drugi przypadek:
 

case 27987:
 {
   item->SetCount(item->GetCount() - 1);
   int getVnum = 27992 + number(0, 3);
   if ( getVnum < 27995 )
    AutoGiveItem(getVnum);
   else
    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Niestety ten malz byl pusty!")); // po co ten LC_TEXT?
 }

Fakt, ten kod działa tylko w przypadku, kiedy każdy kolejny składnik jest większy o 1 od poprzedniego, ale liczyła się liczba linijek więc who cares.

@Matzar

Plis, rozwiązania wydawnicze w kodzie z 2k3, mało refaktoryzowanym na stałych klasowych. Żeby mówić o optymalności trzebaby było to dziadostwo przepisać na jakiś nowocześniejszy interfejs ;x

PS. Dynamiczna alokacja stałej tablicy (tj. o znanej ilości elementów)? 

Opublikowano

Plis, rozwiązania wydawnicze w kodzie z 2k3, mało refaktoryzowanym na stałych klasowych. Żeby mówić o optymalności trzebaby było to dziadostwo przepisać na jakiś nowocześniejszy interfejs ;x

@Evor. To jest metin, nawet nie chciałbym na to w moim życiu marnować czasu.

 

Tablice wielowymiarowe przy większych systemach, etc. Między innymi - tak.

  • 1 miesiąc temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...