# Reinforcement learning java

**URL:** <https://discourse.processing.org/t/reinforcement-learning-java/18030>\
**Category:** Processing.py\
**Created:** [February 22, 2020, 11:57pm UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030 "2020-02-22T23:57:48Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 22, 2020, 11:57pm UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/1 "2020-02-22T23:57:48Z")

</div>

OK, I’m giving up on python. Even when I code it correct it gives me an error for no reason. So can someone point me to how to reinforcement learn in java?

---

<div class="post-metadata">

**Author:** ![anon94203042](https://avatars.discourse-cdn.com/v4/letter/a/898d66/32.png) [@anon94203042](https://discourse.processing.org/u/anon94203042)\
**Post date:** [February 23, 2020, 12:49am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/2 "2020-02-23T00:49:05Z")

</div>

Well if it gives you an error then you’re not coding it correct…

Show us your code that you’re having trouble with, we can help

---

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 23, 2020, 12:54am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/3 "2020-02-23T00:54:42Z")

</div>

ok here the code

first main:

```auto
from Car import *

car = Car()

def setup():
    size(600,600)
    global img
    img = loadImage("car.png")
    
def draw():
    background(0)
    car.show()

```

car:

```auto
class Car:
    pos = (0,0,0)
    
    def show(self):
        global img
        image(self.img,0,0)

```

i also tried  
main:

```auto
from Car import *

global img
img = loadImage("car.png")
car = Car()

def setup():
    size(600,600)
    
def draw():
    background(0)
    car.show()

```

car:

```auto
class Car:
    pos = (0,0,0)
    
    def show(self):
        global img
        image(self.img,0,0)

```

also tried

main:

```auto
from Car import *

car = Car()

def setup():
    size(600,600)
    
def draw():
    background(0)
    car.show()

```

car:

```auto
class Car:
    pos = (0,0,0)
    global img
    img = loadImage("car.png")
    
    def show(self):
        global img
        image(self.img,0,0)

```

all 3 can’t find img for the image

---

<div class="post-metadata">

**Author:** ![anon94203042](https://avatars.discourse-cdn.com/v4/letter/a/898d66/32.png) [@anon94203042](https://discourse.processing.org/u/anon94203042)\
**Post date:** [February 23, 2020, 1:00am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/4 "2020-02-23T01:00:41Z")

</div>

Is the image in your data folder?

---

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 23, 2020, 1:04am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/5 "2020-02-23T01:04:05Z")

</div>

yes, it worked fine when I tried the image like:

main:

```auto
def setup():
    size(600,600)
    global img
    img = loadImage("car.png")
    
def draw():
    background(0)
    image(img,0,0)

```

but not when I try moving it into a class

---

<div class="post-metadata">

**Author:** ![anon94203042](https://avatars.discourse-cdn.com/v4/letter/a/898d66/32.png) [@anon94203042](https://discourse.processing.org/u/anon94203042)\
**Post date:** [February 23, 2020, 1:05am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/6 "2020-02-23T01:05:05Z")

</div>

What’s the error message you’re getting?

---

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 23, 2020, 1:09am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/7 "2020-02-23T01:09:42Z")

</div>

for try 1: Car instance has no attribute ‘img’  
for try 2: Car instance has no attribute ‘img’  
for try 3: Car instance has no attribute ‘img’

so all 3 can’t find img to draw the car. idk how to draw a rect without a library so I’m stuck with trying to get this picture working

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [February 23, 2020, 4:01am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/8 "2020-02-23T04:01:06Z")

</div>

Do you want each Car to have its own image? Or do you want any car to use the same image?

---

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 23, 2020, 4:03am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/9 "2020-02-23T04:03:57Z")

</div>

well in the final be great to have different cars but for now be fine with all one

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [February 23, 2020, 4:47am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/10 "2020-02-23T04:47:41Z")

</div>

In that case your Car class needs an **init** (img). In it, create a local (not global) self.img, and load it with the image. Pass the image file path string to it when you initialize the Car – `car = Car("myimgpath")` Now you can access image(car.img).

For an example of how to use init and object variables correctly, see the Processing.py object tutorial.

[https://py.processing.org/tutorials/objects/](https://py.processing.org/tutorials/objects/)

---

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 23, 2020, 5:03am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/11 "2020-02-23T05:03:52Z")

</div>

do you mean like this?

main:

```auto
from Car import *

car = Car("car.png")

def setup():
    size(600,600)
    
def draw():
    background(0)
    car.show()

```

car:

```auto
class Car:
    
    def __init__ (self,img):
        pos = (0,0,0)
        this.img = loadImage(img)
    
    def show(self):
        image(car.img,0,0)

```

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [February 23, 2020, 5:05am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/12 "2020-02-23T05:05:10Z")

</div>

Looks like almost, last line of Car class should be

```auto
image(self.img,0,0)

```

And in **init** don’t use `this` that is a Java keyword. Use `self`

but I didn’t test.

Also, you may want to initialize a global car in setup, not in the header.

---

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 23, 2020, 5:10am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/13 "2020-02-23T05:10:00Z")

</div>

it says Car instance has no attribute ‘img’

main:

```auto
from Car import *

car = Car("car.png")

def setup():
    size(600,600)
    
def draw():
    background(0)
    car.show()

```

car:

```auto
class Car:
    
    def __init__ (self,img):
        pos = (0,0,0)
        img = loadImage(img)
    
    def show(self):
        image(self.img,0,0)

```

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [February 23, 2020, 5:12am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/14 "2020-02-23T05:12:09Z")

</div>

I said don’t use `this`, use `self`. You just deleted `this`

---

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 23, 2020, 5:15am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/15 "2020-02-23T05:15:40Z")

</div>

I added self to init:

```auto
def __init__ (self,img):
        pos = (0,0,0)
        self.img = loadImage(img)

```

but still getting an error nullpointerExceptionat processing.core.PGraphics…

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [February 23, 2020, 5:26am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/16 "2020-02-23T05:26:22Z")

</div>

> [@jeremydouglass](#):
>
> you may want to initialize a global car in setup, not in the header.

you may want to initialize a global car in setup, not in the header.

---

<div class="post-metadata">

**Author:** ![ctrembla](https://avatars.discourse-cdn.com/v4/letter/c/aeb1de/32.png) [@ctrembla](https://discourse.processing.org/u/ctrembla)\
**Post date:** [February 23, 2020, 5:35am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/17 "2020-02-23T05:35:25Z")

</div>

When I move the car to setup the one in draw won’t work.

car not defined it says  
main:

```auto
from Car import *

def setup():
    size(600,600)
    global car = Car("car.png")
    
def draw():
    background(0)
    car.show()

```

car

```auto
class Car:
    
    def __init__ (self,img):
        pos = (0,0,0)
        self.img = loadImage(img)
    
    def show(self):
        image(self.img,0,0)

```

---

<div class="post-metadata">

**Author:** ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)\
**Post date:** [February 23, 2020, 12:57pm UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/18 "2020-02-23T12:57:12Z")

</div>

> [@How to load an image in python?](https://discourse.processing.org/t/how-to-load-an-image-in-python/17710/4):
>
> As a general rule, assets should be loaded once before draw() starts. Best place for loading assets is within setup() btW. Not in classes or in draw(). Here’s my take on your posted code: # https://Discourse.Processing.org/t/how-to-load-an-image-in-python/17710/4 # 2020/Feb/11 FILES = 'warrior.png', 'knight.png' troop = [] def setup(): size(600, 600) global images images = tuple(loadImage(img) for img in FILES) Warrior.img = images[0] Knight.img = images[1] cy…

---

<div class="post-metadata">

**Author:** ![villares](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/villares/32/3166_2.png) [@villares](https://discourse.processing.org/u/villares)\
**Post date:** [February 29, 2020, 12:53am UTC](https://discourse.processing.org/t/reinforcement-learning-java/18030/19 "2020-02-29T00:53:20Z")

</div>

You can’t do `global name = something` in Python.

```auto
def setup():
    global car
    size(600, 600)
    car = Car("car.png")

```
