Large diffs are not rendered by default.

Empty file.
@@ -4,11 +4,9 @@
import random


def run(long,lat):
response = urllib2.urlopen('http://m.mobile.de/svc/s/?ll=' + long + ',' + lat + '&s=Car&psz=100&sb=doc')
data = json.load(response)['items']
def main(long,lat):
response = urllib2.urlopen('http://m.mobile.de/svc/s/?ll=' + str(long) + ',' + str(lat) + '&s=Car&psz=100&sb=doc')
gameCars = validation(data)
print gameCars
return gameCars


@@ -33,4 +31,5 @@ def validation(list):
return resList



if __name__ == '__main__':
main()
@@ -3,10 +3,10 @@
import json
import random

import parser
import card_parser


class Game():
class Game:
def __init__(self):
self.players = {}
self.turn = None
@@ -30,7 +30,7 @@ def wait_for_answer(self, player):
def handle_round(self, player):
# TODO: Add actual functionality
cards = [player.get_card() for player in self.players.values()]
data = {'turn': self.turn, 'cards': cards}
data = {'turn': self.turn.get_name(), 'cards': cards}
return json.dumps({'action': 'next', 'data': data})

def start_game(self):
@@ -39,7 +39,7 @@ def start_game(self):
return self.turn


class Player():
class Player:
def __init__(self, conn, data):
self.name = data['name']
self.connection = conn
@@ -52,20 +52,20 @@ def get_name(self):
def get_card(self):
return self.current_card

def receive_cards(self, data):
long = data['long']
lat = data['lat']
cards = parser.main(long, lat)
def receive_cards(self, player_data):
long = player_data['data']['long']
lat = player_data['data']['lat']
cards = card_parser.main(lat, long)
self.cards = [Card(values) for values in cards]


class Card():
class Card:
def __init__(self, values):
self.values = values
# TODO: Check if comparisons are good
self.comparisons = {'price': min,
'power': max,
'milage': min,
'mileage': min,
'registration': min,
'consumption': min}

@@ -1,20 +1,29 @@
# Main server thread
import socket
import thread
import json

from game import Game


def client_thread(game, conn):
answer_data = json.dumps({'return': 'ok'})
# Receive init data from player
player_data = conn.recv(1024)
player_data = conn.recv(4096)
conn.sendall(answer_data)
print "PLAYER_DATA:", player_data
print "waiting for other_data"
other_data = conn.recv(1024)
conn.sendall(answer_data)
print "other_data:", other_data
player = game.add_player(conn, player_data)

while True:
request = conn.recv(1024)
if not request:
print "NO DATA! THIS SHOULD NOT HAPPEN!!!"
break
print "REQUEST:", request

answer_data = game.wait_for_answer(player)
conn.sendall(answer_data)
@@ -0,0 +1,17 @@
import socket
import json
import time

data = "test123"

test = 10
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 8080))
while test:
s.send(json.dumps(data))
result = json.loads(s.recv(1024))
print result
test -= 1
time.sleep(1)

s.close()
@@ -0,0 +1,34 @@
import thread
import json
from SimpleWebSocketServer import WebSocket, SimpleWebSocketServer
from game import Game


def client_thread(game, conn, data):
player = game.add_player(conn, data)
print player


class CartetsServer(WebSocket):
def handleMessage(self):
try:
data = json.loads(self.data.decode('utf-8'))
value = data['action']
except Exception:
data = ''
value = ''

if type(data) is dict and value == 'init':
thread.start_new_thread(client_thread, (game, self, data))

# self.sendMessage(str(self.data))

def handleConnected(self):
print self.address, 'connected'

def handleClose(self):
print self.address, 'closed'

game = Game()
server = SimpleWebSocketServer('', 8080, CartetsServer)
server.serveforever()