o
    ci5                     @   s4   d dl mZ d dlZd dlmZ G dd deZdS )    )BoxN)CartPoleEnvc                       sB   e Zd ZdZd
 fdd	Z fddZddd fdd	
Z  ZS )StatelessCartPolea&  Partially observable variant of the CartPole gym environment.

    https://github.com/openai/gym/blob/master/gym/envs/classic_control/
    cartpole.py

    We delete the x- and angular velocity components of the state, so that it
    can only be solved by a memory enhanced model (policy).
    Nc                    sB   t    tj| jd | jd gtjd}t| |tjd| _d S )N   )dtype)lowhighr   )	super__init__nparrayx_thresholdtheta_threshold_radiansfloat32r   observation_space)selfconfigr   	__class__ f/home/ubuntu/.local/lib/python3.10/site-packages/ray/rllib/examples/envs/classes/stateless_cartpole.pyr
      s   
zStatelessCartPole.__init__c                    s6   t  |\}}}}}t|d |d g||||fS )Nr   r   )r	   stepr   r   )r   actionnext_obsrewarddone	truncatedinfor   r   r   r      s    zStatelessCartPole.stepseedoptionsc                   s.   t  j||d\}}t|d |d g|fS )Nr   r   r   )r	   resetr   r   )r   r   r    init_obs	init_infor   r   r   r!   $   s   zStatelessCartPole.reset)N)__name__
__module____qualname____doc__r
   r   r!   __classcell__r   r   r   r   r      s
    	r   )gymnasium.spacesr   numpyr   gymnasium.envs.classic_controlr   r   r   r   r   r   <module>   s    