Sudoku: NSMatrix, NSTableView ou custom NSView ?

damdamdamdam Membre
mai 2009 modifié dans API AppKit #1
Bonjour tout le monde,

J'ai un petit souci avec un resolveur de sudoku que je suis en train d'écrire. J'ai un tableau de 16x16 contenant un nombre de 0 à  F. Pour l'instant, tout fonctionne, j'utilise un NSTableView et un bout de code trouvé http://www.artlogic.com/resources/grid-effect/ pour avoir un look Sudoku. J'ai transplanter ce matin la majeure partie du code d'un NSTableView vers un NSMatrix. Tout fonctionne mais je me demande comment aller plus loin et si j'utilise la meilleure méthode.
Mais je souhaite éditer mon tableau, et pouvoir sélectionner un nombre arbitraire de cellules, par forcément de façon contigà¼e.  Si je ne m'abuse, NSTableView ne permet pas ce type d'utilisation alors que NSMatrix si. Mais NSMatrix ne permet pas de trop customiser le look général de la grille et je n'aime pas trop la manière de fonctionner de cette classe (c'est peut-être moi). Je suis en train de bouquiner la différence entre NSControl, NSCell et autres NSView, et je sens que je vais devoir écrire de toute façon une classe SudokuCell ou SudokuCellView

Mon problème n'est pas technique, mais plutôt de l'ordre de la philosophie Cocoa.
Dans le cas de plateaux de jeu tabulaires (Sudoku, Démineur, etc), quel style de vues vaut-il mieux utiliser ? Je penche pour une NSView custom, mais j'ai pas super envie de réimplémenter une partie des méthodes de NSTableView ou NSMatrix (en particulier tout le code graphique), qui sont quand même pratiques.

Merci d'avance.

Réponses

  • Philippe49Philippe49 Membre
    02:42 modifié #2
    A priori Schlum qui a écrit un Sudoku de référence pourrait te répondre.
    Enfin NSTableView n'est pas fait pour ça. A priori, je prendrais NSMatrix, avec une NSCell custom ... NSMatrix contient l'économie automatique au niveau du rafraà®chissement.
  • schlumschlum Membre
    02:42 modifié #3
    Moi j'ai fait une vue entièrement custom... Sinon, tu galères de plus en plus au moment d'ajouter des comportements spécifiques.
  • schlumschlum Membre
    02:42 modifié #4
    Si tu veux voir le fonctionnement de la grille :
    http://www.versiontracker.com/dyn/moreinfo/macosx/32490

    Puis quand j'aurai le temps, faudra que je sorte la 2.0 avec la gestion des erreurs et des hypothèses...
  • damdamdamdam Membre
    02:42 modifié #5
    dans 1244020244:

    Moi j'ai fait une vue entièrement custom... Sinon, tu galères de plus en plus au moment d'ajouter des comportements spécifiques.

    Parfait, c'est exactement ce que je voulais savoir. J'avais pensé à  la même chose pour les mêmes raisons. Merci.

    Si tu veux voir le fonctionnement de la grille :
    http://www.versiontracker.com/dyn/moreinfo/macosx/32490

    Puis quand j'aurai le temps, faudra que je sorte la 2.0 avec la gestion des erreurs et des hypothèses...


    Mais, je connais, je connais. Y'a beaucoup de choses très intéressantes dans ton logiciel. Tu t'es fait plaisir, cela se voit :) J'avais hésité à  t'envoyer un message pour jeter un coup d'oeil sur les sources. J'ai pas osé :)

  • schlumschlum Membre
    02:42 modifié #6
    Mhh, les sources, vu que j'espère le porter sur iPhone un jour, ça reste confidentiel  :)
  • damdamdamdam Membre
    02:42 modifié #7
    Ben t'as pas peur. J'ai compté plus d'une centaine de sudoku sur l'AppStore.

    Perso, mon programme va généré un PDF contenant des grilles 16X16. Je compte offrir un livre entier à  mon père à  Noel.
  • schlumschlum Membre
    02:42 modifié #8
    J'imagine des Swordfish ou du genre sur des grilles 16x16, ça doit être tricky  :fouf):

    Sur la centaine de l'AppStore, combien de potables ?  :)
  • damdamdamdam Membre
    02:42 modifié #9
    dans 1244138573:

    J'imagine des Swordfish ou du genre sur des grilles 16x16, ça doit être tricky  :fouf):


    Tu sais, les 16x16 et les 25x25 ne sont pas si durs qu'ils n'y paraissent. Juste longs et fastidieux à  résoudre à  la main.
    Je connais pas toutes les techniques du sudoku, mais la plupart du temps, t'as pas besoin des techniques évoluées pour les grosses grilles. Evidemment, tu peux générer des sudoku aussi durs que tu veux, mais personnellement, c'est pas mon but. C'est pour mon père, et il arrive pas à  résoudre les (pourtant faciles) hexadokus d'elektor.


    Sur la centaine de l'AppStore, combien de potables ?  :)


    Très peu. Disons 10%. soit une petite dizaine. Si tu prend le top 1%, ça en fait toujours 1 à  (a)battre . Même en ayant le savoir faire, il faut également le "faire savoir" (tout ce qui est marketing, reviews, placement préférentiels dans l'AppStore). Perso, c'est pas ce qui m'arrêterait, mais bon...
  • schlumschlum Membre
    02:42 modifié #10
    Les swordfish sont des cas particuliers de nishios... Des hyptohèses sur seulement une des valeurs dans toute la grille. Dans mon programme, je ne les traite pas, je fais juste les nishios en général sans différencier les cas particuliers plus " faciles ".

    Si tu as des problèmes algorithmiques de résolution logique (à  la base de la génération de grilles de niveaux), n'hésite pas.
    Le plus difficile à  coder curieusement, ce sont les ensembles nus / cachés...
Connectez-vous ou Inscrivez-vous pour répondre.