k01ken’s b10g

He110 W0r1d!

Perlで配列の要素をシャッフルする

開発環境はWindows 7 Professional(32bit)+Perl 5.24.0。

配列の要素をシャッフルした配列を返すプログラムを作ります。
今回は、各要素をトランプに見立てて、53個用意して、それをシャッフルするプログラムにします。

use strict;
use warnings;

my @trump = (
"h1","h2","h3","h4","h5","h6","h7","h8","h9","h10","h11","h12","h13",
"d1","d2","d3","d4","d5","d6","d7","d8","d9","d10","d11","d12","d13",
"c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","c12","c13",
"s1","s2","s3","s4","s5","s6","s7","s8","s9","s10","s11","s12","s13",
"joker"
);

my @trump2 = ();
my $t = 0;

for(my $i = 0; $i < @trump; $i++){

	# 乱数で要素数を出す
	$t = int(rand(@trump));

	# 指定の要素を新しい配列に追加する
	push(@trump2,$trump[$t]);

	# 要素を抜き出した要素を削除する
	splice(@trump,$t,1);
}

my $count = 1;
# シャッフルした結果を表示
for(@trump2){
	print $count.":".$_."\n";
	$count++;
}