Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
523 connectés actuellement
30732422 visiteurs depuis l'ouverture
2401 visiteurs aujourd'hui
Partenaires
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:
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:
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)
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:
1
| @main_des_joueurs[0][14, 14, 5, 6, 3, 7, 8] |
Ensuite j'ai coder une fonction defausse, la voici:
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 à 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:
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à)
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 :
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:
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:
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:
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:
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 ?
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 23/07/2017 à 22:11:04. (57 messages postés) |
| OK merci beaucoup, pour afficher des images j'avais penser à ceci:
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:
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:
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:
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 :
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 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 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 :
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 à 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 à 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 :
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 - [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.
|
Aller à la page: 1 2
|
|
|