def __init__(self):
        print "initializing"
        pygame.init()
        self.screen = self.make_screen()
        self.screenrect = self.screen.get_rect()

        resources.images = resources.load_all_images()

        pygame.display.set_icon(resources.images.icon)

        self.submenu = game_submenu(self, self.screenrect)
        self.submenu.draw_all(self.screen)

        pygame.display.flip()

        self.tochangeto = ''

        self.run = True

        lidapy.init(process_name='Environment')

        self.image_topic = lidapy.Topic('images', msg_type=CompressedImage, queue_size=1)
        self.action_topic = lidapy.Topic('actions', queue_size=1)

        self.mainloop()
Exemple #2
0
#!/usr/bin/python
#  coding=utf-8
from functools import partial

import lidapy
from lidapy import Config
from lidapy import Task
from lidapy.modules import Environment
import numpy as np

# Topic definitions
board_state_topic = lidapy.Topic('oxplayer/env/board')
action_topic = lidapy.Topic('oxplayer/player2/action')
turn_topic = lidapy.Topic('oxplayer/env/turn')
pain_topics = [
    lidapy.Topic('oxplayer/player1/pain'),
    lidapy.Topic('oxplayer/player2/pain')
]
BLANK = -1
PLAYER1 = 0
PLAYER2 = 1
INVALID_MOVE = 9
PAIN = 1


class Board(object):
    def __init__(self, board):
        self._board_marks = {PLAYER1: 'X', PLAYER2: 'O', BLANK: ' '}
        self._board = board
        self._win_zones = [(0, 1, 2), (3, 4, 5), (6, 7, 8), (0, 3, 6),
                           (1, 4, 7), (2, 5, 8), (0, 4, 8), (2, 4, 6)]
#! /usr/bin/env/ python
from sys import argv

import lidapy
import ast
from lidapy import Config
from lidapy.modules import SensoryMemory
from env.environment import first_blank, PLAYER2, PLAYER1
from lidapy import Task

board_state_topic = lidapy.Topic('oxplayer/env/board')
pain_signal_topic = lidapy.Topic('oxplayer/player2/pain')
blank_position = lidapy.Topic('oxplayer/blank')
turn_topic = lidapy.Topic('oxplayer/env/turn')
dorsal_turn_topic = lidapy.Topic('oxplayer/player2/dorsal/turn')


def see_board():
    board_state = board_state_topic.receive()
    lidapy.loginfo('Received board_state:' + str(board_state))
    if board_state:
        board_state = ast.literal_eval(board_state)
        blank = first_blank(board_state)
        lidapy.loginfo('blank position:' + str(blank))
        blank_position.send(blank)


def dorsal_update():
    turn = turn_topic.receive()
    lidapy.loginfo('Received turn:' + str(turn))
    if turn == PLAYER1 or turn == PLAYER2:
Exemple #4
0
#! /usr/bin/env python

from PIL import Image
from StringIO import StringIO
from sys import argv

import lidapy
from lidapy import LIDAThread, Config
from sensor_msgs.msg import CompressedImage

image_topic = lidapy.Topic('images', msg_type=CompressedImage)


def receive_image():
    msg = image_topic.receive()  # type: CompressedImage
    if msg:
        # TODO: Create the pixel layer from this image's data
        image = Image.open(StringIO(msg.data))


# Initialize the lidapy framework
lidapy.init(config=Config(argv[1]), process_name='sensory_memory')
LIDAThread(name='sensory_memory', callback=receive_image).start()
#! /usr/bin/env/ python

import lidapy
from lidapy import Config
from lidapy import Task
from lidapy.modules import SensoryMotorMemory
from env.environment import PLAYER1, PLAYER2


blank_position = lidapy.Topic('oxplayer/blank')
action_topic = lidapy.Topic('oxplayer/player2/action')
dorsal_turn_topic = lidapy.Topic('oxplayer/player2/dorsal/turn')

sms = SensoryMotorMemory()
sms.turn = PLAYER1


def make_move():
    msg = blank_position.receive()
    lidapy.loginfo('Received blank_position:'+str(msg))
    lidapy.loginfo('Current turn:'+str(sms.turn))
    if msg is not None and sms.turn == PLAYER2:
        lidapy.loginfo(msg)
        lidapy.loginfo('motor move:'+str(msg))
        action_topic.send(msg)


def receive_turn():
    turn = dorsal_turn_topic.receive()
    lidapy.loginfo('Received turn:'+str(turn))
    if turn: