We are about to switch to a new forum software. Until then we have removed the registration on this forum.
So i'm new at progtamming and i'm creating a programm for school and i don't know why i always got first a "NullPointerException" then a "Could not run the sketch (Target VM failed to initialize). For more information, read revisions.txt and Help ? Troubleshooting." i look over and over at my code and i don't understand what's the problem..
Here is my code if needed :
//String mot="Ordinateur"; // mot test
float FRmot;
int Rmot;
String Bmot[] = new String[10];
String mot;
int longueurmot; //longueur de la chaîne du mot à deviner en lettre
int xDTiret; // position X de départ du tiret
int yTiret=200; // postiion Y du tiret
int xFTiret; // position X de fin du tiret
int espaceTiret=70; // espace entre 2 tirets
PImage classe; // charge l'image du fond d'écran
char tabmot[]=new char[longueurmot];// tableau contenant le nombre de lettres du mot à deviner
PImage dessinPenduEntier;
PImage BarreDuHaut;
PImage BarreDuHautETBarreVerticale;
PImage BarreDuHautETbarreVerticaleETbarreDuBas;
PImage BarreDuHautETbarreVerticaleETbarreDuBasETangleETcorde;
PImage BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETtete;
PImage BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorps;
PImage BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGauche;
PImage BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGaucheETbrasDroit;
PImage BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGaucheETbrasDroitETjambeGauche;
PImage PERDU;
PImage GAGNE;
int points=0; //nombre de bonnes lettres qu'a trouvé le joueur
int fautes=0; // nombre de fautes qu'a fait le joueur
int nbEssais=10-fautes; // nombre d'essais qui reste au joueur
boolean erreur=false; // détecte si la lettre tapée ne correspond pas à la lettre testée
boolean presence=false; // détecte si la lettre tapée est présente dans le mot
void settings()
{
size(1200, 810);
}
void setup()
{
chargeMotAleatoire();
xDTiret=600/longueurmot;
xFTiret=xDTiret+50;
loadImages(); // fonction chargeant toutes les images du programme
//bibliotheque();
background(classe); // image comme fond d'écran
fill(0); // tirets en noirs
dessineTirets(); // dessine les tirets à remplacer par les lettres à deviner
textSize(100); // taille de la première lettre du mot
text(mot.charAt(0), xDTiret-(longueurmot+1)*espaceTiret, yTiret); // écrire la première lettre du mot
textSize(50); // taille du compteur de lettres
text(longueurmot+1, 500, 100); // afficher le nombre de lettres que contient le mot
for (int n=0; n<longueurmot; n++)
{
tabmot[n]=(mot.charAt(n+1));
}
}
void draw()
{
ChargerNouveauMot(); // bouton permettant de charger un nouveau mot à deviner
Instructions(); // affiche les instructions sur le tableu
dessinependu(); // dessine le pendu au fur et à mesure que le joueur fait une erreur
gagne(); // affiche le message et l'image spécifique lorsque le joueur trouve le mot avant d'être pendu
}
void dessineTirets() // dessinne les tirets
{
for (int n=0; n<longueurmot; n++) // dessine "nombre de lettres" fois un tiret
{
line(xDTiret, yTiret, xFTiret, yTiret); // tiret
xDTiret=xDTiret+espaceTiret; // position X de départ prochain tiret
xFTiret=xFTiret+espaceTiret; // position X final du prochain
}
}
void ChargerNouveauMot()
{
fill(200, 150, 20); // couleur du bouton
stroke(50, 100, 250); // couleur des contours du bouton
rect(820, 430, 340, 85); // bouton
fill(0);
textSize(30);
text("Clique ici pour charger un nouveau mot", 820, 430, 340, 85);
/*if ((mouseX>=820)&&mouseX<=820+340 && mouseY>=430 && mouseY<=430+85) && mousePressed && (mouseButton == LEFT)) // test si la souris est dans le bouton puis si elle est pressée
{
//on charge un mot aléatoire
}*/
}
void Instructions()
{
noFill();
noStroke();
rect(200, 270, 260, 200);
textSize(15);
fill(245, 245, 220);
text("Appuie sur une touche de ton clavier pour chercher la bonne lettre", 200, 280, 260, 200);
text("Il te reste ", 200, 360, 260, 200);
text(nbEssais, 272, 376);
text(" essais", 290, 375);
}
void keyPressed()
{
{
if ((key>='a' && key<='z') ||(key>='A' && key<='Z' ))
{
for (int n=0; n<longueurmot; n++)
{
if (key==tabmot[n])
{
presence=true;
fill(0);
textSize(100);
text(key, xDTiret-(longueurmot-n)*espaceTiret, yTiret);
points=points+1;
}
if (key!=tabmot[n])
{
erreur=true;
if (presence==false)
{
fautes=fautes++;
}
}
}
}
}
}
void loadImages()
{
classe=loadImage("Classe.jpg"); //définition de l'image
dessinPenduEntier = loadImage("imgpendu.png");
BarreDuHaut = loadImage("barre du haut.png");
BarreDuHautETBarreVerticale = loadImage("barre du haut + barre verticale.png");
BarreDuHautETbarreVerticaleETbarreDuBas = loadImage("barre du haut + barre verticale + barre du bas.png");
BarreDuHautETbarreVerticaleETbarreDuBasETangleETcorde = loadImage("barre du haut + barre verticale + barre du bas + angle + corde.png");
BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETtete = loadImage("barre du haut + barre verticale + barre du bas + angle + corde + tete.png");
BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorps = loadImage("barre du haut + barre verticale + barre du bas + angle + corde + tete + corps.png");
BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGauche = loadImage("barre du haut + barre verticale + barre du bas + angle + corde + tete + corps + bras gauche.png");
BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGaucheETbrasDroit = loadImage("barre du haut + barre verticale + barre du bas + angle + corde + tete + corps + bras gauche + bras droit.png");
BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGaucheETbrasDroitETjambeGauche = loadImage("barre du haut + barre verticale + barre du bas + angle + corde + tete + corps + bras gauche + bras droit + jambe gauche.png");
PERDU=loadImage("Titeuf_PERDUtr.png");
GAGNE=loadImage("Titeuf_GAGNEtr.png");
}
void dessinependu() {
if (fautes==1) {
image(BarreDuHaut, width/1.5, height/25);
}
if (fautes==2) {
image(BarreDuHautETBarreVerticale, width/1.5, height/25);
}
if (fautes==3) {
image(BarreDuHautETbarreVerticaleETbarreDuBas, width/1.5, height/25);
}
if (fautes==4) {
image(BarreDuHautETbarreVerticaleETbarreDuBasETangleETcorde, width/1.5, height/25);
}
if (fautes==5) {
image(BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETtete, width/1.5, height/25);
}
if (fautes==6) {
image(BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorps, width/1.5, height/25);
}
if (fautes==7) {
image(BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGauche, width/1.5, height/25);
}
if (fautes==8) {
image(BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGaucheETbrasDroit, width/1.5, height/25);
}
if (fautes==9) {
image(BarreDuHautETbarreVerticaleETbarreDuBasETangleETcordeETteteETcorpsETbrasGaucheETbrasDroitETjambeGauche, width/1.5, height/25);
}
if (fautes==10) {
image(dessinPenduEntier, width/1.5, height/25);
image(PERDU, 300, 350);
textSize(60);
fill(0);
text("TU AS PERDU ! Charge un nouveau mot", 20, 700);
}
}
void gagne()
{
if (points==longueurmot)
{
image(GAGNE, 300, 350);
textSize(50);
fill(0);
text("BRAVO TU AS GAGNÉ ! Charge un nouveau mot", 20, 700);
}
}
void bibliotheque()
{
Bmot[10]="ordinateur";
Bmot[2]="voiture";
Bmot[3]="clavier";
Bmot[4]="classe";
Bmot[5]="ecole";
Bmot[6]="telephone";
Bmot[7]="maison";
Bmot[8]="table";
Bmot[9]="television";
Bmot[10]="chose";
}
void chargeMotAleatoire()
{
FRmot=random(1, 10);
Rmot=int(FRmot);
mot=Bmot[Rmot];
longueurmot=mot.length()-1;
}
Thanks for your attention and sorry for my bad english..
Answers
at which line number is the error?
not sure about the setting func - put size () in setup()?