Forum Clubic

Mini jeu

Je connais quelqu’un qui travaille sous Kubuntu. Il a inventé un jeu " le sudokube" et il voudrait créer une une interface graphique en python ou java mais il ne sait pas comment s’y prendre. Voici des photos et les règles :

Base de départ

http://imageshack-france.com/out.php/t21799_base.png

La solution

http://imageshack-france.com/out.php/i21803_solution.png

Code:

Les règles :

  • Chaque nombre de 1 à 9 doit apparaitre sur chacun des 9 carrés des 6 faces du cube et le long de chaque ligne en colonne.
  • Chaque nombre ne doit apparaitre qu’une seule fois sur chaque face, colonne ou ligne.

Voila si quelqu’un a le temps, et l’envie, à l’occasion de s’y pencher. Je pense que c’est une variante assez sympa du jeu.

Merci !

avec Tkinter
essaie de créer les lignes avec
can1.create_line

puis de créer de zones de texte comme cela

entree = Entry(fen)
entree.pack()

et de comparer les valeurs

Merci !

Finalement je me suis mis a java un petit peu. J’ai juste fait la fenêtre principale.
Il me manque encore tout le moteur du jeu. Voila le code, surement pas génial vu que je débute…

[code]

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.*;

class Main extends JFrame
{
private static final long serialVersionUID = 1L;
private Container c;
private JPanel imagePanel;
private String filePath;

public Main(String filePath) {
    super(" ~> Cerebrogames <~");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.filePath = filePath;
    initialize();
}

private void initialize() {
c = getContentPane();

    // image de fond
    imagePanel = new JPanel() {
        private static final long serialVersionUID = 1L;

        public void paint(Graphics g) {
            try {
                BufferedImage image = ImageIO.read(new File(filePath));
                g.drawImage(image, 0, 0, null);
            } catch (IOException e) {
                e.printStackTrace();
    }
        }
    };

// création et configuration des bouttons.
JButton init= new JButton(“Démarrer une nouvelle partie”);
init.setSize(250, 30);
init.setLocation(30, 30);
init.setToolTipText(“cliquer ici pour lancer une partie”);

    JButton append= new JButton("Reprendre une partie en cours");
    append.setSize(250, 30);
    append.setLocation(330, 15);
    append.setToolTipText("Permet de continuer une partie sauvegardée.");
    
    // boutton save
    JButton save= new JButton("Sauvegarder la partie");
    save.setSize(250, 30);
    save.setLocation(330, 55);
    save.setToolTipText(" Cliquez ici pour sauver votre partie.");
    save.setVisible(true);

// boutton semaine 1
JButton rules= new JButton(“Afficher les règles”);
rules.setSize(160, 30);
rules.setLocation(420, 130);
rules.setToolTipText(" Cliquez ici pour accèder aux règles du jeu.");
rules.setVisible(true);

JButton quit= new JButton("-> Quitter");
quit.setSize(100, 30);
quit.setLocation(470, 430);

// on ajoute les bouttons et l’imagePanel au conteneur
c.add(quit);
c.add(rules);
c.add(init);
c.add(append);
c.add(save);
imagePanel.setPreferredSize(new Dimension(600,489));
c.add(imagePanel);

addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{
setVisible(false);
}
});

    quit.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e){
            System.exit(0);
        }
    });
}

// on renomme tous les fichiers .ser existant en fichier .bak poour ne pas ecraser les valeurs de la nouvelle expérience.
public static void initializer(String nomFichier,String out){
    try {
        File file = new File(nomFichier);
        File outfile = new File(out);
        if(file.exists()) {
            file.renameTo(outfile);
            file.delete();
        } 
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    
}

public static void main(String[] args)
{
    String imagePath = "pics/base.png";
    Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); 
    Main fen = new Main(imagePath);
    

    fen.pack();
    fen.setPreferredSize(new Dimension(550,400));
    fen.setLocation((screen.width - fen.getSize().width)/2,(screen.height - fen.getSize().height)/2);
    fen.setResizable(false);
    fen.setVisible(true);

    
}

}


J'oubliai, voila ce que ça donne :

http://img352.imageshack.us/my.php?image=capture1so3.png

si quelqu’un a des idées ou des conseils, n’hésitez pas !


http://img352.imageshack.us/my.php?image=capture1so3.png
[img352.imageshack.us...](http://img352.imageshack.us/my.php?image=capture1so3.png)

Le travail a un peu avancé en faisant 15 grilles de départ de niveau de difficultés croissant.
Par contre, besoin d’un petit coup de pouce pour arriver à insérer des zones de texte par dessus l’image. Afin de permettre à l’utilisateur d’entrer les nombres de son choix.

Merci ^ ^)

Bonjour à tous,
Je tiens à préciser et surtout à Vita18, que le jeu dont il parle a été créé par la société CEREBROGAMES (voir si c’est permis leur site www.cerebrogames.fr ). Le jeu s’appelle le CEREBRO CUBE 9 et est déjà commercialisé en Australie, Nouvelle Zélande, Canada et Angleterre depuis longtemps par le biais du leader australien de jeu de logique “LOVATTS PUBLICATION” . www.lovatts.com.au… vous trouverez le Cerebro Cube 9 et d’autres jeux Cerebro au bas de la page.

Donc Vita18, demande à ton copain s’il n’a pas inventé “le fil à couper le beurre, la roue et aussi l’eau chaude??”

Il est plus facile de s’accaparer les innovations des uns que d’en créer soit même. De plus sur le jeu à jouer qui est bien fait le nom de Cerebrogames apparait et cela est trés bien de respecter leur propriété.

Aussi la différence entre le sudokube et le Cerebro cube 9 est que le premier jeu est composé de 3 faces comportant chacune 81 cases formant 3 sudokus différent complétement indépendant. Le Cerebro Cube 9, lui est composé de 6 faces et de 12 lignes (passant obligatoirement par 3 faces), l’ensemble des faces et des lignes doivent comporter les chiffres de 1 à 9.

Il faut rendre à César ce qui appartient à César.