34 lines
1,001 B
Text
34 lines
1,001 B
Text
/* NetRexx ------------------------------------------------------------
|
|
* 08.01.2014 Walter Pachl modified to show state development a la Rexx
|
|
*--------------------------------------------------------------------*/
|
|
options replace format comments java crossref savelog symbols nobinary
|
|
|
|
import java.util.List
|
|
|
|
cards = [String '1','2','3','4','5','6','7','8','9','10']
|
|
cardsLen = cards.length
|
|
deck = ArrayList(cardsLen)
|
|
loop c_ = 0 to cardsLen - 1
|
|
deck.add(String(cards[c_]))
|
|
end c_
|
|
|
|
showHand(deck,'In ')
|
|
deck = ArrayList shuffle(deck)
|
|
showHand(deck,'Out')
|
|
return
|
|
|
|
method shuffle(deck = List) public static binary returns List
|
|
rn = Random()
|
|
dl = deck.size
|
|
loop i_ = dl - 1 to 1 by -1
|
|
j_ = rn.nextInt(i_)
|
|
__ = deck.get(i_)
|
|
deck.set(i_, deck.get(j_))
|
|
deck.set(j_, __)
|
|
say i_ j_ ArrayList(deck.subList(0,i_+1)).toString
|
|
end i_
|
|
return deck
|
|
|
|
method showHand(deck = ArrayList,tag=REXX) public static binary
|
|
say tag ArrayList(deck.subList(0,deck.size)).toString
|
|
return
|