-
Notifications
You must be signed in to change notification settings - Fork 0
/
clientlib.py
113 lines (89 loc) · 2.81 KB
/
clientlib.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# -*- coding: utf-8 -*-
"""
Created on Tue Dec 13 11:59:38 2016
@author: pavla
"""
# Imports ---------------------------------------------------------------------
import functools
import logging
# Custom imports --------------------------------------------------------------
import common
# Logging ---------------------------------------------------------------------
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.DEBUG)
# Request functions -----------------------------------------------------------
def do_str(func):
@functools.wraps(func)
def wrapped(*args):
return common.SEP.join(func(*args))
return wrapped
@do_str
def make_req_connect(client_name):
return common.REQ_CONNECT, client_name
@do_str
def make_req_disconnect(client_name):
return common.REQ_DISCONNECT, client_name
@do_str
def make_req_list_opened():
return common.REQ_LIST_OPENED,
@do_str
def make_req_list_closed():
return common.REQ_LIST_CLOSED,
@do_str
def make_req_create_game(game_name, client_name, width, height):
return (common.REQ_CREATE_GAME, game_name, client_name,
str(width), str(height))
@do_str
def make_req_join_game(game_name, client_name):
return common.REQ_JOIN_GAME, game_name, client_name
@do_str
def make_req_spectate_game(game_name, client_name):
return common.REQ_SPECTATE_GAME, game_name, client_name
@do_str
def make_req_leave_game(client_name):
return common.REQ_LEAVE_GAME, client_name
@do_str
def make_req_get_dimensions():
return common.REQ_GET_DIMENSIONS,
@do_str
def make_req_get_players():
return common.REQ_GET_PLAYERS,
@do_str
def make_req_get_players_ready():
return common.REQ_GET_PLAYERS_READY,
@do_str
def make_req_get_owner():
return common.REQ_GET_OWNER,
@do_str
def make_req_get_turn():
return common.REQ_GET_TURN,
@do_str
def make_req_get_field(client_name):
return common.REQ_GET_FIELD, client_name
@do_str
def make_req_get_all_fields(client_name):
return common.REQ_GET_ALL_FIELDS, client_name
@do_str
def make_req_get_spectator(client_name):
return common.REQ_GET_SPECTATOR, client_name
@do_str
def make_req_get_spectator_queue(client_name):
return common.REQ_GET_SPECTATOR_QUEUE, client_name
@do_str
def make_req_get_hits(client_name):
return common.REQ_GET_HITS, client_name
@do_str
def make_req_set_ready(client_name, ships):
return [common.REQ_SET_READY, client_name] + ships
@do_str
def make_req_kick_out(client_name, opponent_name):
return common.REQ_KICK_OUT, client_name, opponent_name
@do_str
def make_req_start_game(client_name):
return common.REQ_START_GAME, client_name
@do_str
def make_req_shoot(client_name, opponent_name, row, column):
return common.REQ_SHOOT, client_name, opponent_name, str(row), str(column)
@do_str
def make_req_restart_session():
return common.REQ_RESTART_SESSION,