În acest an vă propunem realizarea unui program care să joace cât mai bine o versiune online a jocului Risk [1], numit Warlight [2]. Programul se poate realiza în oricare din limbajele de programare suportate [2]. Echipa de PA recomandă folosirea limbajelor C, C++, Java, C# sau Python. Pentru alte limbaje, vă rugăm să ne contactaţi înainte de a începe implementarea.
Concursul se va desfășura folosind platforma Warlight AI Challenge 2 [3] pusă la dispoziție pentru Proiectarea Algoritmilor @ UPB la adreasa http://pub.theaigames.com/. Același joc a fost deja folosit pentru Warlight AI Challenge, ediția 1. Cum unii participanţi la acest concurs poate şi-au publicat sursele şi ideile online, vrem să fie clar că:
Proiectul va cuprinde 5 etape, după cum este prezentat în continuare. Fiecare etapă presupune dezvoltarea unui bot care va juca Warlight din ce în ce mai inteligent, iar ultima etapă reprezintă un concurs la nivel de serie, iar apoi la nivel de an pentru a stabili marele câștigător al proiectului de PA din anul 2015. Fiecare echipă poate să își schimbe complet strategia de joc între etape dacă membrii săi consideră acest lucru oportun.
Atentie! Toate deadline-urile stabilite pentru proiect sunt hard, deci nu sunt acceptate teme trimise dupa termenul limita.
Etapa 0 presupune formarea unor echipe de câte 3-4 persoane. Echipele se pot forma între oricare 3-4 studenţi din aceeaşi serie. Nu se permit echipe cu oameni din serii diferite decât dacă ați rămas fără niciun coechipier în seria voastră sau dacă sunteți restanțieri. Fiecare echipă va desemna un membru al acesteia cu rolul de căpitan. Căpitanul va avea, printre altele, sarcina de a trimite în numele echipei sale soluţiile pentru fiecare din etapele rămase. Ceilalţi membri ai echipei nu vor trimite soluţii, decât in cazul in care căpitanul nu poate face aceasta din motive obiective.
Această etapă va avea 1 săptămână. Punctajul alocat acestei etape este de 0 puncte.
Deadline-ul acestei etape este marți, 10 martie 2015, ora 23:55.
Prima etapă a proiectului presupune acomodarea echipelor cu jocul Warlight 2 realizarea unei soluții simple care să joace corect. Aceasta nu trebuie să aibă un nivel de complexitate ridicat pentru obținerea punctajului maxim, întrucât evaluarea se va face împotriva unui bot care va muta aleator (PABOT1). Vor fi n meciuri, iar pentru punctajul maxim, soluția trebuie să obțină minim n/2 puncte. Punctajul unui meci este următorul:
Punctajul etapei este de 0.4 puncte. Aceste vor fi acordate în felul următor, în funcție de punctajul obținut în meciurile cu bot-ul nostru:
Această etapă va avea 2 săptămâni. Punctajul alocat acestei etape este de 0.4 puncte.
Deadline-ul acestei etape este marti, 24 martie 2015, ora 23:55
Pentru aceasta etapa, sistemul de punctare ramane acelasi ca la etapa 1, insa punctajul maxim va fi de 0.5 puncte.
Deadline-ul acestei etape este marti, 14 aprilie 2015, ora 23:55 duminica, 19 aprilie 2015, ora 23:55 marti, 21 aprilie 2015, ora 13:00
Pentru aceasta etapa, sistemul de punctare ramane acelasi ca la etapele precedente, insa punctajul maxim va fi de 0.5 puncte.
Deadline-ul acestei etape este marti, 12 mai 2015, ora 23:55
In cadrul acestei etape se va realiza un concurs intre proiectele realizate. In functie de numarul de proiecte finite realizate se va stabili formatul concursului: campionat, tournament tree sau grupe+tournament tree.
Punctajul aferent acestei etape este de 0.6 puncte si se va acorda dupa urmatorul algoritm:
Deadline-ul acestei etape este luni, 25 mai 2015, ora 23:55.
Da. Nu.
Cum vrei, pe baza oricaror criterii crezi tu ca sunt importante.
Din experienta anilor trecuti, niciodata nu se intampla ca toti membrii echipei sa lucreze la fel de mult. Acest fapt se intampla din varii motive: fie nu toti pot, fie unul sau doi acapareaza toata munca si nu le dau celorlalti o sansa (nu radeti, s-a intamplat :P), fie <insert another reason here>. Fiecare echipa va avea un capitan care va avea, printre altele, datoria de a comunica echipei de PA (asistentului de laborator, titularului de curs etc) orice neregula din cadrul propriei echipe. In afara de asta si de a vorbi putin individual cu membrii fiecarei echipe nu exista alta solutie. Depinde de prioritatile fiecarui membru de echipa si a echipei per ansamblu.
Depinde…in mod normal responsabilitatile de bun simt ar fi de a imparti eficient munca intre coechipieri, de a face un time management bun, de a lega o strategie de joc etc. Dar mai pot fi si altele, precum PR pe forum .
TBD
In oricare limbaj de programare cu care va intelegeti mai bine. De remarcat este faptul ca pentru acest proiect timpul de executie este critic.
Pe forum-ul dedicat proiectului de pe pagina web a cursului de PA.