Chcecie dobry konkurs?

0

Chciałbym zrobić konkurs programistyczny, ale nie taki gdzie liczy się powiedzmy szybkość wykonania, ocena sędziów. Zawodnicy musieli by napisać program AI(sztucznej inteligencji), a dokładniej funkcję która była by odpowiedzialna za sterowanie wirtualnym bohaterem. Bohaterem... dużo powiedziane, jakimś "czymś" np. wężem(tym z starych komórek). Toczone były by wirtualne pojedynki pomiędzy zawodnikami(ich funkcjami). Pierwsze miejsce to oczywiście nagrody.

Ale mam kilka pytań odłączenie tego pomysłu do was:
-Czy chcielibyście <ort>wziąźć </ort>w tym udział.
-Jaki język, jak duża ilość możliwych operacji w wirtualnym świecie(Tak aby słabsi programiści dali sobie radę z napisaniem "średniego" algorytmu).
-Jaki rodzaj pojedynków. Moim pierwszym pomysłem były pojedynki ort!, trzeba <ort>odgryź </ort>część przeciwnika, można stosować uniki... Myślę że macie tutaj ciekawsze pomysły
-jakieś sugestie?

0

pomysl nie jest zly tylko okresl srodowisko takiej "walki"

0

Jeśli chodzi o język programowania to myślę o c++ lub Pascalu.
Zawodnik dostawał by kod źródłowy na którym mógłby wypróbować swoje dzieło.
Aby sterować wirtualnym bohaterem, dostępna by była klasa np. CWąż zawierająca takie metody jak np. W_Lewo,W_Prawo,Co_widzisz,Podaj_położenie...
Symulacje pojedynków odbywały by się na serwerze, potem ich wyniki a może i przebieg można by zobaczyć na stronie projektu.

Przepraszam za zbytnie używanie trybu przypuszczającego.

0

Hmm, pomysł ciekawy. Na pewno chętnie wziąłbym w takim konkursie udział. Co do środowiska walki: jak dla mnie całkiem niezły pomysł z tym wężem, plansza jak dla mnie mogła by to być jak w klasycznych 'wężach' dwuwymiarowa i podzielona na pola (można by też spróbować z 'gładką' planszą na której można by obracać głowę węża o dowolny kąt, tyle że było by to trudniejsze i dla twórców konkursu, i dla uczestników ;)) może oprócz węży byłyby na niej jakieś przeszkody (np. ściany) i bonusy (np. tak jak w pacmanie można by 'gryźć' tylko po zdobyciu odpowiedniego bonusa).

Język to dla mnie najlepiej C++ albo Pascal, chociaż jeśli obsługa węża odbywała się tak jak to wymyślił Sunday to może wystarczyłoby podanie samego algorytmu bez implementacji w jakimś konkretnym języku. ;)

0

bez implementacji raczej nie da rady, bo kod musi być wykonany przez komputer.

0

COREWARS, COREWARS [diabel]
dobra, proponuję coś nieco ambitniejszego niż jakieś tam algorytmy :> A mianowicie:

  • maszyna wirtualna /najlepiej postawiona na serwerze 4p/ z własnym formatem instrukcji;
  • asembler na tą maszynkę :> oczywiście nie jakieś x86 czy '51 ale nieco prostszy, oferujący kilka nieco bardziej kompleksowych rozkazów;
  • VMasm kompilowany do bytekodu /oczywiście też własnego/ lokalnie lub na serwerze, będzie potrzebny debugger i emulator ale to nie problem.
  • projekt OpenSource, jeżeli serwer docelowy chodzi na IA-32 to mogę się podjąć /chyba... ;P/ implementacji silnika w czystym asm + C na front-end /tu już nie dla mnie jeżeli trzeba sieć obsługiwać/;
    Ciekawie by się coś takiego zapowiadało, samą VM zrealizować to też nie jest jakiś wielki problem /przynajmniej dla mnie/.
    Oczywiście nie chodzi mi o idealnego klona CW - tylko pomysł jako taki. Kto jest za? Trzeba będzie omówić jakie konkretnie zasady mają panować, jakie ograniczenia. Co do VM - demokratycznie dojdzie się jak to ma wyglądać :>. Po sformułowaniu założeń można się brać za robotę. Tylko nie mówcie, że to zbyt ambitne... chyba, że chcecie mieć wizualizację 3D pamięci i procesów VM i masową wojnę XXX programów [rotfl]
0

Serwer jest :)
czy to pod wodza Linuksa, czy tez *BSD (do wyboru, do koloru)

0

Własny język, coś podobnego do asm, bardzo ambitne. Ale trzeba by było to dokładnie przeanalizować. Jeśli swoje kody użytkownicy będą tworzyć w c++ lub Pascalu odpada masa problemów. Przede wszystkim nie trzeba się uczyć języka który ma zastosowanie tylko w jednym projekcie, wielu ludzi już umie c++ bądź Pascala. Pyzatym jeśli chodzi o zastosowanie już istniejącego języka uczestnicy mogli by to traktować jako dobre ćwiczenie. Ale nad wszystkim można się zastanowić.

Druga sprawa to jak ma się odbywać ta walka. Chciałbym żeby to nie były tylko walki kodów – zajmowanie pamięci innym procesom, jakieś walki wirusów, w gruncie to praktycznie matematyka. Myślę że lepiej było by żeby gościu mógł zobaczyć jak wynik jego prac się sprawuje, potrzebna jest wizualizacja walk.

Co do współpracy, mam nadzieję że na tym forum pojawi się jeszcze kilka ciekawych pomysłów, zaangażuje się kilku ludzi, uda nam się spotkać np. na gg, nakreślić plany…

Czy mogło by to wyglądać mniej więcej w taki sposób:

const Szerokosc_widzenia=5; //określa wielkość kwadratu który 'widzi' wąż
const Ilosc_czesci_max=25; //określa ile z ilu elementów maxymalnie może się składac wąż

enum TWynik_decyzji{dalej=0,lewo=1,prawo=2}; //typ- jakie decyzje może podjąć wąż(funkcja decyzyjna)

TWynik_decyzji Decyzja(char* widoczne,char stan_czesci) //funkcja decyzyjna opisana niżej
{
//Tutaj zawodnik umieszcza kod sterujący wężem
}

//Zawodnik pisze cialo tej funkcji, ma ona na celu pokierować wężem (Zwrucic odpowiednią wartosc)
//jako parametry otrzymuje w tablicy widoczne wykaz tego co widzi wąż,
//tablica ma dwa wymiary widoczne[Szerokosc_widzenia][Szerokosc_widzenia] wypelnione
// np. 'X'-częsc przeciwnika, 'P'-punkt...
//Drugi parametr to stan części to tablica jedno wymiarowa stan_czensci[ilosc_czesci_max]; i podobnie
//np.'o'-moja częśc,'z'-aktualnie zjadana...
//funkcja Decyzja jest wywoływana naprzemiennie z funkcją decyzja przeciwnika

0

ITPW - możecie zobaczyć jak tam to robili - programy pomocnicze też są udostępniane... Dobry pomysł na grę(walkę) to podstawa, rok temu była niezła zabawa, a w tym roku nie chciało mi się nawet jakiegoś naiwnego programu napisać.

Pozdrawiam!

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