conf/pers
This commit is contained in:
parent
04c28b9e0f
commit
5c6c55826f
84
docs/grammaire.txt
Normal file
84
docs/grammaire.txt
Normal 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
27
docs/syntaxe.txt
Normal 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?)
|
||||
|
||||
|
||||
|
||||
|
165
src/configuration/Config.java
Normal file
165
src/configuration/Config.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
BIN
textures/perso1_sprite(to update).png
Normal file
BIN
textures/perso1_sprite(to update).png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 MiB |
Loading…
x
Reference in New Issue
Block a user