Partagez
Aller en bas
Nivvdiy
Nivvdiy
Membre

Nombre de messages : 162
Age : 28
Localisation : Dans un cryogenisateur jusqu'en l'an 2999, 11 mois et 31 jours!
Distinction : aucune
Date d'inscription : 29/02/2008

[résolu]Demande un peu speciale Empty [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 18:10
Bonjour cher scripteur!
Serait il possible, s'il vous plait, de faire un script pour faire un morpion/puissance 4 sur RPG maker VX?
Plus de précision:
- Par appel au script je voudrez que l'on puisse choisir le nombre de joueurs humain, que l'on puisse choisir la difficulté du jeu lorsque l'on joue contre l'ordinateur et que l'on choisisse morpion ou puissance 4;
- Que l'on puisse mettre des images à la place des croix et des rond pour le morpion et à la place des pions coloré pour le puissance 4.
Merci d'avance!
claire
claire
Membre

Nombre de messages : 459
Age : 24
Localisation : Pardies
Distinction : aucune
Date d'inscription : 28/02/2008
http://wyzigoth.site.voila.fr/

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 18:22
Pour les scripteur, si cela peut vous aider j'ai un script morpion sous XP.
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 19:35
Poste ma chère, et nous verrons si on le fait Wink
claire
claire
Membre

Nombre de messages : 459
Age : 24
Localisation : Pardies
Distinction : aucune
Date d'inscription : 28/02/2008
http://wyzigoth.site.voila.fr/

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 19:42
Mon chère pour être précis

Code:
######################################
# Jeu Tic-tac-toe fait par Shado - 27 Juillet 2006
# Laissez un crédit pour moi si vous l'utilisez. Merci !
# Version : 1.3
######################################

class Tictactoe

  @@turn = "x"
  @@font_name = "Arial"
  @@font_size = 40
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
######################
  def main
  @turnWindow = Turn_Window.new(@@turn)
  @turnWindow.x = 450
  @turnWindow.y = 370
  setSquares
  setMenu
 
  Graphics.transition
  loop do
    Graphics.update
    Input.update
    update
    if $scene != self
    break
    end
  end

  Graphics.freeze
  @command_window.dispose
  @turnWindow.dispose
 
  for x in 0..8
    @sqr[x].dispose
  end
  end
######################
  def update
    @command_window.update
    @turnWindow.update(@@turn)
 
    for x in 0..8
    @sqr[x].update
    end
 
  if @command_window.active
      update_command
      return
  end
  end
 
######################
  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0..8
        $game_system.se_play($data_system.decision_se)
        doAction(@command_window.index)
      when 9
        $game_system.se_play($data_system.decision_se)
        $scene = Tictactoe.new
      when 10
        $game_system.se_play($data_system.cancel_se)
        $scene = Scene_Map.new
      end
      return
    end
  end
######################
def setMenu
  s1 = "Haut gauche"
  s2 = "Haut milieu"
  s3 = "Haut droit"
  s4 = "Centre gauche"
  s5 = "Centre milieu"
  s6 = "Centre droit"
  s7 = "Bas left"
  s8 = "Bas milieu"
  s9 = "Bas droit"
  s10 = "Redémarrer"
  s11 = "Quitter"
  @command_window = Window_Command.new(175, [s1, s2, s3, s4, s5, s6,s7,s8,s9,s10,s11])
  @command_window.index = @menu_index
  @command_window.x = 440
end
######################
def setSquares
  @sqr = []
  for x in 0..2
    @sqr[x] = Square.new(@@font_name,@@font_size)
    @sqr[x].x = (x+1)*100
    @sqr[x].y = 50
  end
 
  for x in 3..5
    @sqr[x] = Square.new(@@font_name,@@font_size)
    @sqr[x].x = (x-2)*100
    @sqr[x].y = 150
  end
 
  for x in 6..8
    @sqr[x] = Square.new(@@font_name,@@font_size)
    @sqr[x].x = (x-5)*100
    @sqr[x].y = 250
  end
 
end
######################
def doAction(squareId)
  if (@sqr[squareId].getOwner == "none")
    @sqr[squareId].setOwner(@@turn)
    verifyScore
  else
    $game_system.se_play($data_system.buzzer_se)
  end
end
######################
def verifyScore
  gameIsFinish = false
  #check all --
  for x in 0..2
    if (@sqr[x*3].getOwner == @@turn && @sqr[x*3+1].getOwner == @@turn && @sqr[x*3+2].getOwner == @@turn)
      print "Les "+@@turn+" a gagné !"
      gameIsFinish = true
    end
  end
 
  #check all |
  for x in 0..2
    if (@sqr[x].getOwner == @@turn && @sqr[x+3].getOwner == @@turn && @sqr[x+6].getOwner == @@turn)
      print "Les "+@@turn+" a gagné !"
      gameIsFinish = true
    end
  end
 
  #check \
  if (@sqr[0].getOwner == @@turn && @sqr[4].getOwner == @@turn && @sqr[8].getOwner == @@turn)     
    print "Les "+@@turn+" a gagné !"
    gameIsFinish = true
  end
 
  #check /
  if (@sqr[2].getOwner == @@turn && @sqr[4].getOwner == @@turn && @sqr[6].getOwner == @@turn)
    print "Les "+@@turn+" a gagné !"
    gameIsFinish = true
  end
 
  if noMoreSpace && !gameIsFinish
    print "Match nul!"
    $scene = Scene_Restart.new
  end
 
  if gameIsFinish
    $scene = Scene_Restart.new
  elsif (@@turn == "x")
    @@turn = "o"
  else @@turn = "x"
  end
end
######################
def noMoreSpace
  for x in 0..8
    if (@sqr[x].getOwner == "none")
      return false
    end
  end
  return true
end
######################
end

#----------------------------------------------------------------------
#Squares
#----------------------------------------------------------------------
class Square < Window_Base
 
  def initialize(fontName,fontSize)
    @owner = "none"
   
    super(0, 0, 100,100)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = fontName 
    self.contents.font.size = fontSize
    refresh
  end
 
  def refresh
    self.contents.clear
    if (@owner == "x")
      self.contents.font.color = text_color(2)
      self.contents.draw_text(22, 15, 100, 32, "X")
    elsif (@owner == "o")
      self.contents.font.color = text_color(1)
      self.contents.draw_text(22, 15, 100, 32, "O")
    end
  end
 
  def update
    refresh
  end
#############
  def setOwner(newOwner)
    @owner = newOwner
  end
#############
  def getOwner
    return @owner
  end
#############
end

#----------------------------------------------------------------------
#Turn Window
#----------------------------------------------------------------------
class Turn_Window < Window_Base
 
  def initialize(turn)
    super(0, 0, 165,60)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = "Arial" 
    self.contents.font.size = 30
    refresh(turn)
  end
 
  def refresh(turn)
    self.contents.clear
    if (turn == "x")
      self.contents.font.color = text_color(2)
      self.contents.draw_text(0,0,100,32,"Tour de : X")
    elsif
      self.contents.font.color = text_color(1)
      self.contents.draw_text(0,0,100,32,"Tour de : O")
    end
  end
 
  def update(turn)
    refresh(turn)
  end
end
#----------------------------------------------------------------------
#scene restart
#----------------------------------------------------------------------
class Scene_Restart
 
  @@font_name = "Arial"
  @@font_size = 40
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
######################
  def main
    setMenu
   
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end

    Graphics.freeze
    @command_window.dispose
  end
######################
  def update
    @command_window.update
 
    if @command_window.active
        update_command
        return
    end
  end
######################
  def update_command
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0
        $game_system.se_play($data_system.decision_se)
        $scene = Tictactoe.new
      when 1
        $game_system.se_play($data_system.cancel_se)
        $scene = Scene_Map.new
      end
      return
    end
  end
###################### 
  def setMenu
    s1 = "Redémarrer Tic-tac-toe"
    s2 = "Quitter"
    @command_window = Window_Command.new(180, [s1, s2])
    @command_window.index = @menu_index
    @command_window.x = 250
    @command_window.y = 200
  end
end

PS : Si vous voulez, j'ai aussi un script XP pour faire une roulette .
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 19:44
Ok, on verra, j'm'y pencherait dessus plus-tard (peut-être x) )


(P.S : Ma pour tout le monde, car MA poule xD)
Nivvdiy
Nivvdiy
Membre

Nombre de messages : 162
Age : 28
Localisation : Dans un cryogenisateur jusqu'en l'an 2999, 11 mois et 31 jours!
Distinction : aucune
Date d'inscription : 29/02/2008

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 20:48
Merci d'essayer de le faire! En plus j'arrête pas les demande en ce moment cela doit être un peu penible au bout d'un moment!
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 20:55
et voila le script optimisé pour rmvx... par contre c'est a deux joueurs!

Spoiler:
Code:
#####################################
# Jeu Tic-tac-toe fait par Shado - 27 Juillet 2006
# Laissez un crédit pour moi si vous l'utilisez. Merci !
# Version : 1.3
######################################

class Tictactoe

  @@turn = "x"
  @@font_name = "Arial"
  @@font_size = 40
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
######################
  def main
  @turnWindow = Turn_Window.new(@@turn)
  @turnWindow.x = 544 - @turnWindow.width
  @turnWindow.y = 416 - @turnWindow.height
  setSquares
  setMenu
 
  Graphics.transition
  loop do
    Graphics.update
    Input.update
    update
    if $scene != self
    break
    end
  end

  Graphics.freeze
  @command_window.dispose
  @turnWindow.dispose
 
  for x in 0..8
    @sqr[x].dispose
  end
  end
######################
  def update
    @command_window.update
    @turnWindow.update(@@turn)
 
    for x in 0..8
    @sqr[x].update
    end
 
  if @command_window.active
      update_command
      return
  end
  end
 
######################
  def update_command
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0..8
        Sound.play_decision
        doAction(@command_window.index)
      when 9
        Sound.play_decision
        $scene = Tictactoe.new
      when 10
        Sound.play_cancel
        $scene = Scene_Map.new
      end
      return
    end
  end
######################
def setMenu
  s1 = "Haut gauche"
  s2 = "Haut milieu"
  s3 = "Haut droit"
  s4 = "Centre gauche"
  s5 = "Centre milieu"
  s6 = "Centre droit"
  s7 = "Bas gauche"
  s8 = "Bas milieu"
  s9 = "Bas droit"
  s10 = "Redémarrer"
  s11 = "Quitter"
  @command_window = Window_Command.new(175, [s1, s2, s3, s4, s5, s6,s7,s8,s9,s10,s11])
  @command_window.index = @menu_index
  @command_window.x = 544 - @command_window.width
end
######################
def setSquares
  @sqr = []
  for x in 0..2
    @sqr[x] = Square.new(@@font_name,@@font_size)
    @sqr[x].x = (x+1)*100 -40
    @sqr[x].y = 50
  end
 
  for x in 3..5
    @sqr[x] = Square.new(@@font_name,@@font_size)
    @sqr[x].x = (x-2)*100 -40
    @sqr[x].y = 150
  end
 
  for x in 6..8
    @sqr[x] = Square.new(@@font_name,@@font_size)
    @sqr[x].x = (x-5)*100 -40
    @sqr[x].y = 250
  end
 
end
######################
def doAction(squareId)
  if (@sqr[squareId].getOwner == "none")
    @sqr[squareId].setOwner(@@turn)
    verifyScore
  else
    Sound.play_buzzer
  end
end
######################
def verifyScore
  gameIsFinish = false
  #check all --
  for x in 0..2
    if (@sqr[x*3].getOwner == @@turn && @sqr[x*3+1].getOwner == @@turn && @sqr[x*3+2].getOwner == @@turn)
      print "Les "+@@turn+" ont gagné !"
      gameIsFinish = true
    end
  end
 
  #check all |
  for x in 0..2
    if (@sqr[x].getOwner == @@turn && @sqr[x+3].getOwner == @@turn && @sqr[x+6].getOwner == @@turn)
      print "Les "+@@turn+" ont gagné !"
      gameIsFinish = true
    end
  end
 
  #check \
  if (@sqr[0].getOwner == @@turn && @sqr[4].getOwner == @@turn && @sqr[8].getOwner == @@turn)   
    print "Les "+@@turn+" ont gagné !"
    gameIsFinish = true
  end
 
  #check /
  if (@sqr[2].getOwner == @@turn && @sqr[4].getOwner == @@turn && @sqr[6].getOwner == @@turn)
    print "Les "+@@turn+" ont gagné !"
    gameIsFinish = true
  end
 
  if noMoreSpace && !gameIsFinish
    print "Match nul!"
    $scene = Scene_Restart.new
  end
 
  if gameIsFinish
    $scene = Scene_Restart.new
  elsif (@@turn == "x")
    @@turn = "o"
  else @@turn = "x"
  end
end
######################
def noMoreSpace
  for x in 0..8
    if (@sqr[x].getOwner == "none")
      return false
    end
  end
  return true
end
######################
end

#----------------------------------------------------------------------
#Squares
#----------------------------------------------------------------------
class Square < Window_Base
 
  def initialize(fontName,fontSize)
    @owner = "none"
 
    super(0, 0, 100,100)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = fontName
    self.contents.font.size = fontSize
    refresh
  end
 
  def refresh
    self.contents.clear
    if (@owner == "x")
      self.contents.font.color = text_color(2)
      self.contents.draw_text(22, 15, 100, 32, "X")
    elsif (@owner == "o")
      self.contents.font.color = text_color(1)
      self.contents.draw_text(22, 15, 100, 32, "O")
    end
  end
 
  def update
    refresh
  end
