Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Premier jeu, un Sudoku ambitieux!
Earth75 Hors ligne Membre Points: 53 Défis: 0 Message

Premier jeu, un Sudoku ambitieux!

Posté le 10/01/2013 21:49

Bonjour a tous, c'est mon premier post.
Ca fait un moment que je lui ce forum et j'ai toujours pu y trouver des reponses, mais la j'aurais besoin d'un peu plus de conseil, c'est pour cela que je me suis inscrit et que j'ai fait ce post.

Il y a quelques années déjà, j'ai eu ma graph 35+ au moment de sa sortie, et j'adorais les sudokus... A l'époque j'avais beaucoup de temps libre et j'ai appris le basic pour écrire un générateur de grilles de sudoku completement aléatoire, chose qui n'existe pas (ou en tout cas que je n'ai pas trouvé).
Apres peu de temps je me suis rendu compte qu'il s'agit d'un probleme np complet et que donc produire 100% de grilles de sudoku 100% aléatoirement est tres difficile. J'ai donc simplifié le probleme, et j'ai écrit un moteur a recursion simple, qui est (beaucoup) plus rapide, au prix de quelques grilles fausses(68% de réussite en moyenne).

Vous pouvez voir le prog de démonstration que j'ai utilisé pour débugger ce moteur, il génère une grille a partir de zéro aléatoirement. Je l'ai appelé SUDONGIN pour sudoku-engine.
Il a la particularité de pouvoir remplir indifféremment des grilles vierges et des grilles partiellement remplies.

J,ai ensuite écrit rapidement un jeu, SUDOKU qui exploite cette caractéristique en étant doté non seulement d'un mode de jeu normal, mais aussi d'un solveur.

Fichier joint


1, 2, 3 Suivante
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 10/01/2013 21:58 | #


Tu veux savoir comment faire un générateur de sudoku avec 100% de réussite ? Concrètement c'est facile mais trop long pour du Basic.

En C/C++ je fais ça par une fonction récursive (=qui se rappelle elle-même) en tirant aléatoirement chaque nombre de la grille jusqu'à ce qu'elle marche. J'ai également fait un solveur de sudoku comme ça
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 10/01/2013 22:01 | #


T'aurai pas pu faire encore plus bourrin Louloux ?

Sérieusement, ton programme mérite d'être vu je pense, c'est rare d'avoir des algos aussi complexes en Basic
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Earth75 Hors ligne Membre Points: 53 Défis: 0 Message

Citer : Posté le 10/01/2013 22:01 | #


nan j'ai essayé, on n'atteint pas les 100%, ou aors je vois pas comment. J'ecris la suite de l'histoire, vous etes trop rapides ici


Ajouté le 10/01/2013 à 22:06 :
La suite de l\'histoire : Vous pourrez voir en testant le prog que meme si j\'ai essayé d\'accélérer le processus de génération, il reste tres lent (et encore c\'est la version 5 du moteur basic, la premiere était dix fois plus lente!)

Donc j\'ai abandonné tout ca en voyant que c\'était peine perdue. Mais c\'était sans compter qu\'un jour je passe par ici et que je decouvre que je pouvais installer des add ons dans ma 35 en la modifiant!!!
Alors j\'ai sauté sur l\'occase et j\'ai direct repris le boulot. Ca a été facile, je conaissais déjà le C# et le C++. En essayant de profiter non seulement de la vitesse du langage compilé mais aussi des facilités du C, notamment les typedef.
Mais maintemant je me heurte a un probleme qui m\'empeche de continuer : je n\'arrive pas a appeler l\'horloge! J\'ai bien vu RTC_GetTicks dans le forum, mais ca ne compile pas! Faut il une librairie spéciale?

Ajouté le 10/01/2013 à 22:09 :
PS : si vous trouvez que mon générateur peut etre amélioré, je le sais et j\'y ai réfléchi pendant deux mois. cette version est vraiment le melleur compromis que j\'aie pu imaginer (tout en restant 100% aléatoire et en conservant la capaciter de remplir des grilles partielles bien sûr)
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 10/01/2013 22:09 | #


static int SysCallCode[] = {0xD201422B,0x60F20000,0x80010070};
static int (*SysCall)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode;

int time_getTicks()
{
    return (*SysCall)(0, 0, 0, 0, 0x3B);
}


ajoute ca dans un .c

int time_getTicks();


et ca dans un .h
(moi j'ai un fichier usefull.h/usefull.c ou je mes toutes mes fonctions utiles, comme celle-la)
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 10/01/2013 22:11 | #


Pourquoi t'as besoin de l'horloge interne pour un sudoku ? Par contre c'est vrai que faire un add-in est la meilleure chose.
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 10/01/2013 22:12 | #


pour generer le hasard?
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Earth75 Hors ligne Membre Points: 53 Défis: 0 Message

Citer : Posté le 10/01/2013 22:12 | #


Ok merci bien, je teste de suite!

Ajouté le 10/01/2013 à 22:13 :
C\'est pour generer le hasard et aussi pour chronométrer le temps de jeu.
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 10/01/2013 22:14 | #


Pour le temps je comprends, pour le hasard j'avoue qu'il y a d'autres solutions
Earth75 Hors ligne Membre Points: 53 Défis: 0 Message

Citer : Posté le 10/01/2013 22:15 | #


Ah bon lesquelles? Je suis intéressé
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 10/01/2013 22:15 | #


fais quand meme un peu gaffe, l'horloge n'est pas toujours réglée, et si elle passe minuit, elle la valeur renvoyée passera de 11 059 200 a 0 donc fais attention avec ça.
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Earth75 Hors ligne Membre Points: 53 Défis: 0 Message

Citer : Posté le 10/01/2013 22:18 | #


nan mais c'est pour chronométrer la partie, donc c'est bon, si je vois que la valeur de rtc a diminué, ca veut dire qu'il y a eu overflow et donc j'ajoute le max et je soustrait a l'échantillon précédent. comme ca c'est bon. J'ai l'habitude des overflow avec l'asssembleur, j'y avais pensé.
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 10/01/2013 22:20 | #


ok, il ne me reste qu'a te souhaiter bonne chance alors
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Earth75 Hors ligne Membre Points: 53 Défis: 0 Message

Citer : Posté le 10/01/2013 22:32 | #


J'ai encore une question, quand je compile, j'ai tout le temps l'erreur :

WARNING: The following dependant file(s) do not exist: "Sudoku.h". Line: 71

pourtant ce header existe bien, je l'ai ecrit moi meme!

D'ailleurs il ne contient que ça :

typedef struct Possib Possib;
struct Possib
{
int val[9];
};

je compte ajouter d'autres choses par la suite.
(c'est pour faire des tableaux nombres a neuf parties si ça vous intéresse)
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 10/01/2013 22:36 | #


t'inquiete, c'est normal, le SDK n'aime juste pas avoir des .h dans la fenetre "files in project" et ce n'est pas dangereux / embetant.
mais si ca te gene vraiment, tu peut dans "files in project faire clic droit et puis delete sur tout les .h du projet, et cela t'enlevera le warning, meme si ca ne change rien au final
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Earth75 Hors ligne Membre Points: 53 Défis: 0 Message

Citer : Posté le 10/01/2013 22:39 | #


Merci beaucoup!
Au fait, c'est de loin le pire compilateur que j'aie vu de ma vie! des messages d'erreurs cryptiques, pas de coloration syntaxique et une gestion catastrophique de la programmation multifichiers...... et j'en passe
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 10/01/2013 22:43 | #


je te conseille de coder sur un autre SDK (genre code::blocks) et d'utiliser le SDK officiel juste pour compiler et tester: en effet, il suffit de sauvegarder les fichiers modifiés sur un autre SDK pour que les fichiers soient rechargé rapidement sur le SDK officiel, et du coup pour la programmation, ca va aussi vite d'utiliser un autre editeur ou l'officiel, mais c'est beaucoup plus confortable.

Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Earth75 Hors ligne Membre Points: 53 Défis: 0 Message

Citer : Posté le 10/01/2013 22:52 | #


moi bof, j'aime mieux quand meme rester sur le sdk de casio, ca m'aprendra la rigueur... lol

Ajouté le 10/01/2013 à 23:21 :
PS : question un peu bete, elle envoie un tick tous les combien l\'horloge?

Ajouté le 10/01/2013 à 23:25 :
je dirais 128 a vue de pouce.

Ajouté le 10/01/2013 à 23:31 :
PPS : c\'est combien la valeur du get_tick avant le retour a zéro?
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 11/01/2013 07:06 | #


toute les 1/128 de seconde et je pense que c'est 11 059 200 avant le retour a zero
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 11/01/2013 16:45 | #


Le SDK de Casio manque d'un bon éditeur, donc moi j'utilise celui de VC++ avec coloration syntaxique, indentation automatique intelligente et numéros des lignes.
Pour le compilo : il est mal fait, particulièrement quand on s''en sert en C++, mais ce n'est pas si dérangeant quand on code autrement qu'avec les pieds
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 11/01/2013 18:26 | #


Sinon, j'utilise Notepad++, qui a l'avantage de géré tout types de fichiers, d'avoir l'indentation automatique, d'être gratuit, de pouvoir modifier les couleurs de coloration, et d'être très léger donc qui tient sur n'importe quelle clé USB, même de 128Mo

Je sais, je fait de la pub, mais bon...

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
1, 2, 3 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 107 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd