Espace membre :
flechePublicité

5 messages
Filtrer ok

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



La solution



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);

    
  }
}
<hr />J'oubliai, voila ce que ça donne :

<img src='http://img352.imageshack.us/my.php?image=capture1so3.png' border='0' class='inpost' />

si quelqu'un a des idées ou des conseils, n'hésitez pas !
<hr /><img src='http://img352.imageshack.us/my.php?image=capture1so3.png' border='0' class='inpost' />
<hr /><a href="http://img352.imageshack.us/my.php?image=capture1so3.png" rel='nofollow' target='_blank'>img352.imageshack.us...</a>
 
 
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.
 
 
     
5 messages
Filtrer ok
Vous devez être connecté pour écrire un message !

BE GEEK ! Avec

Glossaire High-Tech : #   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z