AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez
 

 Défi #1 : Le Puzzle Swap.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeMar 28 Oct 2008 - 19:11

J'ai envie de lancer un défi. Celui-ci n'est pas noté, mais les scripts soumis feront peut-être gagné des points de scripts à leur auteur. Postez directement vos solutions dans ce topic avec le bouton répondre. Ce n'est pas une demande de script, donc même si personne n'y répond, ce n'est pas dramatique. Vous avez le droit de travailler en équipe. Vous n'avez qu'à mettre le pseudo des co-auteurs dans le reply.

Voilà. Pour m'amuser avec certains concepts, j'avais commencé ce petit jeu lors de la rédaction des cours. Il s'agit en fait des casse-têtes où l'on doit déplacer une pièce dans l'espace vide. La valeur 0 est cet espace vide. Game_Character, Sprite_Character, Game_Picture et Sprite_Picture sont la réponse à l'énigme. Ce que je cherche à faire, c'est de modifier le show_grid afin qu'il n'affiche plus l'index de la case, mais plutôt afficher l'image.

Voilà les règles. Premièrement, on ne doit pas avoir plusieurs images dans le répertoire picture. Nous décomposeront l'image résultante du casse-tête. Ensuite, nous devrons créer des nouvelles classes : Game_Puzzle et Sprite_Puzzle. C'est classe permettront l'affichage de notre casse tête et seront appelés par show_grid ou par l'event (car il se peut que selon votre implémentation, il soit plus facile d'appeler à partir de l'event).

Disons que pour les besoins de la cause, voici l'image à utiliser et ce à quoi elle peut ressembler durant une partie.

Défi #1 : Le Puzzle Swap. Vx => Défi #1 : Le Puzzle Swap. Puzzle11

Mais en fait, n'importe quelle image peut être utilisée. Cela doit être un des paramètres de l'initialize de votre classe d'affichage du puzzle. Le numéro donné par l'index de la grille est l'indexe d'affichage de l'image. Le 0 fait en sorte que ce segment est invisible. Vous pouvez également ajouter l'effet de déplacement lorsqu'une tuile de l'image prends la place du 0, mais c'est optionnel. C'est uniquement pour un effet visuel plus attrayant. L'image doit être décomposé selon sa dimention (height et width) et non en carrés de tailles fixes.

Voici le module du jeu.

Code:
#auteur: MirainoHikari, 20 octobre 2008
module Jeu_Hikari
  class Swap_Square
   
    def my_rand(val,check)
      val1 = (rand(val)+1).modulo(val)
      while check.flatten.include?(val1)
        val1 = (rand(val)+1).modulo(val)
      end
      return val1
    end
     
    def initialize(mysize)
      $validation = Array.new(mysize)
      $grille = Array.new(mysize)
      for i in 0 ... mysize
      $validation[i] = Array.new(mysize)
      $grille[i] = Array.new(mysize)
        for j in 0 ... mysize
          val1 = i * mysize + j +1
          val2 = my_rand((mysize*mysize),$grille)
          $validation[i][j] = val1 == (mysize*mysize) ? 0 : val1
          $grille[i][j] = val2 == (mysize*mysize) ? 0 : val2
        end
      end
    end
 
    def find_index(val)
      for i in 0 ... $grille.size
        for j in 0 ... $grille[i].size
          if $grille[i][j] == val
            return [i,j]
          end
        end
      end
      return nil
    end
   
    def show_grid(mygrid)
      grid_format = ""
      for i in 0 ... mygrid.size
        for j in 0 ... mygrid[i].size
        grid_format += mygrid[i][j].to_s(32) + " "
        end
      grid_format += "\n"
    end
    return grid_format
  end
     
    def swap(dir) #1 up 2 down 3 left 4 right
      pos = find_index(0)
      case dir
      when 1
        if pos[0] > 0
          $grille[pos[0]][pos[1]], $grille[pos[0]-1][pos[1]] = $grille[pos[0]-1][pos[1]], $grille[pos[0]][pos[1]]
        end
      when 2
        if pos[0] < $grille.size - 1
          $grille[pos[0]][pos[1]], $grille[pos[0]+1][pos[1]] = $grille[pos[0]+1][pos[1]], $grille[pos[0]][pos[1]]
        end
      when 3
        if pos[1] > 0
          $grille[pos[0]][pos[1]], $grille[pos[0]][pos[1]-1] = $grille[pos[0]][pos[1]-1], $grille[pos[0]][pos[1]]
        end 
      when 4
        if pos[1] < $grille[pos[0]].size - 1
          $grille[pos[0]][pos[1]], $grille[pos[0]][pos[1]+1] = $grille[pos[0]][pos[1]+1], $grille[pos[0]][pos[1]]
        end
      end
    end
   
    def game_win
      return ($grille == $validation)
    end
   
  end
end

Et voici l'événement qui appelle le jeu.



Notez que dans l'event présenté, on divise le puzzle en 3x3, mais le code permet de décomposer le puzzle en 2x2 jusqu'en 8x8. Le paramètre présent dans le new détermine le nombre de divisions. Donc à vos claviers et bonne chances.

Si vous voulez des précisions, n'hésitez pas à posez des questions. Bonne chance.


Dernière édition par MirainoHikari le Mar 28 Oct 2008 - 19:23, édité 2 fois
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
jebbou
Doyen
Doyen
jebbou


Masculin Age : 46
Inscrit le : 20/08/2008
Messages : 2485

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeMar 28 Oct 2008 - 19:21

Interessant! ^^
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeMar 28 Oct 2008 - 19:27

En effet. Je sais que je n'ai pas encore commencé les cours sur VX, mais quelqu'un de moyennement débrouillard peut y arriver. J'ai déjà indiqué les scripts à regarder. Ce devrait dont être assez simple. Voyons voir ceux qui y arriveront les premiers.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
jebbou
Doyen
Doyen
jebbou


Masculin Age : 46
Inscrit le : 20/08/2008
Messages : 2485

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeMar 28 Oct 2008 - 20:23

C'est interessant parce que bien que j'ai travaillé sur plusieurs scripts, je n'ai pas encore touché aux classes d'affichage de sprite. Je vais peut-être m'essayer, mais ca sera pas pour maintenant.
Revenir en haut Aller en bas
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeMer 29 Oct 2008 - 9:14

:flaftufcofpren
Sa donne quoi en français Oo
J'ai pas tout très bien compris ><
Mais je vais essayait ^^
On verra bien la tonne d'erreur que je ferais :depression:
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeMer 29 Oct 2008 - 16:33

C'est vrai, j'ai pas pensé à nos pauvres cousins Européens qui sont légèrement handicapés en anglais.

Loop = Boucle

Conditionnal Branch =? Branchement

Show Choices = Choix (Les when se font automatiquement, pour le when Cancel, coché branchement séparer lorsque annuler...)

Control Self Switch = Interrupteur Local de Control (ou quelque chose du genre) Si tu ne sais pas encore comment mettre un selfswitch dans un event, je crois que tu devrais attendre le prochain cours...
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeMer 29 Oct 2008 - 16:54

Enfaite je sais pas si je vais le faire ><
Je sais pas encore trop bien me débrouiller pour le faire !
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeMer 29 Oct 2008 - 18:35

Comme j'ai écrit, ce n'est pas obligatoire. Mais ça peut en stimuler quelques uns.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
akakin
Corsaire Lv.19
Corsaire Lv.19
avatar


Masculin Age : 30
Inscrit le : 20/08/2008
Messages : 2555

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeSam 1 Nov 2008 - 14:53

Sympa ^^.
C'est vraiment une bonne idée.

Mais faute de temps je ne pense pas le faire.
Revenir en haut Aller en bas
http://eternara-rpg.1fr1.net/forum.htm
ASHKA
Voyageur Lv.10
Voyageur Lv.10
avatar


Masculin Age : 42
Inscrit le : 04/12/2008
Messages : 383

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeLun 15 Déc 2008 - 19:38

Bon, je sais que ça date un peu, mais ça me semble marrant !!

Démo !!

Je suis resté tres basique.
Et j'ai fait un effort pour commenter deux/trois lignes ...

ASHKA
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitimeVen 19 Déc 2008 - 14:44

Pour les concours de scripts, il n'est jamais trop tard Wink

Félicitation. Très fonctionnel. Légèrement personnalisable en plus. Pour ce script fait proprement, je donnerais 3 pts, mais tu es déjà au max. Merci de la soumission. (Je sens que certain membres vont sauté dessus.)

Je vais rendre ce script plus personnalisable à mon retour en janvier pour ceux qui voudrait l'utiliser un peu plus n'importe comment et je ferai un tuto pour l'utiliser convenablement.

Merci ASHKA
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
Contenu sponsorisé




Défi #1 : Le Puzzle Swap. Empty
MessageSujet: Re: Défi #1 : Le Puzzle Swap.   Défi #1 : Le Puzzle Swap. Icon_minitime

Revenir en haut Aller en bas
 

Défi #1 : Le Puzzle Swap.

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Concours Puzzle Elemental
» Concours Puzzle Hanté
» Recrute petite team pour Puzzle/Horror à la IB
» Escape From the House : Le défi ! [Jeu Terminé]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Apprentissage :: Archives des anciens cours :: Cours de RGSS2-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit