Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Script de Morpion Lun 13 Avr 2009 - 13:49 | |
| Par La MecheDescription de script-Permet de jouer au Morpion dans son jeu -Style de du Morpion entiérement personnalisable Screen- Spoiler:
Image à Mettre dans Picture- Spoiler:
Croix Rond Fleche Gagner M-Nul Perdu Table
|
|
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: Script de Morpion Lun 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 ^^' |
|
Habitant Lv.6
Age : 31 Inscrit le : 24/11/2008 Messages : 113
| Sujet: Re: Script de Morpion Lun 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? |
|
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: Script de Morpion Lun 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 |
|
Templier Lv.15
Age : 34 Inscrit le : 11/12/2008 Messages : 1278
| Sujet: Re: Script de Morpion Lun 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... |
|
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: Script de Morpion Lun 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 ! |
|
Templier Lv.15
Age : 34 Inscrit le : 11/12/2008 Messages : 1278
| Sujet: Re: Script de Morpion Lun 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. |
|
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: Script de Morpion Lun 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 |
|
Va-nu-pieds Lv.4
Age : 34 Avertissements : 3 Inscrit le : 24/02/2009 Messages : 66
| Sujet: Re: Script de Morpion Mar 14 Avr 2009 - 8:49 | |
| Ouahh moi qui adort le morpion^^ Je suis gaté la Merci la meche |
|
| Sujet: Re: Script de Morpion | |
| |
|