Code Java & HTML: Tic Tac Toe

Fermé
magiikaurel Messages postés 51 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 13 novembre 2012 - 26 sept. 2011 à 13:29
magiikaurel Messages postés 51 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 13 novembre 2012 - 26 sept. 2011 à 19:54
Bonjour,

Bonjour, tout d'abord je suis désolé si le message que je viens de poster n'est pas dans la bonne section de ce forum (j'hésitais entre deux sous-catégories ^^)

Mais bon, je vous expose mon problème. Je suis novice dans la programmation (HTML & autre) et je souhaiterais intégré à mon site web un jeu de Tic Tac toe (ou morpion pour ceux qui préfère). Donc j'ai fait mes petites recherches sur le web grâce à mon ami google et j'ai trouvé un code java de cette application:

import java.util.Scanner;

public class TicTacToe{

        //keeps track of the turns to state a cat's game
        public static int catsGame=0;

        //all of the characters
        private static char r1c1;
        private static char r1c2;
        private static char r1c3;
        private static char r2c1;
        private static char r2c2;
        private static char r2c3;
        private static char r3c1;
        private static char r3c2;
        private static char r3c3;
        
        //draws the board
        private static void drawBoard() {
                System.out.println(r1c1 + "|" + r1c2 + "|" + r1c3);
                System.out.println(r2c1 + "|" + r2c2 + "|" + r2c3);
                System.out.println(r3c1 + "|" + r3c2 + "|" + r3c3);
        }
        //gives the user an example
        private static void exampleBoard() {
        System.out.println(" 7 | 8 | 9 ");
        System.out.println(" 4 | 5 | 6 ");
        System.out.println(" 1 | 2 | 3 \n\n");
        }
        //gets the input from the user
        public static void getInput(int playerNumber){
                Scanner kb = new Scanner(System.in);
                System.out.print("Where do you want the Piece?:  ");
                int location = kb.nextInt();
                char piece;
                if (playerNumber == 1)
                        piece = 'X';
                else
                        piece = 'O';
        
                        
                if (location == 7)
                        if (r1c1 == ' ')
                                r1c1 = piece;
                        else getInput(playerNumber);
                if (location == 8)
                        if (r1c2 == ' ')
                        r1c2 = piece;
                        else getInput(playerNumber);
                if (location == 9)
                        if (r1c3 == ' ')
                        r1c3 = piece;
                        else getInput(playerNumber);
                if (location == 4)
                        if (r2c1 == ' ')
                        r2c1 = piece;
                        else getInput(playerNumber);
                if (location == 5)
                        if (r2c2 == ' ')
                        r2c2 = piece;
                        else getInput(playerNumber);
                if (location == 6)
                        if (r2c3 == ' ')
                        r2c3 = piece;
                        else getInput(playerNumber);
                if (location == 1)
                        if (r3c1 == ' ')
                        r3c1 = piece;
                        else getInput(playerNumber);
                if (location == 2)
                        if (r3c2 == ' ')
                        r3c2 = piece;
                        else getInput(playerNumber);
                if (location == 3)
                        if (r3c3 == ' ')
                        r3c3 = piece;
                        else getInput(playerNumber);
        }
        
                
        //Checks to see if anyone won        
        private static char checkWinner() {
                if (r1c1 == r1c2 && r1c2 == r1c3 && r1c1 != ' ')
                        return r1c1;
                else if (r2c1 == r2c2 && r2c2 == r2c3 && r2c1 != ' ')
                    return r2c1;
                else if (r3c1 == r3c2 && r3c2 == r3c3 && r3c1 != ' ')
                    return r3c1;
                else if (r1c1 == r2c2 && r2c2 == r3c3 && r1c1 != ' ')
                    return r1c1;
                else if (r1c3 == r2c2 && r2c2 == r3c1 && r1c3 != ' ')
                    return r1c3;
                else if (r1c1 == r2c1 && r2c1 == r3c1 && r1c1 != ' ')
                    return r1c1;
                else if (r1c3 == r2c3 && r2c3 == r3c3 && r2c3 != ' ')
                    return r1c3;
        else if (r1c2 == r2c2 && r2c2 == r3c2 && r1c2 != ' ')
                        return r1c2;
                else
                        return 'P';
                
    }
        
                
    //starts a new board
        private static void newGame() {
                r1c1 = ' ';
                r1c2 = ' ';
                r1c3 = ' ';
                r2c1 = ' ';
                r2c2 = ' ';
                r2c3 = ' ';
                r3c1 = ' ';
                r3c2 = ' ';
                r3c3 = ' ';
        }
        //Main Method
        public static void main(String args[]) {
                r1c1 = ' ';
                r1c2 = ' ';
                r1c3 = ' ';
                r2c1 = ' ';
                r2c2 = ' ';
                r2c3 = ' ';
                r3c1 = ' ';
                r3c2 = ' ';
                r3c3 = ' ';
                
                int playerNumber =1;
                
            
                
                Scanner kb = new Scanner(System.in);
                do{
                        catsGame = 0;
                        newGame();
                        while(checkWinner()=='P'){
                                
                                exampleBoard();
                                drawBoard();
                                checkWinner();
                                playerNumber *= -1;
                                getInput(playerNumber);
                                catsGame ++;
                                System.out.println(catsGame);
                                if (catsGame == 9){
                                        break;
                                }
                        
                        }
                         exampleBoard();
                         drawBoard();
                        if (checkWinner()=='X')
                                                System.out.println("X Wins!!!!!");
                        else if (checkWinner()=='O')
                                System.out.println("O Wins!!!!!");
                        else 
                                System.out.println("Cat's Game!");
                        
                        System.out.println("Would you like to play again? (Y/N)");
                } while (kb.next().toLowerCase().charAt(0) == 'y');
                
        }
}



Et là je suis face à un problème de taille, comme insérer ce code sachant que j'aimerais que l'utilisateur n'ai pas a télécharger de fichier (l'application se lancerais automatiquement quand on arrive sur une page X)? J'avais essayé de le convertir en XHTML avec Java2html sans résultat.

Par avance, merci pour tous ceux qui voudront bien répondre à mon appel à l'aide ;-)

Cordialement,

Magiik0Rel

PS: si vous ne connaissez pas la marche à suivre exacte, merci de poster le lien vers un tutoriel du site et j'essayerais de l'insérer selon leurs conseils.



A voir également:

3 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 sept. 2011 à 15:54
Le code que tu as récupéré est une application console, tu dois le repenser pour en faire une applet qui tourne sur ta page HTML
0
magiikaurel Messages postés 51 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 13 novembre 2012 11
26 sept. 2011 à 16:21
J'avais lu sa sur un tuto mais comment et surtout ou insérer <APPLET ?

PS: voici en gros le résultat final auquel j'aimerais que sa ressemble: http://tpe.drux.fr/morpion/
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 sept. 2011 à 16:53
Tu l'insères où tu veux dans ton code HTML (un peu comme une image) en utilisant la balise <applet>
0
magiikaurel Messages postés 51 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 13 novembre 2012 11
26 sept. 2011 à 17:15
Ok, mais tu l'insère où? Peux-tu me copier mon code et le ré-ajouter?
Y-a-t-il une balise de fin?
0
magiikaurel Messages postés 51 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 13 novembre 2012 11
26 sept. 2011 à 17:48
J'ai tenté comme indiqué pour avoir :


charger : classe tictactoe.class introuvable.
java.lang.ClassNotFoundException: tictactoe.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception : java.lang.ClassNotFoundException: tictactoe.class

Donc j'ai compris que le fichier .class était iexistant sur mon ordinateur, ce qui est vrai étant donné que je n'ai que le code. Comment créé un fichier de ce type?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 sept. 2011 à 18:25
1) Tu dois modifier le code pour faire une applet (ce qui change beaucoup de chose)

class TicTacToe extends Applet
{
    // ...
}

2) Tu dois compiler le code pour obtenir un fichier TicTacToe.class (éventuellement éditer un .jar si tu as plusieurs classes)

3) Tu dois appeler ta classe TicTacToe.class (ou .jar) dans ton code HTML :

<applet code="TitTacToe.class" width="100" height="100">
</applet>

Mais tout cela ne s'invente pas, il te faut acquérir un minimum de connaissance en Java pour arriver à tes fins...
0
magiikaurel Messages postés 51 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 13 novembre 2012 11
26 sept. 2011 à 19:54
Bon j'ai pu comprendre que je n'avais pas assez de connaissances dans ce domaine, j'abandonne donc ce projet qui me tenait a coeur ...
0