junglespeed.service.ConfigService.java Source code

Java tutorial

Introduction

Here is the source code for junglespeed.service.ConfigService.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package junglespeed.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import junglespeed.entity.Carte;
import junglespeed.entity.Joueur;
import junglespeed.entity.Partie;
import junglespeed.enumeration.TypePartie;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

/**
 *
 * @author admin
 */
@Service
public class ConfigService {

    private int nbJoueursMax = 2;
    private int nbPartiesMax = 4;
    private int nbCartes = 20;
    private int timer = 3;
    private Map<Integer, String> map = new HashMap<>();

    @Autowired
    private CarteService carteService;

    @Autowired
    private PartieService partieService;

    @Autowired
    private JoueurService joueurService;

    public ConfigService() {
    }

    @Scheduled(fixedDelay = 1000)
    public void init() {

        List<Partie> liste = partieService.findByTypePartie(TypePartie.EN_ATTENTE);
        while (liste.size() < nbPartiesMax) {
            Partie partie = new Partie("Partie", TypePartie.EN_ATTENTE);
            partie.setJoueurs(new ArrayList<Joueur>());
            partieService.save(partie);
            liste = partieService.findByTypePartie(TypePartie.EN_ATTENTE);
        }

        for (Partie partie : liste) {
            if (partie.getJoueurs().size() == nbJoueursMax) {
                partie.setTypePartie(TypePartie.EN_COURS);
                partieService.save(partie);
            }
        }
    }

    @Scheduled(fixedDelay = 1000)
    public void timer() {
        while (timer > 0) {
            timer--;
        }
        if (timer == 0) {
            timer = 3;
        }
    }

    public void distributionCartes(Partie partie) {

        map.put(1, "BLUE");
        map.put(2, "RED");
        map.put(3, "YELLOW");
        map.put(4, "GREEN");
        map.put(5, "GREY");
        map.put(6, "WHITE");
        map.put(7, "BLACK");
        map.put(8, "BLUE");

        int lower = 1;
        int higher = 8;

        for (Joueur joueur : partie.getJoueurs()) {
            for (int i = 0; i < nbCartes; i++) {
                int random = (int) (Math.random() * (higher - lower + 1)) + lower;
                Carte carte = new Carte(map.get(random), joueur);
                joueur.getCartes().add(carte);
                carteService.save(carte);
                joueurService.save(joueur);
            }
        }
    }

    public int getNbJoueursMax() {
        return nbJoueursMax;
    }

    public void setNbJoueursMax(int nbJoueursMax) {
        this.nbJoueursMax = nbJoueursMax;
    }

    public int getNbPartiesMax() {
        return nbPartiesMax;
    }

    public void setNbPartiesMax(int nbPartiesMax) {
        this.nbPartiesMax = nbPartiesMax;
    }

    public int getNbCartes() {
        return nbCartes;
    }

    public void setNbCartes(int nbCartes) {
        this.nbCartes = nbCartes;
    }

    public int getTimer() {
        return timer;
    }

    public void setTimer(int timer) {
        this.timer = timer;
    }

    public PartieService getPartieService() {
        return partieService;
    }

    public void setPartieService(PartieService partieService) {
        this.partieService = partieService;
    }

}