I have an ascii animation that I am debugging when I get a chance.

(right now I have an interaction with the balls and the pegs which
means I need to refactor that part of the code.)

But I do not feel that posting buggy code is going to help anyone, so
I'll just mention that I am working on it when I have time.

FYI,

-- 
Raul

On Tue, Nov 15, 2011 at 4:48 AM, Ric Sherlock <[email protected]> wrote:
> I have made a start on the following RosettaCode problem:
> http://rosettacode.org/wiki/Galton_box_animation
>
> Does anyone have ideas on how to improve the current ASCII "animation"?
> Other suggestioned improvements are welcome.
> Feel free to come up with totally different solutions too.
>
> NB.*dropBalls v Simulate Galton Box
> NB. y is: number of balls to drop
> NB. x is: number of pins in last row of Galton Box (default 5)
> dropBalls=: 3 : 0
>  5 dropBalls y
> :
>  maxpins=. x
>  nballs=. y
>  Pins=: 2 * (,~ 0 , 2 = 3 +/\ {.)^:(<:maxpins) ,:(0 1 $~ >:@+:) maxpins
>  GBox=: 0, (2+maxpins){.Pins  NB. pad Pins
>  ballidx=. balls=. 0 #~ #GBox
>  final=. 0$0
>  for_ball. i. nballs+#GBox do.
>   newball=. 0 1 {~ ball < nballs
>   final=. final , balls #&{: ballidx
>   balls=. newball , }: balls
>   ballidx=. maxpins , }: ballidx
>   deflection=. 0, 0 0 ,~ _1 1{~ maxpins ?@$ 2
>   ballidx=. ballidx + deflection
>   echo ' o*' {~ balls (([: <"1 i.@# ,.]) ballidx)}GBox
>   echo /:~ ({.,#)/.~ final
>   echo ' '
>  end.
>  final
> )
>
> Here was an earlier idea using rotate.
>
> NB.*dropBalls2 v Simulate Galton Box
> NB. y is: number of balls to drop
> NB. x is: number of pins in last row of Galton Box (default 5)
> dropBalls2=: 3 : 0
>  5 dropBalls2 y
> :
>  maxpins=. x
>  nballs=. y
>  GBox=. (0 $~ 3&+ , >:@+:) maxpins
>  Pins=. 2* 0,~ 0,~(,~ 0 , 2 = 3 +/\ {.)^:(maxpins) ,:(0 1 $~ >:@+:) maxpins
>  newball=. 1 maxpins}{:GBox
>  sums=. {: GBox
>  for_ball. i. nballs+#GBox do.
>   if. ball >: y do. newball=. (0 #~ {:@$) GBox end.
>   sums=. sums + {: GBox
>   deflection=. 0, 0 0 ,~ _1 1{~ maxpins ?@$ 2
>   GBox=. newball , }: GBox
>   echo ' .*' {~Pins+GBox=. deflection |."0 1 GBox
>   echo sums
>   echo ' '
>  end.
> )
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to