Aller à la page 1 2
Reprise du message précédent:
xvw -
posté le 28/07/2017 à 12:12:59 (733 messages postés)
- | yo | Le code est donné plus haut est un peu triste
if x == true, ça ne sert à rien, pareil pour if x == false. On préfèrera
if x et unless x (ou if !x).
Pour générer la grille de tuile initiale, on peut simplement faire :
1
2
3
4
5
| def tuiles
base = (1..8).to_a
rest = (9..42).to_a
(base + (rest.map { |x| [x] * 4 })).flatten
end |
|
https://xvw.lol | Suite du sujet:
Mister Ocelot -
posté le 28/07/2017 à 13:49:43 (136 messages postés)
| Doit arrêter de glander. Glande au lieu d'arrêter | xvw Merci pour l'info !
|
Projet en cours, veuillez patientez 525 mois avant maturation. Taper Echap pour quitter |
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.
|
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.
| Aller à la page 1 2Index du forum > Entraide > [RPG MAKER XP] Mah-jong
|