As a follow up, I tried to create a list of objects as follows:
func =: 3 : 0 k =:5 arr =: 6 $ 0 while. k > 0
do. k =: k - 1
k{arr =: conew 'GameObject'
end.
)
func 0
|index error: func| k {arr=:conew'GameObject'
Needless to say it didn't work out well. How can I create an empty list and
fill it with objects?
Regards.
> From: [email protected]
> To: [email protected]
> Date: Tue, 3 Jun 2014 13:42:36 +0100
> Subject: [Jprogramming] Strange Object Behaviour in J
>
> I'm currently experimenting with OOP J. Creating objects and playing with
> them.This is my code:
> NB. My class def
> coclass 'GameObject' px =: 0 py =: 0 pz =: 0 movex =: 3 : 'px
> =: y' destroy =: codestroy
> NB. lets make instances and play.
> cocurrent 'base' go =: conew 'GameObject'
> px__go
> 0 NB. returned 0, that is what I expected!
> NB. move the px value...
> movex__go 5
> 5 px__go
> 5 NB. again this is what I expect.
> NB. create a list of GameObjects...
> list =: 5 $ conew 'GameObject' NB. I don't understand the output here. list
> ┌─┬─┬─┬─┬─┐│2│2│2│2│2│└─┴─┴─┴─┴─┘
> NB. anyway let's at least try to get a hold of one of the objects.
> go =. 0{list px__go
> 0 NB. Wow, it worked!
> movex__go 5
> 5 px__go
> 5 go2 =: 1{list px__go2
> 5
>
> The very end, "px__go2" is troubling, because this object's px value is 5!
> The only way this can be is if(a) 1{list and 0{list somehow point to the same
> object,(b) px is a static variable.
> I'm going to guess (a), but I would like to know what is going on here.
>
> Secondly, in my object definition, I would like to have a "create" verb which
> does the following:
>
> create_go 1 4 5
>
> this will set px to 1, py to 4 and pz to 5. I'm not sure how to do multiple
> assignments in J with on function.
> I think if it wasn't a class function I could do (for three arbitrary
> variables)
>
>
> 'px py pz' =: 3 NB. sets all vars to 3, not really what I want, but it's a
> start.
>
> or something like that, but for class functions I don't know how to do this.
> Any help appreciated.
> Regards.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm