Poprzednia strona Następna strona
     

Forum
 

Tworzenie nowych programów

Opracował: "Cashtan"

odstawowe zasady pozostają bez zmian, każdy program można podzielić na trzy części: funkcje, opcje i siła. W skrócie, osoba pragnąca stworzyć nowy program wybiera odpowiednie funkcje jakie ma spełniać program, możliwe opcje dodatkowe oraz określa siłę programu. Możliwe funkcje i odpowiadające im stopnie trudności znajdują się w głównym podręczniku CP2020. Zmianą którą wprowadziłem jest podział na trudność stworzenia programu oraz złożoność programu.

1. Trudność stworzenia programu

rudność stworzenia programu określa wymagany poziom zaawansowania w programowaniu – programy spełniające podstawowe, popularne funkcje, zazwyczaj łatwiej się pisze, można się wzorować na wielu istniejących już programach, istnieją gotowe biblioteki i procedury z których można skorzystać podczas pisania programu. Natomiast programy stworzone do trudniejszych, lub nieoficjalnych działań nie posiadają takiego wsparcia, praktycznie wszystko trzeba pisać od początku, nierzadko są też znacznie bardziej skomplikowane. Trudność stworzenia określa się w następujący sposób:

  • należy sprawdzić stopnie trudności wszystkich funkcji jakie spełniać ma program a następnie je zsumować;
  • pomnożyć siłę programu przez 1,5 (zaokrąglając w górę) po czym dodać do trudności wynikającej z funkcji;
  • zwiększyć trudność o 1 za każdą opcję dodawaną do programu.

    Otrzymana w ten sposób liczba jest stopniem trudności stworzenia programu.

    2. Złożoność programu

    olejnym parametrem opisujący program jest jego złożoność, odzwierciedlającą ilość linii kodu programu. Złożoność programu obliczana jest jak trudność napisania programu w podręczniku CP2020, z tym że siłę programu należy pomnożyć przez 2.

    3. Procedura pisania programu

    rogramista musi wykonać test INT + Programowanie + 1K10 aby napisać program. Stopniem trudności jest trudność stworzenia programu, natomiast trudność pomnożona przez 6 godzin określa ilość czasu wymaganego na napisanie programu. Złożoność określa wielkość programu czyli ilość zajmowanej przez program pamięci. Należy ją odczytać z poniższej tabeli:

    Złożoność JP
    1-14 0,5
    15-20 1
    21-25 2
    26-30 3
    31-35 4
    36-40 5
    41-45 6
    46-50 7
    ... ...
    +5 +1


    dany test programowania oznacza, że program działa zgodnie z zamierzeniami. Natomiast nieudany test oznacza błędne działanie programu, ciągłe zawieszanie się itp. Można spróbować poprawić źle działający program – należy wykonać kolejny test programowania przeciwko trudności stworzenia zwiększonej o 1. Udany test oznacza znalezienie błędu i wprowadzenie koniecznych poprawek. Poprawki zwiększają złożoność programu o 10% (zaokrąglając w dół), co może zwiększyć ilość zajmowanego przez niego miejsca. Znajdowanie i poprawa błędów zajmuje 10% czasu wymaganego na napisanie programu. Nieudaną procedurę poprawiania można powtarzać nieograniczoną liczbę razy, za każdym razem zwiększając trudność stworzenia o 1 i złożoność o 10%.

    4. Opcje programowania

    rocedura programowania opisana w punkcie 3 określa zasady pisania programów przez jedną osobę, za pomocą standardowych języków programowania. W innym wypadku należy zastosować poniższe zasady.

    4.1 Pisanie zespołowe

    asada pisania zespołowego nie uległa zmianie w stosunku do podręcznika – Należy zsumować Int i umiejętności programowania wszystkich piszących, dodać 1K10. Stopniem trudności jest tak jak w przypadku pisania w pojedynkę trudność stworzenia programu. Czas pisania należy podzielić przez ilość programistów tworzących program.

    4.2 Dobór języka programowania

    o pisania programów najczęściej używa się języków programowania wysokiego poziomu, mają one tę zaletę, że są zbliżono do naturalnego języka, zawierają wiele gotowych funkcji i procedur. Programy w takich językach pisze się stosunkowo łatwo, nierzadko przypomina to układanie programu z gotowych “klocków”. Kod takiego programu musi zostać jednak przetłumaczony (skompilowany) do formy zrozumiałej przez procesor. Powoduje to często powstawanie nadmiarowych instrukcji, pętli itp. Z drugiej strony pisanie w językach niższego poziomu, bardziej zbliżonych do zrozumiałego przez procesor kodu maszynowego, jest znacznie trudniejsze, na barki programisty spada wiele zadań normalnie wykonywanych automatycznie. Lecz program napisany w takim języku zajmuje mniej miejsca i lepiej wykorzystuje zasoby.

    Przekładając to na mechanikę gry, programy napisane w językach programowania niższego rzędu mają wyższą trudność stworzenia lecz niższą złożoność. Deklarując optymalizację kodu programu należy zwiększyć trudność stworzenia programu o 2 lub więcej. Za każde 2 punkty, o które została zwiększona trudność stworzenia należy zmniejszyć złożoność o 3 punkty. W ten sposób nie można zmniejszyć złożoności programu poniżej połowy jej bazowej wielkości.

    Z drugiej strony początkujący programiści, aby ułatwić sobie pracę mogą skorzystać z gotowych bibliotek, podprogramów oraz w wysokim stopniu zautomatyzowanych środowisk programistycznych. Napisanie w ten sposób programu jest łatwiejsze, lecz jego działanie jest dalekie od optymalnego. W ten sposób można obniżyć trudność stworzenia, lecz wzrasta złożoność programu. Za każdy punkt o który zmniejszyło się trudność stworzenia (maksymalnie do połowy pierwotnej wielkości) należy zwiększyć złożoność o 2.

    Przykład tworzenia programu:

    Dwóch netrunnerów (pierwszy Int 9, Programowanie 9, drugi Int 9, programowanie 8) postanowiło napisać nową ulepszoną wersję robaka. Zaczynają więc od określenia trudności i złożoności programu:



    Funkcja / Opcja Trundość Złożność
    intruzyjny 15 15
    niewidzialny 10 10
    ruch 1 5
    niewidzialność 1 3
    ikona (teksturalna) 1 2
    Siła 4 6 8
    RAZEM 34 43


    Postanawiają ponadto zoptymalizować kod programu, tak aby zajmował mniej miejsca – zwiększają trudność o 6, dzięki czemu złożoność spada o 9. A więc trudność wynosi obecnie 40, a złożoność 32. Pisanie zajmuje im 240 godzin (40x6), co po podziale pracy na dwie osoby daje 120 godzin. Po tym czasie wykonują test – ich połączone umiejętności wynoszą 35. Na 1K10 wypadło 3, co razem z umiejętnościami daje 38, czyli poniżej trudności stworzenia. Program nie działa prawidłowo, jednak netrunnerom szkoda jest poświęconego na pisanie czasu, więc postanawiają go poprawić. Wykonują kolejny test, tym razem wypada 8, razem z umiejętnościami 43, trudność wynosiła 41, a więc udało się poprawić program. Szukanie i poprawa błędów zajęła 12 godzin, po dodaniu niezbędnych poprawek złożoność wzrosła do 35 (10% z 32 to po zaokrągleniu 3). Gotowy program zajął ostatecznie 4 JP.



    Powrot