#############
  def setOwner(newOwner)
    @owner = newOwner
  end
#############
  def getOwner
    return @owner
  end
#############
end

#----------------------------------------------------------------------
#Turn Window
#----------------------------------------------------------------------
class Turn_Window < Window_Base
 
  def initialize(turn)
    super(0, 0, 175,60)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = "Arial"
    self.contents.font.size = 30
    refresh(turn)
  end
 
  def refresh(turn)
    self.contents.clear
    if (turn == "x")
      self.contents.font.color = text_color(2)
      self.contents.draw_text(0,0,100,32,"Tour de : X")
    elsif
      self.contents.font.color = text_color(1)
      self.contents.draw_text(0,0,100,32,"Tour de : O")
    end
  end
 
  def update(turn)
    refresh(turn)
  end
end
#----------------------------------------------------------------------
#scene restart
#----------------------------------------------------------------------
class Scene_Restart
 
  @@font_name = "Arial"
  @@font_size = 40
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
######################
  def main
    setMenu
 
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end

    Graphics.freeze
    @command_window.dispose
  end
######################
  def update
    @command_window.update
 
    if @command_window.active
        update_command
        return
    end
  end
######################
  def update_command
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0
        Sound.play_decision
        $scene = Tictactoe.new
      when 1
        Sound.play_cancel
        $scene = Scene_Map.new
      end
      return
    end
  end
######################
  def setMenu
    s1 = "Redémarrer Tic-tac-toe"
    s2 = "Quitter"
    @command_window = Window_Command.new(180, [s1, s2])
    @command_window.index = @menu_index
    @command_window.x = 250
    @command_window.y = 200
  end
end
Azaki
Azaki
Modérateur

Nombre de messages : 1742
Age : 26
Localisation : Dans ton cul(stom), t'as vu, tarba? é_è
Distinction : Commentateur sportif
Indépendantiste Breton
Chevalier de lumière
Membre du Haruhi fan-club
Membre du Tsukasa Nishino fan-club.
[Chou n°3]
Mist' Wink

Fils caché de Francis L'Alan
[Coco' Smile]
Chevalier Noir
Ex-Empereur d'Erem Vehyx (ou pas!! x) )

Date d'inscription : 14/05/2008

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 21:50
Vous allez peut-être trouver cette question bête, mais... ça vous prend du temps pour faire ce genre de programme?
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 21:58
question pas si bete que ca...

franchement, ca depend, le plus long est de trouver l'algorithme, c'est a dire, la facon dont on va proceder dans le programme...
ensuite, c'est toujours a peu pres pareil: meme syntaxe...

un script comme ceci, si je l'avais entirerement codé, j'en aurai eu pour une petite heure...(et je ne l'aurais pas fait du tout de la meme facon)
Azaki
Azaki
Modérateur

Nombre de messages : 1742
Age : 26
Localisation : Dans ton cul(stom), t'as vu, tarba? é_è
Distinction : Commentateur sportif
Indépendantiste Breton
Chevalier de lumière
Membre du Haruhi fan-club
Membre du Tsukasa Nishino fan-club.
[Chou n°3]
Mist' Wink

Fils caché de Francis L'Alan
[Coco' Smile]
Chevalier Noir
Ex-Empereur d'Erem Vehyx (ou pas!! x) )

Date d'inscription : 14/05/2008

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Mer 14 Mai 2008 - 22:00
C'est normal que tu ne fasses pas de la meme façon, parce que chaque programmeur a sa façon de "ranger" ou "placer" les choses^^
Nivvdiy
Nivvdiy
Membre

Nombre de messages : 162
Age : 28
Localisation : Dans un cryogenisateur jusqu'en l'an 2999, 11 mois et 31 jours!
Distinction : aucune
Date d'inscription : 29/02/2008

[résolu]Demande un peu speciale Empty Re: [résolu]Demande un peu speciale

le Jeu 15 Mai 2008 - 10:36
Merci beaucoup Berka! Je le testerais ce soir quand je serait chez moi! C'est toujours toi qui me fait les scripts alors pour toi dans mes crédits tu va prendre beaucoup de place vu que tu as déjà fait 3 ou plus de script pour moi!
Aussi petite question voudrait tu avoir la démo de mon projet en avant première?

Edit: Le script marche à la perfection merci Berka!
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum