Retour au site
Connexion : S'inscrire

5 messages
Filtrer ok

Mini jeu

Un expert informatique vous aide immédiatement par téléphone.
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);


}
}

J'oubliai, voila ce que ça donne :



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



img352.imageshack.us...
 
 
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
Un expert informatique vous aide immédiatement par téléphone.
Filtrer ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires: