Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Dread Mac Farlane - Complet / Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

454 connectés actuellement

29505081 visiteurs
depuis l'ouverture

15655 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

ConsoleFun

Planète Glutko

RPG Maker - La Communauté

Eclipso

Zarok

Tous nos partenaires

Devenir
partenaire



Messages postés par kabu
Nombre de messages référencés sur Oniromancie (non supprimés): 57

Aller à la page: 1 2

Posté dans Forum - [ruby] Suppresion aléatoire Ruby 2.3.3

kabu - posté le 01/02/2018 à 23:15:26. (57 messages postés)

Merci de ton aide, j'ai corriger le petit souci, mais maintenant pour terminer a 100% cette fonction, il faudrait trouver un moyen de faire en sorte que l'IA qui ce trouve à gauche(et uniquement elle) est la possibilité de prendre le pion defauser(par le joueur à sa droite), sa s’appelle un show, l'IA prend le pion en vérifiant qu'il appartiens bien à une suite de valeur qu'elle possède dans son tableau(sa main en gros) et met les 3 valeurs qui ce suivent dans un tableau @com[@joueur] et supprime les 2 valeurs qu'elle avait en main, donc en gros si je defause le 2 et que l'IA possède le 1 et 3 etc.. alors elle prend mon 2, l'injecte dans son tableau @com[@joueur], injecte dans ce même tableau son 1 et 3 puis les supprime de sa main)
https://zupimages.net/up/18/05/1vbv.png

Posté dans Forum - [ruby] Suppresion aléatoire Ruby 2.3.3

kabu - posté le 31/01/2018 à 22:54:16. (57 messages postés)

Merci, mais j'ai un petit souci, j'ai adopter ta fonction comme ceci:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
require 'gosu'
 
class Mahjong < Gosu::Window
  def initialize
        @widht  = 640
        @weight = 480
    super @widht, @weight
    self.caption = 'Mahjong'
        @back = Gosu::Image.new("Pictures/back.png", :tileable => true)
        @capital_tuile = [*1..8] + [*9..42] * 4
    @main_des_joueurs = [[],[],[],[]]
        @sel = 0
    @curseur = Gosu::Image.new("Pictures/curseur.png", :tileable => true)
    @curseurx = 190 + 20 * @sel
    @curseury = 410
    @action = 0
    @defause = [[],[],[],[]]
    @com     = [[],[],[],[]]
    @turn = 0
    @joueur = 0
    start
  end
 
#mise a jour du jeu  
  def update
     @sel = 0 if @sel >= @main_des_joueurs[0].size
     @sel = @main_des_joueurs[0].size - 1 if @sel < 0
         @sel -= 1 if Gosu.button_down? Gosu::KB_LEFT 
         @sel += 1 if Gosu.button_down? Gosu::KB_RIGHT 
         @curseurx = 190 + 20 * @sel
         if  Gosu.button_down? Gosu::KB_UP
      @action += 1
      @action = 0 if @action>4
    end
    if  Gosu.button_down? Gosu::KB_DOWN
      @action -= 1
      @action = 4 if @action<0
    end
        core if Gosu.button_down? Gosu::KB_C
  end
  
 #dessin du jeu
  def draw
        @back.draw(0,0,0)
        @curseur.draw(@curseurx, @curseury, 0)
        @actionne = Gosu::Image.new("Pictures/action/#{@action}.png", :tileable => true)
        @actionne.draw(0,0,0)
        affichage(@main_des_joueurs[0], 211.5, 15.5, 0, 0)
        affichage(@defause[0], 211.5, 13, 0, 0)
        affichage(@com[0], 211.5, 11.5, 0, 0)
        affichage(@main_des_joueurs[1], 31.25, 90, -90, 1)
        affichage(@defause[1], 29.75, 90, -90, 1)
        affichage(@com[1], 28.25, 90, -90, 1)
        affichage(@main_des_joueurs[2], 211.5, 0.5, 180, 0)
        affichage(@defause[2], 211.5, 1.5, 180, 0)
        affichage(@com[2], 211.5, 2.5, 180, 0)
        affichage(@main_des_joueurs[3], 1, 90, 90, 1)
        affichage(@defause[3], 2.5, 90, 90, 1)
        affichage(@com[3], 4, 90, 90, 1)
  end
  
  def affichage(tableau, x, y, angle, mode)
  if tableau != nil
        @tuiles = Array.new(tableau.size) do |index|
                   sprite = Gosu::Image.new("Pictures/#{tableau[index]}.png", :tileable => true)
                   sprite.draw_rot(x + 20 * index, 30 * y, 0, angle) if mode == 0
                   sprite.draw_rot(x * 20, y + 23.5 * index, 0, angle) if mode != 0
                end
 end
        end
  
#depard du jeu
  def start
        4.times do |i|
      pioche(13, i)
      fleur(i)
    end
  end
  
#Donne les pions à chaques joueurs    
  def pioche(nb, joueur)
    nb.times do
      index = rand(@capital_tuile.size)
      @main_des_joueurs[joueur].push(@capital_tuile[index])
      @capital_tuile.delete_at(index)
      end
    end
    
#Vérifie la présence de pions particuliers, enlève les pions et compense en piochant    
  def fleur(joueur)
      9.times do |i|
        if @main_des_joueurs[joueur].member?(i)
           @defause[joueur] << i
           @main_des_joueurs[joueur].delete(i)
           while @main_des_joueurs[joueur].length < 13
             pioche(1, joueur)
           end
        end
      end
    end
        
#pour la defausse de pions
  def defausse
    if @joueur == 0 
        suite = addToDefausse(0,@sel)
        @main_des_joueurs[0].delete_at(@sel)
    else
                @a = 5
                while(@main_des_joueurs[@joueur].count(@a) > 1)
                        @a = rand(@main_des_joueurs[@joueur].size)
                end
                suite = addToDefausse(@joueur, @a)
                @main_des_joueurs[@joueur].delete_at(@a)
    end
    @turn += 1
        combine
  end
  
#coeur du jeu
  def core
    @j0 = [0 , 4 , 8  , 12 , 16 , 20 , 24 , 28 , 32 , 36 , 40, 44, 48]
    @j1 = [1 , 5 , 9  , 13 , 17 , 21 , 25 , 29 , 33 , 37 , 41, 45, 49]
    @j2 = [2 , 6 , 10 , 14 , 18 , 22 , 26 , 30 , 34 , 38 , 42, 46, 50]
    @j3 = [3 , 7 , 11 , 15 , 19 , 23 , 27 , 31 , 35 , 39 , 43, 47, 51]
    @j0.size.times do |i|
      if @j0[i] == @turn #J0
        @joueur = 0
      elsif @j1[i] == @turn#J1
        @joueur = 1
      elsif @j2[i] == @turn#J2
        @joueur = 2
      elsif @j3[i] == @turn#J3
        @joueur = 3
      end
    @joueur = 3 if @joueur < 0
    @joueur = 0 if @joueur > 3
  end
  
  case @action
    when 0 #defause
      defausse
    when 1 #selectionner
      @tmp = @main_des_joueurs[0][@sel]
      @main_des_joueurs[0].delete_at(@sel)
      @action = 3
    when 2 #quitter le jeu
      exit
    when 3 #poser le pion
      @main_des_joueurs[0].insert(@sel, @tmp)
      @action = 1
    when 4 #reset
      window = Mahjong.new.show
    end
    
  end
  
#gere les show (by Fleurman)
        def addToDefausse(index,val)
          # ajoute la nouvelle valeur
          @defausse[index].push(val) 
          # retourne false si la table a moins de 3 valeurs
          return false unless @defausse[index].size > 2
          # fait une copie dans une variable temporaire
          tmp = @defausse[index]
          # arrange les éléments de la table par ordre croissant
          tmp.sort!
          # élimine les doublons
          tmp.uniq! 
          # trouve l'index de val
          id = tmp.index(val)
          # test pour id-1,id,id+1
          if id > 0 && id < tmp.size-1
                return true if (tmp[id-1]+tmp[id]+tmp[id+1])-(tmp[id-1]*3) == 3
          end
          # test pour id,id+1,id+2
          if id < tmp.size-3
                return true if (tmp[id]+tmp[id+1]+tmp[id+2])-(tmp[id]*3) == 3
          end
          # test pour id-2,id-1,id
          if id > 1
                return true if (tmp[id-2]+tmp[id-1]+tmp[id])-(tmp[id-2]*3) == 3
          end
          return false
        end
  
#gere les combinaisons du jeu
  def combine
        4.times do |i|
        #gere la paire
                 if @main_des_joueurs[i].count(@defause[@joueur].last) == 1 && @main_des_joueurs[0].count(@defause[0].last) == 0
                                @com[i] << @defause[@joueur].last
                                @com[i] << @defause[@joueur].last
                        while(@main_des_joueurs[i].member?(@defause[@joueur].last))
                                @main_des_joueurs[i].delete(@defause[@joueur].last)
                        end
                        @defause[@joueur].pop
        #gere le pung
                elsif @main_des_joueurs[i].count(@defause[@joueur].last) == 2 && @main_des_joueurs[0].count(@defause[0].last) == 0
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        while(@main_des_joueurs[i].member?(@defause[@joueur].last))
                                @main_des_joueurs[i].delete(@defause[@joueur].last)
                        end
                        @defause[@joueur].pop
        #gere le kong
                elsif @main_des_joueurs[i].count(@defause[@joueur].last) == 3 && @main_des_joueurs[0].count(@defause[0].last) == 0
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        while(@main_des_joueurs[i].member?(@defause[@joueur].last))
                                @main_des_joueurs[i].delete(@defause[@joueur].last)
                        end
                        @defause[@joueur].pop
                        pioche(1, i)
        #gere le show (en cour)
                
                
                 end
        end
  end
        
end
window = Mahjong.new.show


mais j'ai un code erreur:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
C:/Users/Magic/Desktop/mah-jong/game.rb:160:in `addToDefausse': undefined method `[]' for nil:NilClass (NoMethodError)
        from C:/Users/Magic/Desktop/mah-jong/game.rb:105:in `defausse'
        from C:/Users/Magic/Desktop/mah-jong/game.rb:141:in `core'
        from C:/Users/Magic/Desktop/mah-jong/game.rb:39:in `update'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/gosu-0.13.2-x86-mingw32/lib/gosu/patches.rb:56:in `tick'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/gosu-0.13.2-x86-mingw32/lib/gosu/patches.rb:56:in `tick'
        from C:/Users/Magic/Desktop/mah-jong/game.rb:225:in `<main>'


Je sais pas comment resoudre ce souci, et une fois que cette fonction sera correct, comment ajouter la valeur rejeter (par exmple 4 si jai 2 et 3 etc...) dans un tableau ?
1000 merci du coup de main

Posté dans Forum - [ruby] Suppresion aléatoire Ruby 2.3.3

kabu - posté le 31/01/2018 à 21:27:55. (57 messages postés)

Merci beaucoup, mais j'avoue que je ne sais pas utiliser ta fonction, et je comprend pas trop le return (parce que je sais pas m'en servir^^')
Je vais te montrer le code complet(si y a moyen de l’améliorer je suis preneur)

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
require 'gosu'
 
class Mahjong < Gosu::Window
  def initialize
        @widht  = 640
        @weight = 480
    super @widht, @weight
    self.caption = 'Mahjong'
        @back = Gosu::Image.new("Pictures/back.png", :tileable => true)
        @capital_tuile = [*1..8] + [*9..42] * 4
    @main_des_joueurs = [[],[],[],[]]
        @sel = 0
    @curseur = Gosu::Image.new("Pictures/curseur.png", :tileable => true)
    @curseurx = 190 + 20 * @sel
    @curseury = 410
    @action = 0
    @defause = [[],[],[],[]]
    @com     = [[],[],[],[]]
    @turn = 0
    @joueur = 0
    start
  end
 
#mise a jour du jeu  
  def update
     @sel = 0 if @sel >= @main_des_joueurs[0].size
     @sel = @main_des_joueurs[0].size - 1 if @sel < 0
         @sel -= 1 if Gosu.button_down? Gosu::KB_LEFT 
         @sel += 1 if Gosu.button_down? Gosu::KB_RIGHT 
         @curseurx = 190 + 20 * @sel
         if  Gosu.button_down? Gosu::KB_UP
      @action += 1
      @action = 0 if @action>4
    end
    if  Gosu.button_down? Gosu::KB_DOWN
      @action -= 1
      @action = 4 if @action<0
    end
        core if Gosu.button_down? Gosu::KB_C
  end
  
 #dessin du jeu
  def draw
        @back.draw(0,0,0)
        @curseur.draw(@curseurx, @curseury, 0)
        @actionne = Gosu::Image.new("Pictures/action/#{@action}.png", :tileable => true)
        @actionne.draw(0,0,0)
        affichage(@main_des_joueurs[0], 211.5, 15.5, 0, 0)
        affichage(@defause[0], 211.5, 13, 0, 0)
        affichage(@com[0], 211.5, 11.5, 0, 0)
        affichage(@main_des_joueurs[1], 31.25, 90, -90, 1)
        affichage(@defause[1], 29.75, 90, -90, 1)
        affichage(@com[1], 28.25, 90, -90, 1)
        affichage(@main_des_joueurs[2], 211.5, 0.5, 180, 0)
        affichage(@defause[2], 211.5, 1.5, 180, 0)
        affichage(@com[2], 211.5, 2.5, 180, 0)
        affichage(@main_des_joueurs[3], 1, 90, 90, 1)
        affichage(@defause[3], 2.5, 90, 90, 1)
        affichage(@com[3], 4, 90, 90, 1)
  end
  
  def affichage(tableau, x, y, angle, mode)
     if tableau != nil
           @tuiles = Array.new(tableau.size) do |index|
                      sprite = Gosu::Image.new("Pictures/#{tableau[index]}.png", :tileable => true)
                      sprite.draw_rot(x + 20 * index, 30 * y, 0, angle) if mode == 0
                     sprite.draw_rot(x * 20, y + 23.5 * index, 0, angle) if mode != 0
           end
     end
  end
  
#depard du jeu
  def start
        4.times do |i|
      pioche(13, i)
      fleur(i)
    end
  end
  
#Donne les pions à chaques joueurs    
  def pioche(nb, joueur)
    nb.times do
      index = rand(@capital_tuile.size)
      @main_des_joueurs[joueur].push(@capital_tuile[index])
      @capital_tuile.delete_at(index)
      end
    end
    
#Vérifie la présence de pions particuliers, enlève les pions et compense en piochant    
  def fleur(joueur)
      9.times do |i|
        if @main_des_joueurs[joueur].member?(i)
           @defause[joueur] << i
           @main_des_joueurs[joueur].delete(i)
           while @main_des_joueurs[joueur].length < 13
             pioche(1, joueur)
           end
        end
      end
    end
        
#pour la defausse de pions
  def defausse
    if @joueur == 0 
        @defause[0] << @main_des_joueurs[0].at(@sel)
        @main_des_joueurs[0].delete_at(@sel)
    else
                @a = 5
                while(@main_des_joueurs[@joueur].count(@a) > 1)
                        @a = rand(@main_des_joueurs[@joueur].size)
                end
                @defause[@joueur] << @main_des_joueurs[@joueur].at(@a)
                @main_des_joueurs[@joueur].delete_at(@a)
    end
    @turn += 1
    combine
  end
  
#coeur du jeu
  def core
    @j0 = [0 , 4 , 8  , 12 , 16 , 20 , 24 , 28 , 32 , 36 , 40, 44, 48]
    @j1 = [1 , 5 , 9  , 13 , 17 , 21 , 25 , 29 , 33 , 37 , 41, 45, 49]
    @j2 = [2 , 6 , 10 , 14 , 18 , 22 , 26 , 30 , 34 , 38 , 42, 46, 50]
    @j3 = [3 , 7 , 11 , 15 , 19 , 23 , 27 , 31 , 35 , 39 , 43, 47, 51]
    @j0.size.times do |i|
      if @j0[i] == @turn #J0
        @joueur = 0
      elsif @j1[i] == @turn#J1
        @joueur = 1
      elsif @j2[i] == @turn#J2
        @joueur = 2
      elsif @j3[i] == @turn#J3
        @joueur = 3
      end
    @joueur = 3 if @joueur < 0
    @joueur = 0 if @joueur > 3
  end
  
  case @action
    when 0 #defause
      defausse
    when 1 #selectionner
      @tmp = @main_des_joueurs[0][@sel]
      @main_des_joueurs[0].delete_at(@sel)
      @action = 3
    when 2 #quitter le jeu
      exit
    when 3 #poser le pion
      @main_des_joueurs[0].insert(@sel, @tmp)
      @action = 1
    when 4 #reset
      window = Mahjong.new.show
    end
    
  end
  
#gere les combinaisons du jeu
  def combine
        4.times do |i|
        #gere la paire
                 if @main_des_joueurs[i].count(@defause[@joueur].last) == 1 && @main_des_joueurs[0].count(@defause[0].last) == 0
                                @com[i] << @defause[@joueur].last
                                @com[i] << @defause[@joueur].last
                        while(@main_des_joueurs[i].member?(@defause[@joueur].last))
                                @main_des_joueurs[i].delete(@defause[@joueur].last)
                        end
                        @defause[@joueur].pop
        #gere le pung
                elsif @main_des_joueurs[i].count(@defause[@joueur].last) == 2 && @main_des_joueurs[0].count(@defause[0].last) == 0
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        while(@main_des_joueurs[i].member?(@defause[@joueur].last))
                                @main_des_joueurs[i].delete(@defause[@joueur].last)
                        end
                        @defause[@joueur].pop
        #gere le kong
                elsif @main_des_joueurs[i].count(@defause[@joueur].last) == 3 && @main_des_joueurs[0].count(@defause[0].last) == 0
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        @com[i] << @defause[@joueur].last
                        while(@main_des_joueurs[i].member?(@defause[@joueur].last))
                                @main_des_joueurs[i].delete(@defause[@joueur].last)
                        end
                        @defause[@joueur].pop
                        pioche(1, i)
        #gere le show (en cour)
                
                
                 end
        end
  end
        
end
window = Mahjong.new.show


Je code en ruby 2.3.3 et je me sert de la lib 'gosu'.
Merci du gros coup de pouce, je créditerais

Posté dans Forum - [ruby] Suppresion aléatoire Ruby 2.3.3

kabu - posté le 31/01/2018 à 20:00:08. (57 messages postés)

Merci beaucoup ^^, dernière petite chose(je crois), quand une valeur d'un tableau est supprimer, cette valeur va dans un tableau du nom de defause, comment je pourrais faire pour détecter si cette valeur(imaginons 4) ce trouve proche d'une valeur que j'ai dans un tableau(donc si j'ai 2 et 3 ou 5 et 6 ou 3 et 5) et que si oui bah... happy^^'
Merci beaucoup pour votre aide, je suis en train de faire un jeu mah-jong pour info^^

Posté dans Forum - [ruby] Suppresion aléatoire Ruby 2.3.3

kabu - posté le 31/01/2018 à 17:49:33. (57 messages postés)

Salut, je vais mieux m'expliquer, j'ai un tableau @main_des_joueurs, plus tard ce tableau est remplie de valeurs aléatoires, admettons que j'obtient ceci:

Portion de code : Tout sélectionner

1
@main_des_joueurs[0][14, 14, 5, 6, 3, 7, 8]


Ensuite j'ai coder une fonction defausse, la voici:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
#pour la defausse de pions
  def defausse
    if @joueur == 0 
        @defause[0] << @main_des_joueurs[0].at(@sel)
        @main_des_joueurs[0].delete_at(@sel)
    else
        @defause[@joueur] << @main_des_joueurs[@joueur].at(rand(@main_des_joueurs[@joueur].size))
        @main_des_joueurs[@joueur].delete_at(rand(@main_des_joueurs[@joueur].size))
    end
    @turn += 1
    combine
  end


Concrètement je voudrait empêcher la defause si mon tableau contient plusieurs fois la même valeur
(par exemple dans mon tableau je possède 2 fois la valeur 14) et relancer le random pour defauser un pion aléatoirement tant que cette valeur aléatoire est présente 2 fois, en gros si j'ai 2 fois 14, sa boucle tant que cette valeur est présente plus d'une fois.
Je ne sais pas comment faire ceci, merci de votre aide

Posté dans Forum - [ruby] Suppresion aléatoire Ruby 2.3.3

kabu - posté le 29/01/2018 à 19:27:16. (57 messages postés)

Merci, mais je connais déjà cette méthode ^^', regarde bien je l’utilise dans ma dernière ligne

Posté dans Forum - [ruby] Suppresion aléatoire Ruby 2.3.3

kabu - posté le 29/01/2018 à 17:44:58. (57 messages postés)

Domaine concerné: script
Logiciel utilisé: ruby
Bonjour, je suis en train de coder un jeu, et dans une étape de mon jeu, je voudrais supprimer une valeur d'un tableau uniquement si celle-ci est unique, je veut utiliser un rand() pour que la suppression soit aléatoire, mais je ne sait pas comment faire. J'utilise la version 2.3.3 de ruby.
J'ai tenter ceci mais rien n'y fait:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
 
@rd = rand(@main_des_joueurs[@joueur].size)
while(@main_des_joueurs[@joueur].count(@rd) > 1)
    @rd = rand(@main_des_joueurs[@joueur].size)
end
@defause[@joueur] << @main_des_joueurs[@joueur].at(@rd)
@main_des_joueurs[@joueur].delete_at(@rd)
 


@main_des_joueurs[] est un tableau comme ceci dans initialize : @main_des_joueurs = [[],[],[],[]] , plus tard chaque tableaux internes seront remplie de 13 valeurs
Merci de votre aide

Posté dans Forum - [RMXP] Quelques commandes de script

kabu - posté le 12/09/2017 à 06:52:19. (57 messages postés)

Un série croissante de 3 chiffre dans un tableau. (4, 5, 6) Il faut pas ce préoccuper de ceci: (cette partie fonctionne déjà)

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
b.each do |k, v|
        if v == 3
          sprite.bitmap = RPG::Cache.picture("textes/Pung")      
        elsif v == 4
          sprite.bitmap = RPG::Cache.picture("textes/Kong")      
        end  
      end
 



Posté dans Forum - [RMXP] Quelques commandes de script

kabu - posté le 11/09/2017 à 21:30:31. (57 messages postés)

Salut, merci pour vos réponse, mais il me faut ces méthodes absolument par script. J'ai tenter ceci :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
      a = [1, 2, 3]
      b = Hash.new(0)
      sprite = Sprite.new
      a.each do |v|
        b[v] += 1
      end
      
      b.each do |k, v|
        if v == 3
          sprite.bitmap = RPG::Cache.picture("textes/Pung")      
        elsif v == 4
          sprite.bitmap = RPG::Cache.picture("textes/Kong")      
        end  
      end
      
        if (a.index(2) - a.index(1))  == 1 && (a.index(3) - a.index(2))  == 1
         sprite.bitmap = RPG::Cache.picture("textes/Chow")  
       end
    end


Mais le problème est que si mon a n'as pas de valeurs respectant la dernière condition le script crash.
Mon tableau b est la pour savoir si j'ai 3 ou 4 fois le même numéro. Merci de votre aide.

Posté dans Forum - [RMXP] Quelques commandes de script

kabu - posté le 09/09/2017 à 21:01:01. (57 messages postés)

Domaine concerné: script
Logiciel utilisé: RMXP
Bonjour, je me demande comment faire pour faire une méthode capable de savoir si j'ai une suite de 3 chiffres dans un tableau du style [1, 2, 3] et comment proposer un choix par script du style "voulez-vous..... Oui ou Non". Je sais pas trop comment m'y prendre.
Merci de votre aide.

Posté dans Forum - [RPG Maker xp] Amélioration de script

kabu - posté le 30/08/2017 à 19:49:56. (57 messages postés)

Salut, merci de répondre à mon message ^^ La méthode main sert à faire en sorte que le script fonctionne sinon rpg maker crash.

Posté dans Forum - [RPG Maker xp] Amélioration de script

kabu - posté le 29/08/2017 à 22:30:11. (57 messages postés)

Domaine concerné: script
Logiciel utilisé: RPG Maker xp
Salut tout le monde, je poste ce message car je suis en train de faire un script et mon affichage met un peu trop longtemps à ce mettre à jour et je ne comprend pas pourquoi. Voici le script:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
class Test
  def initialize
    @capital_tuile = [*1..8] + [*9..42] * 4
    @main_des_joueurs = [[],[],[],[]]
    @background = Sprite.new
    @background.bitmap = RPG::Cache.picture("background")
    @selector = Sprite.new
    @selector.bitmap = RPG::Cache.picture("selector")
    @selector.x = 180
    @selector.y = 385
    @sel = 0
    @points = 0
    @défause = [[],[],[],[]]
    @images = Array.new(10) {Array.new(1)}
    @secret = [[],[],[]]
    start
  end
   
  def main
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
  end   
   
  def update
    @j = @main_des_joueurs[0].sort
    affichage(@j, 180, 420, 1, 0, 1)
    affichage(@défause[0], 180, 350, 2, 0, 1)
    if Input.repeat?(Input::LEFT)
      @sel -= 1
      @selector.x -= 20
      @selector.x = (180 + @j.size * 20) - 20 if @sel < 0
      @sel = @j.size - 1 if @sel < 0
    elsif Input.repeat?(Input::RIGHT)
      @sel += 1
      @selector.x += 20
      @selector.x = 180 if @sel >= @j.size
      @sel = 0 if @sel >= @j.size
    elsif Input.repeat?(Input::C)
      @défause[0] << @j[@sel]
      @main_des_joueurs[0].delete(@j[@sel])
    end
    4.times do |i|
      fleur(i)
    end    
  end
   
  def start
    4.times do |i|
      pioche(13, i)
      fleur(i)
    end
    aff
  end
   
  def pioche(nb, joueur)
    nb.times do
      index = rand(@capital_tuile.size)
      @main_des_joueurs[joueur].push(@capital_tuile[index])
      @capital_tuile.delete_at(index)
    end
  end
   
  def fleur(joueur)
      9.times do |i|
        if @main_des_joueurs[joueur].member?(i)
           @points += 1
           @défause[joueur] << i
           @main_des_joueurs[joueur].delete(i)
           while @main_des_joueurs[joueur].length < 13
             pioche(1, joueur)
           end
        end
      end
    end
    
  def affichage(tableau, x, y, n, angle, mode)
    @images[n] = Array.new(tableau.size) do |index|
       sprite = Sprite.new
       sprite.bitmap = RPG::Cache.picture(tableau[index].to_s)
       if mode == 1
        sprite.x = x + (20 * index)
        sprite.y = y
       else
        sprite.x = x
        sprite.y = y + (20 * index)
       end
       sprite.angle = angle
       next(sprite)
    end
  end  
  
  def aff
    @j = @main_des_joueurs[0].sort
    affichage(@j, 180, 420, 1, 0, 1)
    affichage(@défause[0], 180, 350, 2, 0, 1)
    
    a = @main_des_joueurs[1].size #les var a, b et c sont faites pour cacher 
     @secret[0].shift                  #les pions des autres joueurs
      a.times do |i|
        @secret[0] << 43
      end
    
    j2 = @main_des_joueurs[1].sort
    affichage(@secret[0], 205, 50, 3, 180, 1)
    affichage(@défause[1], 205, 100, 4, 180, 1)
    @secret[0] << j2.size
    
    b = @main_des_joueurs[2].size
     @secret[1].shift
      b.times do |i|
        @secret[1] << 43
      end
    
    j3 = @main_des_joueurs[2].sort
    affichage(@secret[1], 600, 100, 5, 90, 2)
    affichage(@défause[2], 550, 100, 6, 90, 2)
    @secret[1] << j3.size
    
    c = @main_des_joueurs[3].size
     @secret[2].shift
      c.times do |i|
        @secret[2] << 43
      end
    
    j4 = @main_des_joueurs[3].sort
    affichage(@secret[2], 40, 100, 7, 270, 2)
    affichage(@défause[2], 80, 100, 8, 270, 2)
  end  
   
end   


Merci de votre aide, je suis encore un débutant donc si vous avez des améliorations à proposer je suis OK.

Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 25/08/2017 à 13:22:57. (57 messages postés)

Salut, sa fait un moment depuis^^. Je suis enfin parvenue à afficher plusieurs tuiles rapidement, mais la j'ai encore un souci, en faite quand je veut supprimer une tuile de ma main sa ne le fait pas (du moin graphiquement). Voci le monstre:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
class Test
  def initialize
    @capital_tuile = [1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11,
11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 
16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21,
21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26,
27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 
32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 
37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40, 41, 41, 41, 41, 
42, 42, 42, 42]
    @main_des_joueurs = [[],[],[],[]]
    @background = Sprite.new
    @background.bitmap = RPG::Cache.picture("background")
    @sel = 4
    @points = 0
    @fleurs_rejeté = []
    
    for joueur in 0...3
     for i in 0...13
      @tuile = rand(41) + 1
      while @capital_tuile.any? {|obj| obj == @tuile} == false do
          @tuile = rand(41) + 1
      end
      if @tuile < 9 == true && @main_des_joueurs[joueur].any? {|obj| obj == @tuile} == false
        @capital_tuile.delete(@tuile)
        @main_des_joueurs[joueur].push(@tuile)
      elsif @tuile > 8 == true
        @capital_tuile.delete_at(@capital_tuile.index(@tuile))
        @main_des_joueurs[joueur].push(@tuile)
      end
     end
   end
   
   @joueur1 =  @main_des_joueurs[0].sort
   @tuiles = Array.new(@joueur1.size) do |index|
       sprite = Sprite.new
       sprite.bitmap = RPG::Cache.picture(@joueur1[index].to_s)
       sprite.x = 20 * index
       sprite.y = 400
   end
  end
  
  def main
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      fleur
      if $scene != self
        break
      end
    end
  end    
  
  def update
    if Input.trigger?(Input::LEFT)
      @sel += 1
      @sel = 0 if @sel >= @main_des_joueurs[0].size
    elsif Input.trigger?(Input::RIGHT)
      @sel -= 1
      @sel = @main_des_joueurs[0].size - 1 if @sel < 0
    end
  end
  
  def fleur
    9.times do |i|
      if @joueur1.member?(i)
        @points += 1
        @fleurs_rejeté << i
        @joueur1.delete(i)
        p "vous avez le : " + i.to_s + " et " + @points.to_s + " points"
        p "fleurs rejeté: " +  @fleurs_rejeté.join("-").to_s
      end
    end
  end
  
end    


C'est dans la fonction "fleur" que sa fonctionne pas. Merci de votre aide.

Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 29/07/2017 à 17:08:12. (57 messages postés)

Je propose ceci:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
class Test
  def initialize
    @background = Sprite.new
    @background.bitmap = RPG::Cache.picture("background")
    @sel = 4
    @capital_tuile =    [1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11,
11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 
16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21,
21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26,
27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 
32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 
37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40, 41, 41, 41, 41, 
42, 42, 42, 42]
      @main_des_joueurs = [[],[],[],[]]
      @tuile_ids = [@main_des_joueurs[0], @main_des_joueurs[1], @main_des_joueurs[2], 
      @main_des_joueurs[3], @main_des_joueurs[4], @main_des_joueurs[5], @main_des_joueurs[6],
      @main_des_joueurs[7], @main_des_joueurs[8], @main_des_joueurs[9], @main_des_joueurs[10],
      @main_des_joueurs[11], @main_des_joueurs[12], @main_des_joueurs[13]]
      @tuiles = Array.new(@tuile_ids.size) do |index|
       sprite = Sprite.new
       sprite.bitmap = RPG::Cache.picture("#{index + 1}")
       sprite.x = 20 * index
     end
  end
  
  def main
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
  end
   
  def update
    if Input.trigger?(Input::LEFT)
      @sel += 1
      @sel = 0 if @sel >= 16
    elsif Input.trigger?(Input::RIGHT)
      @sel -= 1
      @sel = 15 if @sel < 0
    end
  end
#Pioche de chaque joueurs  
 def pioche
  for joueur in 0...3
   for i in 0...13
    @tuile = rand(41) + 1
    while @capital_tuile.any? {|obj| obj == @tuile} == false do
        @tuile = rand(41) + 1
    end
    if @tuile < 9 == true && @main_des_joueurs[joueur].any? {|obj| obj == @tuile} == false
      @capital_tuile.delete(@tuile)
      @main_des_joueurs[joueur].push(@tuile)
    elsif @tuile > 8 == true
      @capital_tuile.delete_at(@capital_tuile.index(@tuile))
      @main_des_joueurs[joueur].push(@tuile)
    end
   end
  end
 end
  
end  
$scene = Test.new
$scene.pioche


Mais le souci c'est que maintenant les tuiles piocher ne sont pas aléatoires et je sais pas comment mieux optimiser ma variables @tuile_ids.

Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 27/07/2017 à 20:39:25. (57 messages postés)

Merci, maintenant j'essaie d'afficher plusieurs images en une seul méthode, mais je n'y parvient pas. Je suis en train de faire une interface. Voici le code:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Majhong
  def initialize
    @test  = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
    @sel   = 4
    @background = Sprite.new
    @background.bitmap = RPG::Cache.picture("background.PNG") 
  end
  def main
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
  end
 def update
   #Test d'affichage de plusieurs éléments
   @test.each do |elmts|
     @tuiles + elmts.to_s = Sprite.new
     @tuiles + elmts.to_s.bitmap = RPG::Cache.picture(elmts.to_s + ".PNG")
     @tuiles + elmts.to_s.x += 10
   end
   #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   if Input.trigger?(Input::LEFT) 
     @sel += 1
     print @test[@sel].to_s
   elsif Input.trigger?(Input::RIGHT) 
     @sel -= 1
     print @test[@sel].to_s
  end 
end
end



Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 26/07/2017 à 13:14:38. (57 messages postés)

J'ai creer un class, c'est la première fois que je fais sa, vous en pensez quoi ?

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Majhong
  $capital_tuile = [1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11,
11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 
16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21,
21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26,
27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 
32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 
37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40, 41, 41, 41, 41, 
42, 42, 42, 42]
  $main_des_joueurs = [[],[],[],[]]
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#Pioche de chaque joueurs
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   def pioche
      for joueur in 0...3
        for i in 0...13
          tuile = rand(41) + 1
          while $capital_tuile.any? {|obj| obj == tuile} == false do
             tuile = rand(41) + 1
          end
          if tuile < 9 == true && $main_des_joueurs[joueur].any? {|obj| obj == tuile} == false
             $capital_tuile.delete(tuile)
             $main_des_joueurs[joueur].push(tuile)
          elsif tuile > 8 == true
             $capital_tuile.delete_at($capital_tuile.index(tuile))
             $main_des_joueurs[joueur].push(tuile)
          end
        end
      end
       print "main du joueur 1: " + $main_des_joueurs[0].join("-").to_s
    end
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
end
a = Majhong.new
a.pioche
 



Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 24/07/2017 à 21:06:06. (57 messages postés)

C'est quoi sa un objet "carte" ? et comment le créer ?

Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 23/07/2017 à 22:11:04. (57 messages postés)

OK merci beaucoup, pour afficher des images j'avais penser à ceci:

Portion de code : Tout sélectionner

1
2
3
4
for i in 0..mon_tableau.length
   @image + i.to_s = Sprite.new
   @image + i.to_s.bitmap=Bitmap.new("Graphics/Mon_dossier/"+main_des_joueurs[0].to_s+".png")
end



Sa ne marche pas, enfaite ce que je cherche à faire c'est trouver un moyen d'afficher plusieurs images à l'aide d'une boucle pour éviter d'écrire à chaque fois:

Portion de code : Tout sélectionner

1
2
@image1 = Sprite.new
@image1.bitmap=Bitmap.new("Graphics/Mon_dossier/"+main_des_joueurs[0[0]].to_s+".png").


Parce que je cherche à affichier une image selon ma tuile(nombre) en main. Comme par exemple si mon tableau
main_des_joueurs[0] contient 1, 2, 3, 7, 77 etc... alors j'affiche l'image coresspondante.
Et aussi comment enlever un objet du tableau selon le choix du joueur:

Portion de code : Tout sélectionner

1
print "Quel tuile voulez vous défaussez ?"


Si le joueur choisi la tuile 7 (qu'il verra uniquement en image) alors la tuile en question est supprimer.

Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 23/07/2017 à 19:31:03. (57 messages postés)

Merci beaucoup sa fonctionne nikel !
J'ai juste une dernière question, si je voudrait par exemple faire d'autres tableau (par exmple main_joueur2 = [] et main_joueur3 = []) comme faudrait faire pour y parvenir rapidement sans bessoin de repeter le code à chaque fois ?

Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 22/07/2017 à 21:28:48. (57 messages postés)

Parce qu'il y a 4 exemplaire de chaque tuile (entre 9 et 42). On ne peut tirer que une seul fois les tuiles de 1 à 8 mais le reste on peut le tirer au maximum 4 fois parce qu'il existe 4 fois la même tuile. Sinon, je crois que j'y suis presque ! mais j'ai un souci, je n'arrive pas à supprimer des valeurs dans mon tableau et c'est très embétant. Voici le srcipt:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
def start
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Tableau de tuile et main joueur et ia
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  main_joueur = []
  main_ia1    = []
  main_ia2    = []
  main_ia3    = []
  tuile       = [ 1, 2, 3, 4,     #Saisons
                  5, 6, 7, 8,     #Fleurs
                  9, 9, 9, 9,     #Dragon rouge
                  10, 10, 10, 10, #Dragon vert
                  11, 11, 11, 11, #Dragon blanc
                  12, 12, 12, 12, #Vent est
                  13, 13, 13, 13, #Vent nord
                  14, 14, 14, 14, #Vent ouest
                  15, 15, 15, 15, #Vent sud
                  16, 16, 16, 16, # 1 cercle
                  17, 17, 17, 17, # 2 cercle
                  18, 18, 18, 18, # 3 cercle
                  19, 19, 19, 19, # 4 cercle
                  20, 20, 20, 20, # 5 cercle
                  21, 21, 21, 21, # 6 cercle
                  22, 22, 22, 22, # 7 cercle
                  23, 23, 23, 23, # 8 cercle
                  24, 24, 24, 24, # 9 cercle
                  25, 25, 25, 25, # 1 bambous
                  26, 26, 26, 26, # 2 bambous
                  27, 27, 27, 27, # 3 bambous
                  28, 28, 28, 28, # 4 bambous
                  29, 29, 29, 29, # 5 bambous
                  30, 30, 30, 30, # 6 bambous
                  31, 31, 31, 31, # 7 bambous
                  32, 32, 32, 32, # 8 bambous
                  33, 33, 33, 33, # 9 bambous
                  34, 34, 34, 34, # 1 caractère
                  35, 35, 35, 35, # 2 caractère
                  36, 36, 36, 36, # 3 caractère
                  37, 37, 37, 37, # 4 caractère
                  38, 38, 38, 38, # 5 caractère
                  39, 39, 39, 39, # 6 caractère
                  40, 40, 40, 40, # 7 caractère
                  41, 41, 41, 41, # 8 caractère
                  42, 42, 42, 42] # 9 caractère
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#pioche pour le joueur 1
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  for i in (1..14)
    value = (rand(10)).to_i + 1
    if tuile[value] != nil #pour éviter les érreurs
       main_joueur.push(value)
       tuile.delete(value)
    end
    print "Tuiles en main: " + main_joueur[0..13].to_s + "\n" +
    "Nombre de tuiles en main: " + main_joueur.length.to_s
  end
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
end
 


j'ai l’impression que ma fonction "tuile.delete(value)" ne fais rien et sais pas pourquoi.

Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 22/07/2017 à 12:43:47. (57 messages postés)

Je suis en train de tenter un truc, est ce que sa marcherais si je fessait ceci :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
def start
  for i in (1..14)
    value = (rand(143)).to_i + 1
    tuile = [
        1, 2, 3, 4,   
        5, 6, 7, 8,
        9, 9, 9, 9,
        10, 10, 10, 10,
        11, 11, 11, 11,
        12, 12, 12, 12, 
        13, 13, 13, 13,
        14, 14, 14, 14,
        15, 15, 15, 15,
        16, 16, 16, 16,
        17, 17, 17, 17,
        18, 18, 18, 18, 
        19, 19, 19, 19,
        20, 20, 20, 20,
        21, 21, 21, 21,
        22, 22, 22, 22,
        23, 23, 23, 23,
        24, 24, 24, 24,
        25, 25, 25, 25,
        26, 26, 26, 26,
        27, 27, 27, 27,
        28, 28, 28, 28,
        29, 29, 29, 29,
        30, 30, 30, 30, 
        31, 31, 31, 31,
        32, 32, 32, 32,
        33, 33, 33, 33,
        34, 34, 34, 34,
        35, 35, 35, 35,
        36, 36, 36, 36,
        37, 37, 37, 37,
        38, 38, 38, 38,
        39, 39, 39, 39,
        40, 40, 40, 40,
        41, 41, 41, 41,
        42, 42, 42, 42]
print tuile[value]
tuile.delete(value)
end
end
 



Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 22/07/2017 à 11:00:15. (57 messages postés)

Salut, merci d'avoir lu mon post. Je connais la fonction pour générer 14 fois un nombre aléatoire entre 1 et 42, ce que je cherche à faire c'est trouver un moyen de stocker ces résultats (peut être sous forme de tableau si c'est possible: tuilesPiocherJoueurUn = [1, 4, 36, 14, 22, 8, 7, 12, 21, 10, 41, 42, 33, 4] ). Si cette fonction existe faudrait tenter de récupérer le nombre de fois d'apparition de chaque nombre et vérifier si c'est inférieur ou égale à 4 et que la fonction random ne génère ensuite que des nombres entre 9 et 42(puisque si les nombres entre 1 et 8 sont déja apparu sa servirait à rien de les générer. Mais le souci la dedans c'est que je sais pas comment faire. Merci du coup de main.

Posté dans Forum - [RPG MAKER XP] Mah-jong

kabu - posté le 21/07/2017 à 21:58:21. (57 messages postés)

Domaine concerné: Script
Logiciel utilisé: RPG MAKER XP
Bonjours, je cherche à faire un jeu mah-jong avec rmxp, j'ai donc créer toutes les images qu'il fallait(je les ait numérotés de 1 à 42) et j'ai commencer par créer ce système mais je n'y parvient pas, je veut faire en sorte que:
- Le jeu génère 14 fois un nombre entre 1 et 42,
- Ces nombres apparaissent 4 fois au maximum (il peuvent apparaître une fois, deux, trois ou quatre voir pas du tout,
- Les nombres qui peuvent apparaître 4 fois doivent être entre 9 et 42),
- Ces nombres soit attribués à une de mes images,
- Et que sa refasse le tout 3 fois mais qu'à chaque fois les nombres précédents(exemple si le joueur1 à 4;4;4 alors le joueur 2 peut avoir que un seul 4),

J'arrive à générer 14 fois un nombre entre 1 et 42:
for i in (1..14)
rand(1..42)
end

Mais c'est tout ce que j'arrive à faire. Je croie que je demande un truc presque impossible mais merci d'avoir prit le temps de lire ce post et merci de votre aide.

Posté dans Forum - [rmxp] système de quête

kabu - posté le 13/02/2017 à 17:59:44. (57 messages postés)

Merci.

Posté dans Forum - [rmxp] système de quête

kabu - posté le 12/02/2017 à 18:56:06. (57 messages postés)

Domaine concerné: script
Logiciel utilisé: rmxp
Salut, je me pose la question depuis un certain temps, je suis encore en apprentissage sur le ruby et donc je vous demande à vous comment faire une sorte de système de quête en script. Merci

Posté dans Forum - [rmxp] Script Safari pour fangame Pokémon + décompte de pas

kabu - posté le 06/02/2017 à 23:12:04. (57 messages postés)

Merci

Posté dans Forum - [rmxp] Script Safari pour fangame Pokémon + décompte de pas

kabu - posté le 06/02/2017 à 18:08:54. (57 messages postés)

Merci beaucoup pour l’investissement portée pour mon projet.

Posté dans Forum - [rmxp] Script Safari pour fangame Pokémon + décompte de pas

kabu - posté le 06/02/2017 à 12:40:29. (57 messages postés)

Oui

Posté dans Forum - [rmxp] Script Safari pour fangame Pokémon + décompte de pas

kabu - posté le 05/02/2017 à 18:45:49. (57 messages postés)

Merci de la réponse mais justement je veut rajouter une condition de retour par script, si le joueur à fait 500 pas alors il se passe ce que je veut.

Posté dans Forum - [rmxp] Script Safari pour fangame Pokémon + décompte de pas

kabu - posté le 04/02/2017 à 23:36:13. (57 messages postés)

Merci, sa marche super bien ! Mais maintenant comment je dois faire pour savoir si le joueur est à 500 pas ?

Posté dans Forum - [rmxp] Script Safari pour fangame Pokémon + décompte de pas

kabu - posté le 04/02/2017 à 12:26:49. (57 messages postés)

http://www.mediafire.com/file/bhmjcwdvun5l4a3/PSDK.rar
Voici mon projet, j'ai essayer votre technique mais sa ne fonctionne pas.
Merci du temps passer dessus pour m'aider.

Posté dans Forum - [rmxp] Script Safari pour fangame Pokémon + décompte de pas

kabu - posté le 04/02/2017 à 09:48:07. (57 messages postés)

Merci mais ducoup je l’appelle comment ?
Mon script ce nomme Park, j'ai remplacer la ligne 4 et j'ai essayer la méthode d'appel

Portion de code : Tout sélectionner

1
$park.safarie


Voici le message d'érreur

Portion de code : Tout sélectionner

1
wrong number of arguments(0 for 1)



Posté dans Forum - [rmxp] Script Safari pour fangame Pokémon + décompte de pas

kabu - posté le 03/02/2017 à 17:51:13. (57 messages postés)

Domaine concerné: script
Logiciel utilisé: rmxp
Salut, j'ai voulu créer un script safari à la pokemon mais au moment de le tester j'ai rencontrer un souci :
wrong number of arguments(1 for 0)
Je ne sais pas comment résoudre ce problème, je suis encore débutant en script.
Le voici :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#Safarie
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
def safarie
$game_variables[500] = $pokemon_party.steps
$game_variables[499] = $pokemon_party.steps
$game_variables[499] -= $game_variables[500]
$game_variables[498] = 149
$game_variables[498] = $game_variables[499]
image1 = Sprite.new
image2 = Sprite.new
image3 = Sprite.new
if $game_variables[498]>=100
 if $game_variables[498]>=900
 image1.bitmap = RPG::Cache.safarie("9.png")
 image1.x = 278
 image1.y = 20
 elsif $game_variables[498]>=800
 image1.bitmap = RPG::Cache.safarie("8.png")
 image1.x = 278
 image1.y = 20
 elsif $game_variables[498]>=700
 image1.bitmap = RPG::Cache.safarie("7.png")
 image1.x = 278
 image1.y = 20
 elsif $game_variables[498]>=600
 image1.bitmap = RPG::Cache.safarie("6.png")
 image1.x = 278
 image1.y = 20
 elsif $game_variables[498]>=500
 image1.bitmap = RPG::Cache.safarie("5.png")
 image1.x = 278
 image1.y = 20
 elsif $game_variables[498]>=400
 image1.bitmap = RPG::Cache.safarie("4.png")
 image1.x = 278
 image1.y = 20
 elsif $game_variables[498]>=300
 image1.bitmap = RPG::Cache.safarie("3.png")
 image1.x = 278
 image1.y = 20
 elsif $game_variables[498]>=200
image1.bitmap = RPG::Cache.safarie("2.png")
 image1.x = 278
 image1.y = 20
 elsif $game_variables[498]>=100
 image1.bitmap = RPG::Cache.safarie("1.png")
 image1.x = 278
 image1.y = 20
 end
else
image1.dispose
end
$game_variables[497]=$game_variables[498]
$game_variables[497]%100
if $game_variables[497]=90
image2.bitmap = RPG::Cache.safarie("9.png")
 image2.x = 286
 image2.y = 20
elsif $game_variables[497]=80
image2.bitmap = RPG::Cache.safarie("8.png")
 image2.x = 278
 image2.y = 20
elsif $game_variables[497]=70
image2.bitmap = RPG::Cache.safarie("7.png")
 image2.x = 278
 image2.y = 20
elsif $game_variables[497]=60
image2.bitmap = RPG::Cache.safarie("6.png")
 image2.x = 278
 image2.y = 20
elsif $game_variables[497]=50
image2.bitmap = RPG::Cache.safarie("5.png")
 image2.x = 278
 image2.y = 20
elsif $game_variables[497]=40
image2.bitmap = RPG::Cache.safarie("4.png")
 image2.x = 278
 image2.y = 20
elsif $game_variables[497]=30
image2.bitmap = RPG::Cache.safarie("3.png")
 image2.x = 278
 image2.y = 20
elsif $game_variables[497]=20
image2.bitmap = RPG::Cache.safarie("2.png")
 image2.x = 278
 image2.y = 20
elsif $game_variables[497]=10
image2.bitmap = RPG::Cache.safarie("1.png")
 image2.x = 278
 image2.y = 20
elsif $game_variables[497]=0
image2.bitmap = RPG::Cache.safarie("0.png")
 image2.x = 278
 image2.y = 20
end
$game_variables[496]=$game_variables[498]
$game_variables[496]%100
if $game_variables[496]=9
image3.bitmap = RPG::Cache.safarie("9.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=8
image3.bitmap = RPG::Cache.safarie("8.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=7
image3.bitmap = RPG::Cache.safarie("7.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=6
image3.bitmap = RPG::Cache.safarie("6.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=5
image3.bitmap = RPG::Cache.safarie("5.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=4
image3.bitmap = RPG::Cache.safarie("4.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=3
image3.bitmap = RPG::Cache.safarie("3.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=2
image3.bitmap = RPG::Cache.safarie("2.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=1
image3.bitmap = RPG::Cache.safarie("1.png")
 image3.x = 294
 image3.y = 20
elsif $game_variables[496]=0
image3.bitmap = RPG::Cache.safarie("0.png")
 image3.x = 294
 image3.y = 20
end
end


Merci de votre aide et si vous trouver un moyen de le dynamiser merci de me le dire.

Posté dans Forum - [RPG Maker] YU GI OH

kabu - posté le 08/05/2016 à 16:43:59. (57 messages postés)

Oui je veut parler du jeux de cartes.

Posté dans Forum - [RPG Maker] YU GI OH

kabu - posté le 08/05/2016 à 15:51:25. (57 messages postés)

Domaine concerné: game making
Logiciel utilisé: ???
Bonjour, serait-il possible de faire un jeux yu gi oh avec rpg maker ?

Posté dans Forum - [RPG maker xp] Problème avec call_battle_wild (script Pokémon)

kabu - posté le 17/04/2016 à 21:54:31. (57 messages postés)

C'est bon j'ai trouver. J'ai procéder d'une autre maniere, la voici:
$wild_battle.start_battle(10,level=7).
Mais merci quand même.

Posté dans Forum - [RPG maker xp] Problème avec call_battle_wild (script Pokémon)

kabu - posté le 17/04/2016 à 17:10:00. (57 messages postés)

Domaine concerné: script
Logiciel utilisé: RPG maker xp
Bonjour, j'ai fait trouvé ce script mais j'ai une erreur à la ligne 23 de mon script. Ca me dit qu'il y a une erreur de syntaxe.
Voici le script en question :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Interpreter
  #-----------------------------------------------------------------------------
  # call_battle_wild
  #   Appel d'un combat contre un Pokémon sauvage quelconque
  #   (Pour un légendaire mobile, cf fonction suivante)
  #   id: id Pokémon
  #   level: niveau du Pokémon sauvage
  #-----------------------------------------------------------------------------
  def call_battle_wild(id_data, level, shiny = false, ia = false)
    $game_temp.map_bgm = $game_system.playing_bgm
    $game_system.bgm_stop
    if id_data.type == Fixnum
      id = id_data
    elsif id_data.type == String
      id = id_conversion(id_data)
    end
    pokemon = Pokemon.new(id, level, shiny)
    pokemon.form=$game_variables[356] if $game_variables[356] != 0
    $scene = Pokemon_Battle_Wild.new($pokemon_party, pokemon, ia)
    @wait_count = 2
    return true
  end
  alias demarrer_combat call_battle_wild




Merci de votre aide .

Posté dans Forum - [RPG Maker VX] Extraire les dialogues

kabu - posté le 08/08/2015 à 21:11:31. (57 messages postés)

Il te manque le fichier en question.

Posté dans Forum - [VX Ace] Questions en vrac + interchanger les membres de l'équipe

kabu - posté le 06/08/2015 à 18:20:16. (57 messages postés)

Salut et c'est cool que tu fait un jeu de Fairy Tail parce que je suis fan de ce manga et pour répondre à ta question pour faire disparaitre le pnj de Natsu ( Ethérias Natsu Dragnir) tu pêut utiliser des interrupteurs et des condition par exemple si l'interrupteur 1 = Natsu est activer alors le pnj Natsu n'existe pas.

Posté dans Forum - [RPGMVXACE] Crystal Engine - Trainers

kabu - posté le 03/08/2015 à 16:01:12. (57 messages postés)

telecharge la demo et met dans le dossier data de ton jeu le fichier.
http://www.mediafire.com/download/w5fbb9gcm5914fz/Pok%C3%A9mon+for+Ace+Version+7.rar
et sa ,sa va t'etre utile si tu fait un jeu pokemon. N'oublie pas winrar pour extraire les fichiers de la demo que je te file avec le lien.

Aller à la page: 1 2

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers