예제 #1
0
	def test_play_game(self):
		name1 = r
		p1 = Player_Wrapper(name1)
		name2 = s
		p2 = Player_Wrapper(name2)
		winner, loser, illegal = play_game(p1, p2, name1, name2)
		self.assertEqual(winner, [s])
		self.assertEqual(loser, r)
		self.assertTrue(illegal)
예제 #2
0
	def test_receive_stones(self):
		p = Player_Wrapper(s)
		self.assertEqual(p.receive_stones(BLACK), GONE_CRAZY)
		p.register()
		p.receive_stones(BLACK)
		self.assertEqual(p.player.color, BLACK)
		self.assertEqual(p.receive_stones(BLACK), GONE_CRAZY)
예제 #3
0
	def test_add_player_to_tournament(self):
		name = r
		p = Player_Wrapper(name)
		add_player_to_tournament(p, name, False)
		self.assertEqual(players[name], p)
		self.assertEqual(rankings[name], 0)
		self.assertEqual(beaten[name], [])
		self.assertTrue(name in player_list)
예제 #4
0
	def test_add_default_players(self):
		p = Player_Wrapper(s)
		add_player_to_tournament(p, s, False)
		sock, DefaultPlayer = setup_from_config()
		add_default_players(1, DefaultPlayer)
		self.assertEqual(len(players), 2)
		self.assertEqual(len(rankings), 2)
		self.assertEqual(len(beaten), 2)
		self.assertEqual(len(player_list), 2)
		sock.close()
예제 #5
0
from player import Player1, Player3
from player_wrapper import Player_Wrapper
import random
import admin
import tournament_admin

print("----------------Testing Game Admin----------------")
for i in range(10):
    p1 = random.randint(0, 1)
    if p1 == 0:
        player1 = Player1("p1")
    else:
        player1 = Player3("p1")

    p1_wrap = Player_Wrapper(player1.name)
    p1_wrap.player = player1
    name1 = p1_wrap.register()

    p2 = random.randint(0, 1)
    if p2 == 0:
        player2 = Player1("p2")
    else:
        player2 = Player3("p2")

    p2_wrap = Player_Wrapper(player2.name)
    p2_wrap.player = player2
    name2 = p2_wrap.register()

    print(admin.administrate(p1_wrap, p2_wrap, name1, name2))

print("----------------Testing Tournament Admin----------------")
예제 #6
0
from helpers import *
from play_wrapper import PlayWrapper
from player_wrapper import Player_Wrapper

PLAY_WRAP = PlayWrapper()
PLAYER1_WRAP = Player_Wrapper()
PLAYER2_WRAP = Player_Wrapper()


class Referee:
    def __init__(self):
        self.boards = [EMPTY_BOARD]
        self.current_turn = None
        self.num_passes = 0

    def get_boards(self):
        return self.boards

    def set_players(self, name1, name2):
        self.current_turn = PLAYER1_WRAP
        PLAYER1_WRAP.register()
        PLAYER2_WRAP.register()
        PLAYER1_WRAP.set_name(name1)
        PLAYER1_WRAP.receive_stones(BLACK)
        PLAYER2_WRAP.set_name(name2)
        PLAYER2_WRAP.receive_stones(WHITE)
        return PLAYER1_WRAP.get_color(), PLAYER2_WRAP.get_color()

    def make_action(self, action):
        if action == PASS:
            self.num_passes += 1
예제 #7
0
            result = GONE_CRAZY
    elif request[0] == "make-a-move":
        try:
            result = PLAYER_WRAP.make_a_move(request[1])
        except:
            result = GONE_CRAZY
    else:
        result = GONE_CRAZY
    return result


def try_to_connect(config):
    try:
        sock.connect((config["IP"], config["port"]))
    except:
        try_to_connect(config)


PLAYER_WRAP = Player_Wrapper()
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
config = get_config()
try_to_connect(config)

sock.send(pickle.dumps("establish connection"))
while True:
    request = pickle.loads(sock.recv(4096))
    if request == "close":
        break
    sock.send(pickle.dumps(get_response(request)))
sock.close()
예제 #8
0
import sys
import json
from json import JSONDecoder, JSONDecodeError
import re
from player_wrapper import Player_Wrapper
import play_wrapper

play_wrap = play_wrapper.PlayWrapper()
p1 = Player_Wrapper("no name")
NOT_WHITESPACE = re.compile(r'[^\s]')


def point_to_string(point):
    return str(point[1] + 1) + "-" + str(point[0] + 1)


def decode_stacked(document, pos=0, decoder=JSONDecoder()):
    while True:
        match = NOT_WHITESPACE.search(document, pos)
        if not match:
            return
        pos = match.start()

        try:
            obj, pos = decoder.raw_decode(document, pos)
        except JSONDecodeError:
            raise Exception("Can't parse")
        yield obj


s = ""
예제 #9
0
from player_wrapper import Player_Wrapper

default_player = Player_Wrapper()
예제 #10
0
	def test_make_move(self):
		p = Player_Wrapper(s)
		p.register()
		self.assertEqual(p.make_a_move(boards), GONE_CRAZY)
		p.receive_stones(WHITE)
		self.assertNotEqual(p.make_a_move(boards), GONE_CRAZY)
예제 #11
0
	def test_register(self):
		p = Player_Wrapper(s)
		self.assertEqual(p.register(), s)
		self.assertEqual(p.register(), GONE_CRAZY)
예제 #12
0
	def test_init(self):
		p = Player_Wrapper(s)
		self.assertEqual(p.register_flag, False)
		self.assertEqual(p.receive_flag, False)
		self.assertEqual(p.player.name, s)