package src;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Game {

    String _player;
    DataBaseWorker _dbworker;
    String _judge;


    public Game(String player, DataBaseWorker dbworker, String judge){
        _player = player;
        //_dbworker = dbworker;
        _judge = judge;
    }

    public void OrganizeGame()
    {
        try {
            Files.walk(Paths.get("d:\\AICupEnvironment\\Games\\Cross\\")).forEach(filePath -> {
                Do(filePath);
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /*
     * Здесь проверяем, есть ли файл runme.sh
     * Если есть, то вызываем программу Judge
     * Ловим int ответ, расшифровка пока такая:
     * 0 - ничья (а что, очень даже может быть)
     * 1 - выиграл первый игрок
     * 2 - выиграл второй игрок
     * Может случиться так, что игра не пройдет (кто-то из игроков не уложится во время или еще что-то)
     * тогда 2 варианта - либо Judge сам решает, что ставит техническое поражение кому-то (то есть другой побеждает)
     * либо определяет эту ситуацию и вернет другое значение
     * это позволит записать в БД соответствующую информацию
    */
    private void Do(Path filePath) {
        if(!filePath.endsWith("runme.sh"))
            return;

        String commands[] = {_judge, "user1, user2"};
        Runtime rt = Runtime.getRuntime();

        int gameResult = 0;
        try {
            Process proc = rt.exec(commands);
            gameResult = proc.exitValue();

            _dbworker.WriteGameResult("user1", "user2", gameResult);


        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

@@ -152,22 +152,58 @@
 String _
-player
+game;%0A    String _player;%0A    String _lang
 ;%0A    Da
@@ -270,22 +270,48 @@
 (String 
-player
+game, String player, String lang
 , DataBa
@@ -344,16 +344,38 @@
 judge)%7B%0A
+        _game = game;%0A
         
@@ -404,10 +404,30 @@
     
-//
+_lang = lang;%0A        
 _dbw
@@ -563,46 +563,42 @@
 get(
-%22d:%5C%5CAICupEnvironment%5C%5CGames%5C%5CCross%5C%5C%22
+FileSystemWorker.GetRoot() + _game
 )).f
@@ -1477,44 +1477,331 @@
 ing 
-commands%5B%5D = %7B_judge, %22user1, user2%22
+firstPlayer = _player;%0A        String firstPlayerLang = _lang;%0A%0A        String secondPlayer = FileSystemWorker.GetUsername(filePath);%0A        String secondPlayerLang = FileSystemWorker.GetLang(filePath);%0A%0A        String commands%5B%5D = %7B_judge, firstPlayer + %22 %22 + firstPlayerLang + %22 %22 + secondPlayer + %22 %22 + secondPlayerLang
 %7D;%0A 
@@ -1869,12 +1869,8 @@
 sult
- = 0
 ;%0A  
@@ -1966,25 +1966,24 @@
 xitValue();%0A
-%0A
             
@@ -2012,24 +2012,68 @@
 ult(
-%22user1%22, %22user2%22
+firstPlayer, firstPlayerLang, secondPlayer, secondPlayerLang
 , ga
@@ -2083,18 +2083,16 @@
 esult);%0A
-%0A%0A
         

Add new fields. Maybe this class became very big and flat, but it will call all other modules