conf/pers

This commit is contained in:
Indy 2021-05-27 13:51:28 +02:00
parent 04c28b9e0f
commit 5c6c55826f
4 changed files with 276 additions and 0 deletions

84
docs/grammaire.txt Normal file
View File

@ -0,0 +1,84 @@
Version modifiable:
Alphabet {ε , arène[1 à n], perso[1 à n], perso[1 à n] (bot), joueur 1, joueur 2, bot,
j1, j2, ordi, a, b, x, y, l1, r1, haut, bas, droite, gauche, egalite, vrai, faux, n, s,
}
JEU -> PARTIE | QUITTER
QUITTER -> ε
PARTIE -> ARENE PERSO JOUEUR, PERSO JOUEUR, ROUND1 | QUITTER
ARENE -> arene1 | arene2 | ... | arene n
PERSO -> perso1 | perso2| ....| perso n | BOT
BOT -> perso1 (bot) | perso2 (bot) | ....| perso n (bot)
ROUND1 -> ROUND, VAINQUEUR ,ROUND2
ROUND2 -> ROUND, VAINQUEUR ,ROUND3 | ROUND, VAINQUEUR, JOUEUR, QUITTER
ROUND3 -> ROUND,VAINQUEUR, JOUEUR, QUITTER
ROUND -> JOUEUR ACTION JOUEUR ACTION
ACTION -> ATTAQUE | DEPLACEMENT | DEFENSE | FIN DE TIMER | GAGNE | (+ cas ou le joueur ne bouge pas)
ATTAQUE -> n,NORMAL | s,SPECIAL
SPECIAL -> a SUCCES ACTION | b SUCCES ACTION | x SUCCES ACTION | y SUCCES ACTION | (+combinaison de touche)SUCCES ACTION
NORAML -> a SUCCES ACTION | b SUCCES ACTION | x SUCCES ACTION | y SUCCES ACTION | (+combinaison de touche)SUCCES ACTION
SUCCES -> vrai | faux
DEPLACEMENT -> haut ACTION | bas ACTION | droite ACTION | gauche ACTION |(+combinaison de touche)ACTION
DEFENSE -> l1 ACTION | r1 ACTION
FIN DE TIMER -> egalite
GAGNE -> vrai | faux
VAINQUEUR -> joueur 1 | joueur 2 | bot | egalite
JOUEUR -> j1 | j2 | ordi
extension a inserer de dans la grammaire
action (+ cas ou le joueur ne bouge pas)
attaque/deplacement (combinaison de touche)ACTION
est ce que toute les commandes ne devriat pas être directement dans action?
ex: arène2 Perso3 j1 Perso1 j2 (liste des actions1) joueur2 (liste des actions2)joueur1 (liste des actions3)joueur1 j1 ε
"lsite des actions" correspond a action durant un ROUND (expliqué plus bas)
signifie que dans la partie, l'arène 2 a été selectionné, le joueur 1 a pris le personnage 3 le joueur 2 le personnage 1,
les joueurs ont effectué une liste d'action qui ont fait que le joueur2 gagne la première manche, les joueurs ont effectué une
liste d'action qui ont fait que le joueur1 la seconde, les joueurs ont effectué une
liste d'action qui ont fait que le joueur 1 la troisième, le joueur 1
gagne donc la partie, la partie prends fin
ex:
liste de actions1: j1 gauche n a vrai s b faux n x vrai s l1 vrai droite....faux faux j2 droite n b vrai n b vrai s a faux ....true true
le joueur 1 a d'abord effectué (dans l'ordre) un deplacement à "gauche", puis une attaque "n" normal correspondant a la touche "a"
qui a aboutit "vrai", puis il a lancé une attaque spécial "s" en appuyant sur "b" mais elle n'a pas aboutit.... il n'a pas
gagné ce round, ("faux" avant le j2), le joueur 2 a appuyé (dans l'ordre) sur les touches "droite", "b", "b", "a".... et a remporté ce round.
ex2: arène1 Perso1 j1 Perso1(bot) ordi (liste des actions1) egalite (liste des actions2) bot (liste des actions3) bot ordi ε
signifie que, l'arène 1 a été selectionné, le joueur1 a pris le perso1 , il a joué contre un ordi qui a pris le joueur1,
le premier round n'a pas donné de vaiqueur (a cause du timer), le bot gagne le second round, le bot gagne le troisième
round, l'ordi gagne donc la partie, la partie prends fin
ex:
liste de actions1: j1 gauche n a faux s b faux n x faux l1 s y vrai.... egalite ordi droite n b vrai n b vrai s a faux.... egalite
signifie que le joueur 1 a appuyé (dans l'ordre) sur les touches "gauche", "a", "b", "x", "l1",... le timer a été
écoulé il y a une égalité, le bot a appuyé (dans l'ordre) sur les touches "droite", "b", "b", "a"....le timer a été
écoulé il y a une égalité

27
docs/syntaxe.txt Normal file
View File

@ -0,0 +1,27 @@
(interface graphique)
Launcher -> fct Start qui permet de lancer le menu afin de configurer la partie, elle ne prends aucun paramêtre
Menu -> fct Selection qui permet de choisir une arene et un joueur
(moteur du jeu)
Engine -> fct game qui lance le moteur du jeu avec les configuration correspondant a "Config" (ex:arène et skin perso)
(gameplay)
->fct _ qui lance la boucle du jeu (cf gameplay_loop2.drawio)
element moteur du jeu (https://docs.google.com/document/d/1eCxAiBJTWdCK0AfzmLIlXzun_GEAG0jeMs8qg8kWJqs/edit)
Config -> toute les config selectionné dans le menu (arene, nb_joueur, perso)
Config est un tableau (d'entier?)

View File

@ -0,0 +1,165 @@
package configuration;
import java.util.Random;
public class Config {
// tester a la main (okay normalement mais ajouter des test)
public static void main(String[] args) {
int[] tempfortest = { 0, 2, 1, 1 }; // {arene/nb_joueur/perso1/perso2} 0=alatoire
config(tempfortest);
}
// les variable a configurer
// sel1 pour savoir si on a deja selectionner le joueur 1
public static String arene, perso1, perso2;
public static int nb_joueur;
private static boolean sel1 = false;
/*
* fonction config qui prend en entre un tableau d'entier chaque case
* correspondant a une variable, et ne retourne rien mais modifie la valeur des
* variables par des fonctions annexes
*/
private static void config(int[] tab) {
int i = 0;
while (i < tab.length) {
switch (i) {
case 0:
SelArene(tab[i]);
i++;
break;
case 1:
NbJoueur(tab[i]);
i++;
break;
case 2:
SelPerso(tab[i]);
i++;
break;
case 3:
SelPerso(tab[i]);
i++;
break;
/*
* case 4: ?
*/
default:
System.out.println("ERROR OUT OF BOUNDS CONFIG ARRAY");
i = tab.length;
break;
}
}
System.out.println(arene + " " + nb_joueur + " " + perso1 + " " + perso2 + " " + sel1);
}
/*
* fonction SelArene prend un entier en parametre et permet de choisir l'arene
* du jeu
*/
private static void SelArene(int s) {
switch (s) {
case 0:
SelArene(random(1, 2));
break;
case 1:
arene = "arene1.png";
break;
case 2:
arene = "arene2.png";
break;
default:
System.out.println("ERROR ARENE INEXISTANTE");
}
}
/*
* fonction NbJoueur prend un entier en parametre et permet de determiner si un
* bot sera necessaire
*/
private static void NbJoueur(int s) {
switch (s) {
case 1:
nb_joueur = 1;
break;
case 2:
nb_joueur = 2;
break;
default:
System.out.println("ERROR NUMBER OF PLAYER");
}
}
/*
* fonction SelArene prend un entier en parametre et permet de choisir le
* personnage en fonction du joueur
*/
private static void SelPerso(int s) {
if (sel1 == false) {
switch (s) {
case 0:
SelPerso(random(1, 2));
break;
case 1:
perso1 = "perso1.png";
sel1 = true;
break;
case 2:
perso1 = "perso2.png";
sel1 = true;
break;
default:
System.out.println("ERROR PERSO INEXISTANT");
}
} else if (sel1 == true) {
switch (s) {
case 0:
SelPerso(random(1, 2));
break;
case 1:
perso2 = "perso1.png";
sel1 = false;
if (perso1 == perso2) {
perso2 = "perso1_swapcolor.png";
}
break;
case 2:
perso2 = "perso2.png";
sel1 = false;
if (perso1 == perso2) {
perso2 = "perso2_swapcolor.png";
}
break;
default:
System.out.println("ERROR PERSO INEXISTANT");
}
} else {
System.out.println("ERROR SELECTION PLAYER");
}
}
// fonction nombre aleatoire entre deux borne
private static int random(int min, int max) {
Random random = new Random();
int value = random.nextInt(max - 1 + min) + min;
return value;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 MiB