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



Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

Partagez
 

 Script de Morpion

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


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

Script de Morpion Empty
MessageSujet: Script de Morpion   Script de Morpion Icon_minitimeLun 13 Avr 2009 - 13:49

Par La Meche

Description de script
-Permet de jouer au Morpion dans son jeu
-Style de du Morpion entiérement personnalisable

Screen
Spoiler:

Image à Mettre dans Picture
Spoiler:
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

Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitimeLun 13 Avr 2009 - 13:49

script
Code:
#==============================================================================
# ● [VX] ◦ Mini-Jeu : Morpion
#------------------------------------------------------------------------------
# ◦ Par La Meche
# ◦ http://rpg-maker-vx.bbactif.com/forum.htm
# ◦ Crée le 13/04/09
# ◦ Version 1
#==============================================================================

#==============================================================================
# * * Module Morpion
#---------------------------------------------------------------------------------------------------------------------
# Temps d'attente
#==============================================================================
module Morpion
  #--------------------------------------------------------------------------
  # * Pour faire fonctionner correctement ce système
  # vous devez importer 7 images
  # Table => 544 * 416 pixels
  # Fleche => 32 * 32 pixel
  # Crois => 128 * 128 pixel
  # Rond => 128 * 128 pixel
  # Gagner => 544 * 96 pixel
  # Perdu => 544 * 96 pixel
  # M-Nul => 544 * 96 pixel
  #--------------------------------------------------------------------------
 
  #--------------------------------------------------------------------------
  # * Pour appeler le mini-jeu :
  # $scene = Scene_Morpion.new
  #--------------------------------------------------------------------------
 
  #--------------------------------------------------------------------------
  # * Interrupteur activé après le mini jeu si vous avez gagné
  #--------------------------------------------------------------------------
  Interrupteur = 1
 
  #--------------------------------------------------------------------------
  # * Temps de reflection de l'ennemis
  #--------------------------------------------------------------------------
  Attente = 30 # en Frames (60 Frames = 1 seconde)
 
  #--------------------------------------------------------------------------
  # * Temps d'affichage des messages
  #--------------------------------------------------------------------------
  Gagner = 60 # en Frames (60 Frames = 1 seconde)
 
end
#==============================================================================
# * * Morpion
#------------------------------------------------------------------------------
#  C'est cette scéne qui va gére le Morpion
#==============================================================================
class Scene_Morpion < Scene_Base
 
  #--------------------------------------------------------------------------
  # * Start
  #--------------------------------------------------------------------------
  def start
    #--------------------------------------------------------------------------
    # * Création des Variables
    #--------------------------------------------------------------------------
    @match_nul = false
    $game_switches[Morpion::Interrupteur] = false
    @emplacement = []
    for i in 0...9
      @emplacement[i] = nil
    end
    @deplacement_x = 1
    @deplacement_y = 1
    #--------------------------------------------------------------------------
    # * Chargement des Pictures
    #--------------------------------------------------------------------------
    bitmap = Cache.picture("Table")
    bitmap_2 = Cache.picture("Fleche")
    rect = Rect.new(0, 0, 544, 416)
    create_window(bitmap, bitmap_2, rect)
  end
 
  #--------------------------------------------------------------------------
  # * Création des Pictures
  #--------------------------------------------------------------------------
  def create_window(bitmap, bitmap_2, rect)
    #--------------------------------------------------------------------------
    # * Plateau
    #--------------------------------------------------------------------------
    @sprite_table = Sprite.new
    @sprite_table.bitmap = Bitmap.new(544, 416)
    @sprite_table.bitmap.blt(0, 0, bitmap, rect, 255)
    #--------------------------------------------------------------------------
    # * Curseur
    #--------------------------------------------------------------------------
    @sprite_fleche = Sprite.new
    @sprite_fleche.bitmap = Bitmap.new(544, 416)
    @sprite_fleche.bitmap.blt(0, 0, bitmap_2, rect, 255)
    @sprite_fleche.x = 128
    @sprite_fleche.y = 84
  end
 
  #--------------------------------------------------------------------------
  # * Destruction des Pictures
  #--------------------------------------------------------------------------
  def terminate
    @sprite_table.dispose
    @sprite_fleche.dispose
  end
 
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    @match_nul = false
    update_fleche
    update_validation
    update_combinaison
    for i in 0...9
      if @emplacement[i] == nil
        @match_nul = true
      end
    end
    if @match_nul == false and @fin != true
      bitmap = Cache.picture("M-Nul")
      rect = Rect.new(0, 0, 544, 96)
      @sprite_table.bitmap.blt(0, 160, bitmap, rect, 255)
      Graphics.wait(Morpion::Gagner)
      @fin = true
      $scene = Scene_Map.new
    end
    tour_ennemis if @tour == true and @fin != true
  end
 
  #--------------------------------------------------------------------------
  # * Combinaison
  #--------------------------------------------------------------------------
  def update_combinaison
    #--------------------------------------------------------------------------
    # * Combinaison en Ligne
    #--------------------------------------------------------------------------
    if @emplacement[0] == "rond" and @emplacement[1] == "rond" and @emplacement[2] == "rond"
      gagner
    end
    if @emplacement[3] == "rond" and @emplacement[4] == "rond" and @emplacement[5] == "rond"
      gagner
    end
    if @emplacement[6] == "rond" and @emplacement[7] == "rond" and @emplacement[8] == "rond"
      gagner
    end
    #--------------------------------------------------------------------------
    # * Combinaison en Colonne
    #--------------------------------------------------------------------------
    if @emplacement[0] == "rond" and @emplacement[3] == "rond" and @emplacement[6] == "rond"
      gagner
    end
    if @emplacement[1] == "rond" and @emplacement[4] == "rond" and @emplacement[7] == "rond"
      gagner
    end
    if @emplacement[2] == "rond" and @emplacement[5] == "rond" and @emplacement[8] == "rond"
      gagner
    end
    #--------------------------------------------------------------------------
    # * Combinaison en Diagonale
    #--------------------------------------------------------------------------
    if @emplacement[0] == "rond" and @emplacement[4] == "rond" and @emplacement[8] == "rond"
      gagner
    end
    if @emplacement[2] == "rond" and @emplacement[4] == "rond" and @emplacement[6] == "rond"
      gagner
    end
  end
 
  #--------------------------------------------------------------------------
  # * Gagner
  #--------------------------------------------------------------------------
  def gagner
    bitmap = Cache.picture("Gagner")
    rect = Rect.new(0, 0, 544, 96)
    @sprite_table.bitmap.blt(0, 160, bitmap, rect, 255)
    Graphics.wait(Morpion::Gagner)
    @fin = true
    $game_switches[Morpion::Interrupteur] = true
    $scene = Scene_Map.new
  end
 
  #--------------------------------------------------------------------------
  # * Perdu
  #--------------------------------------------------------------------------
  def perdu
    bitmap = Cache.picture("Perdu")
    rect = Rect.new(0, 0, 544, 96)
    @sprite_table.bitmap.blt(0, 160, bitmap, rect, 255)
    Graphics.wait(120)
    $scene = Scene_Map.new
  end
 
  #--------------------------------------------------------------------------
  # * Tour Ennemis
  #--------------------------------------------------------------------------
  def tour_ennemis
    Graphics.wait(Morpion::Attente)
    @tour = false
    ennemis = false
    while ennemis == false
      nbr = rand(9)
      if @emplacement[nbr] == nil
        #--------------------------------------------------------------------------
        # * Création du Bitmap Ennemis
        #--------------------------------------------------------------------------
        bitmap = Cache.picture("Croix")
        rect = Rect.new(0, 0, 128, 128)
        case nbr
        when 0
          px = 80
          py = 0
        when 1
          px = 208
          py = 0
        when 2
          px = 336
          py = 0
        when 3
          px = 80
          py = 128
        when 4
          px = 208
          py = 128
        when 5
          px = 336
          py = 128
        when 6
          px = 80
          py = 256
        when 7
          px = 208
          py = 256
        when 8
          px = 336
          py = 256
        end
        @sprite_table.bitmap.blt(px, py, bitmap, rect, 255)
        ennemis = true
        @emplacement[nbr] = "croix"
        combinaison_ennemis
      end
    end
  end
 
  #--------------------------------------------------------------------------
  # * Combinaison Ennemis
  #--------------------------------------------------------------------------
  def combinaison_ennemis
    #--------------------------------------------------------------------------
    # * Combinaison en Ligne
    #--------------------------------------------------------------------------
    if @emplacement[0] == "croix" and @emplacement[1] == "croix" and @emplacement[2] == "croix"
      perdu
    end
    if @emplacement[3] == "croix" and @emplacement[4] == "croix" and @emplacement[5] == "croix"
      perdu
    end
    if @emplacement[6] == "croix" and @emplacement[7] == "croix" and @emplacement[8] == "croix"
      perdu
    end
    #--------------------------------------------------------------------------
    # * Combinaison en Colonne
    #--------------------------------------------------------------------------
    if @emplacement[0] == "croix" and @emplacement[3] == "croix" and @emplacement[6] == "croix"
      perdu
    end
    if @emplacement[1] == "croix" and @emplacement[4] == "croix" and @emplacement[7] == "croix"
      perdu
    end
    if @emplacement[2] == "croix" and @emplacement[5] == "croix" and @emplacement[8] == "croix"
      perdu
    end
    #--------------------------------------------------------------------------
    # * Combinaison en Diagonale
    #--------------------------------------------------------------------------
    if @emplacement[0] == "croix" and @emplacement[4] == "croix" and @emplacement[8] == "croix"
      perdu
    end
    if @emplacement[2] == "croix" and @emplacement[4] == "croix" and @emplacement[6] == "croix"
      perdu
    end
  end
 
  #--------------------------------------------------------------------------
  # * Deplacement
  #--------------------------------------------------------------------------
  def update_fleche
    #--------------------------------------------------------------------------
    # * Fleche Gauche
    #--------------------------------------------------------------------------
    if Input.trigger?(Input::LEFT)
      Sound.play_cursor
      if @deplacement_x > 1
        @sprite_fleche.x -= 128
        @deplacement_x -= 1
      else
        @sprite_fleche.x = 128 * 3
        @deplacement_x = 3
      end
    end
    #--------------------------------------------------------------------------
    # * Fleche Droite
    #--------------------------------------------------------------------------
    if Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      if @deplacement_x < 3
        @sprite_fleche.x += 128
        @deplacement_x += 1
      else
        @sprite_fleche.x = 128
        @deplacement_x = 1
      end
    end
    #--------------------------------------------------------------------------
    # * Fleche Haute
    #--------------------------------------------------------------------------
    if Input.trigger?(Input::UP)
      Sound.play_cursor
      if @deplacement_y > 1
        @sprite_fleche.y -= 128
        @deplacement_y -= 1
      else
        @sprite_fleche.y = 84 + 128 * 2
        @deplacement_y = 3
      end
    end
    #--------------------------------------------------------------------------
    # * Fleche Basse
    #--------------------------------------------------------------------------
    if Input.trigger?(Input::DOWN)
      Sound.play_cursor
      if @deplacement_y < 3
        @sprite_fleche.y += 128
        @deplacement_y += 1
      else
        @sprite_fleche.y = 84
        @deplacement_y = 1
      end
    end
  end
 
  def update_validation
    #--------------------------------------------------------------------------
    # * Validation
    #--------------------------------------------------------------------------
    if Input.trigger?(Input::C)
      x = @deplacement_x
      y = @deplacement_y
      #--------------------------------------------------------------------------
      # * Rangé 1
      #--------------------------------------------------------------------------
      if (x == 1 and y == 1) and @emplacement[0] == nil
        @emplacement[0] = "rond"
        px = 80
        py = 0
      end
      if (x == 2 and y == 1) and @emplacement[1] == nil
        @emplacement[1] = "rond"
        px = 208
        py = 0
      end
      if (x == 3 and y == 1) and @emplacement[2] == nil
        @emplacement[2] = "rond"
        px = 336
        py = 0
      end
      #--------------------------------------------------------------------------
      # * Rangé 2
      #--------------------------------------------------------------------------
      if (x == 1 and y == 2) and @emplacement[3] == nil
        @emplacement[3] = "rond"
        px = 80
        py = 128
      end
      if (x == 2 and y == 2) and @emplacement[4] == nil
        @emplacement[4] = "rond"
        px = 208
        py = 128
      end
      if (x == 3 and y == 2) and @emplacement[5] == nil
        @emplacement[5] = "rond"
        px = 336
        py = 128
      end
      #--------------------------------------------------------------------------
      # * Rangé 3
      #--------------------------------------------------------------------------
      if (x == 1 and y == 3) and @emplacement[6] == nil
        @emplacement[6] = "rond"
        px = 80
        py = 256
      end
      if (x == 2 and y == 3) and @emplacement[7] == nil
        @emplacement[7] = "rond"
        px = 208
        py = 256
      end
      if (x == 3 and y == 3) and @emplacement[8] == nil
        @emplacement[8] = "rond"
        px = 336
        py = 256
      end
      #--------------------------------------------------------------------------
      # * Création du Bitmap
      #--------------------------------------------------------------------------
      if px == nil and py == nil
        Sound.play_buzzer
      else
        Sound.play_decision
        bitmap = Cache.picture("rond")
        rect = Rect.new(0, 0, 128, 128)
        @sprite_table.bitmap.blt(px, py, bitmap, rect, 255)
        @tour = true
      end
    end
  end
 
end

Désolé du double post ^^'
Revenir en haut Aller en bas
Sephiroth
Habitant Lv.6
Habitant Lv.6
avatar


Masculin Age : 31
Inscrit le : 24/11/2008
Messages : 113

Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitimeLun 13 Avr 2009 - 14:13

Jolie script, j'ai juste une question:
Est ce qu'il se joue à deux joueurs "réel" ou est ce qu'on peux jouer contre l'ordi?
Revenir en haut Aller en bas
http://rpg-maker-forum.1fr1.net
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


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

Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitimeLun 13 Avr 2009 - 14:23

Là ?
On peut que jouer que contre l'ordi ^^
Par contre l'ordi est con...
Mais si je le rend intelligent bah il devient imbattable donc...
Vous attendez pas à vous retrouver devant un humain =O
Revenir en haut Aller en bas
kordarr
Templier Lv.15
Templier Lv.15
kordarr


Masculin Age : 34
Inscrit le : 11/12/2008
Messages : 1278

Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitimeLun 13 Avr 2009 - 14:28

Ouai ça roxx, j'aime bien, par contre j'ai tester et l'IA est vraiment pourri...J'ai pas perdu un seul match ni fait match nul...

EDIT: rends le intelligent ça serait mieux à mon gout...

EDIT²: Oui j'y pensait en re-testant, y aurais-t-il moyen de mettre des gains en cas de victoire, des pertes en cas de défaites, bref parier de l'argent la-dessus..? parsqu'en fait là c'est juste un passe temps...
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

Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitimeLun 13 Avr 2009 - 14:46

kordarr =>
Pour l'IA je vais essayé mais alors faudra attendre...
Sinon pour les gains quand tu gagnes l'interrupteur que tu as mit au debut du script s'active =O
Par contre dans ce cas met un truc du genre
Code:
$scene = Scene_Map.new
Attendre 1 frames
Condition l'interrupteur x est activé
Fin
Faut mettre qqch entre l'appel de script et la condition...
Me demande pas pourquoi je sais pas !
Revenir en haut Aller en bas
kordarr
Templier Lv.15
Templier Lv.15
kordarr


Masculin Age : 34
Inscrit le : 11/12/2008
Messages : 1278

Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitimeLun 13 Avr 2009 - 15:11

Genre si je mets:

Code:

Appeler un script: $ scene = Scene_map.new
Attendre 20 frames
Conditions: Si l'interrupteur [1:victoire au morback] est activé
alors: afficher message: Youpi j'ai gagné.
sinon:
fin

je pense que ça dois marcher (j'ai pas testé pas le temps là tout de suite)...

Qu'en pense-tu..?

Un petite démo éclairerai certain peut-être..?

en tout cas GG, c'est un bon script, et le fait que les images soient personnalisables me plaît assez.
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

Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitimeLun 13 Avr 2009 - 15:24

Oui c'est tout à fait ça !
Je verrais pour la démo ^^
Bon allez je me met à l'IA
Snif T_T
Revenir en haut Aller en bas
aleximic
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
aleximic


Masculin Age : 34
Avertissements : 3
Inscrit le : 24/02/2009
Messages : 66

Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitimeMar 14 Avr 2009 - 8:49

Ouahh moi qui adort le morpion^^
Je suis gaté la lol!
Merci la meche
Revenir en haut Aller en bas
Contenu sponsorisé




Script de Morpion Empty
MessageSujet: Re: Script de Morpion   Script de Morpion Icon_minitime

Revenir en haut Aller en bas
 

Script de Morpion

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

 Sujets similaires

-
» Système Morpion complexe (Event)
» [Script] Condition: Appui d'une touche (avec l'ABS) et activation d'un interrupteur en script [Résolu]
» [Script] [Très Important] Problème avec script augmentation limite lvl
» Zombie Assault : Breath Of Chaos [PROBLEME DE SCRIPT ABBANDONS DU PROJET JUSQU'A NEW ABS SCRIPT]
» [Script] Appel de script obligeant le héros à faire une capacité.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Bac à sable-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit