Skip to content

Latest commit

 

History

History
93 lines (73 loc) · 2.71 KB

README.md

File metadata and controls

93 lines (73 loc) · 2.71 KB

Proiect Metode de Dezvoltare Software

If you are lucky, the project might be hosted here: Fight Bots

Tehnologii posibile

  1. NodeJS pentru server
  2. Socket.io pentru comunicare server / frontend
  3. zerorpc.io pentru comunicarea NodeJS / Python
  4. Pytorch pentru ML
  5. ElectronJS pentru aplicatie desktop in nodejs
  6. KonvasJS pentru rendare 2d in HTML
  7. Bazel pentru C++ Build
  8. GTest pentru testare C++
  9. ProtocolBuffers pentru comunicare / salvare date
  10. Abseil.io pentru functionalitati aditionale C++

Development

Pentru instructiuni la cum sa contribui la proiect, consulta Development

Boti

stdin: starea jocului stdout: mutarea noastra

Eval

    string PlayTurn(int player, string state) {
        string ans = exec("Bot_nr#" + player + ".out", stdin = state);
        return ans;
    }

    void Render(Sprite s) {
        screen.display(s);
    }

    // Ce implementeaza cu adevarat evalul
    int Eval() {
        string state = "1234455";
        player = 1;
        while (true) {
            string state_nou = PlayTurn(player, state);
            if (state_nou_prost)
                return 1 - player;
            player = 1 - player;
            Sprite s = ...
            Render(s);
        }
    }

Functionalitati

Etapa 1

  • Schelet al proiectului -- Evaluarea merge, exista frontend, backend, baza de date.

Etapa 2

  1. Useri se pot loga cu google / fb / github / twitter.
  2. Exista o colectie de jocuri. Un joc este constituit din:
    • Un enunt -- descrierea jocului.
    • Un grader -- program capabil sa decida castigatorul dintr-o multime de boti.
    • Unul sau mai multi boti oficiali -- pe care utilizatorii trebuie sa ii bata pentru a castiga puncte.
    • Pentru a lua puncte, utilizatorii trebuie sa bata (in ordine) botii oficiali.
  3. Exista un clasament. Clasamentul exista pentru:
    • Fiecare joc in parte, cu cei mai buni jucatori.
    • Per toatal, cu userii cu cele mai multe puncte.

Etape 3

  1. Userii pot adauga probleme. Trebuie sa trimita:
    • Un titlu
    • Un enunt
    • Un grader
    • O serie de boti (daca problema este cu mai multi jucatori)

Etapa 4

  1. Se organizeaza campionate. Organizarea:
    • Se organizeaza o competitie (ca pe codeforces).
    • Se anunta problema si cerintele.
    • Se dau la dispozitia utilizatorilor cativa boti (sau niciunul) pe care isi pot testa submisia.
    • Cand se termina competitia, se face cumva un clasament al jucatorilor facandu-i sa se bata intre ei.
  2. Reprezentare grafica a problemei. La trimiterea unei probleme, se poate opta pentru integrarea reprezentarii grafice.
  3. Se pot trimite surse si in alte limbaje (de ex python)