2013-06-16 1 views
1

Je suis nouveau sur smalltalk et essaye de faire un simple jeu TicTacToe, je veux que ma classe de modèle soit une matrice mais je ne peux pas trouver un moyen de le faire sur Visual Works. J'ai suivi ce tutoriel: http://nerdysermons.blogspot.fr/2012/03/tictactoe-game-in-pharo-smalltalk.html, ça marche très bien avec Pharo mais j'ai des problèmes avec le type Matrix et aussi le simple boutonmorph. Quelqu'un peut-il expliquer la syntaxe/paquets/bibliothèques entre Pharo et VisualWorks? Je vous remercie .Comment faire une classe Matrix dans smalltalk Visual Works?

Répondre

0

Voici une suggestion: il existe plusieurs façons de mettre en œuvre des matrices.

  1. Définir une classe en tant que sous-classe d'Object avec des variables d'instance pour les cellules, numberOfRows et numberOfColumns.
  2. Créer une méthode de classe pour initialiser la matrice étant donné le nombre de lignes et le nombre de colonnes - faire les cellules un tableau de rangées de taille * colonnes
  3. Créer des méthodes comme at: at: et at: at: put: qui calcule un index dans le tableau des cellules comme suit:
cellNumberAt: row at: column 
    ^(row - 1) * numberOfColumns + column 

at: row at: column put: value 
    cells at: (self cellNumberAt: row at: column) put: value 

at: row at: column 
    ^cells at: (self cellNumberAt: row at: column) 

rowAt: rowNumber 
    | row | 
    row := OrderedCollection new. 
    1 to: numberOfColumns do: [:columnNumber | 
     row add: (self at: rowNumber at: columnNumber)]. 
    ^row 

columnAt: columnNumber 
    | column | 
    column := OrderedCollection new. 
    1 to: numberOfRows do: [:rowNumber | 
     column add: (self at: rowNumber at: columnNumber)]. 
    ^column 

J'espère que cela aide.

+0

Merci, cela m'a aidé. – sarahm

+0

Peut-être, alors, vous pourriez marquer la question comme répondue. Je suis content que vous ayez la réponse que vous cherchez. –

Questions connexes