home
·
contact
·
privacy
projects
/
plomrogue2-experiments
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1ab852b
)
Refactor transfer of task command arguments.
author
Christian Heller
<c.heller@plomlompom.de>
Thu, 24 Aug 2017 21:45:01 +0000
(23:45 +0200)
committer
Christian Heller
<c.heller@plomlompom.de>
Thu, 24 Aug 2017 21:45:01 +0000
(23:45 +0200)
server.py
patch
|
blob
|
history
diff --git
a/server.py
b/server.py
index 6f79e0db69308e67665c090daeb3f17cdfeeced0..215317dd6714cfdd97c59b3f980781414e5b269e 100755
(executable)
--- a/
server.py
+++ b/
server.py
@@
-79,40
+79,47
@@
class IO_Handler(socketserver.BaseRequestHandler):
self.request.close()
self.request.close()
+class Task:
+
+ def __init__(self, name, args=(), kwargs={}):
+ self.name = name
+ self.args = args
+ self.kwargs = kwargs
+ self.todo = 1
+
+
class Thing:
def __init__(self, position):
self.position = position
class Thing:
def __init__(self, position):
self.position = position
- self.task = 'wait'
- self.todo = 0
+ self.task = Task('wait')
def task_wait(self):
pass
def task_wait(self):
pass
- def task_move
up(self
):
- self.position[0] -= 1
-
-
def task_movedown(self)
:
- self.position[0] += 1
+ def task_move
(self, direction
):
+ if direction == 'UP':
+ self.position[0] -= 1
+
elif direction == 'DOWN'
:
+
self.position[0] += 1
def decide_task(self):
self.set_task('wait')
def decide_task(self):
self.set_task('wait')
- def set_task(self, task):
- self.task = task
- self.todo = 1
+ def set_task(self, task, *args, **kwargs):
+ self.task = Task(task, args, kwargs)
def proceed(self, is_AI=True):
"""Further the thing in its tasks.
def proceed(self, is_AI=True):
"""Further the thing in its tasks.
- Decrements
self.todo; if it thus falls to <= 0, enacts the
method whose
- name is 'task_' + self.task
and sets self
.task = None. If is_AI, calls
-
self.decide_task to decide a new
self.task.
+ Decrements
.task.todo; if it thus falls to <= 0, enacts
method whose
+ name is 'task_' + self.task
.name and sets
.task = None. If is_AI, calls
+
.decide_task to decide a
self.task.
"""
"""
- self.todo -= 1
- if self.todo <= 0:
- task= getattr(self, 'task_' + self.task)
- task()
+ self.t
ask.t
odo -= 1
+ if self.t
ask.t
odo <= 0:
+ task= getattr(self, 'task_' + self.task
.name
)
+ task(
*self.task.args, **self.task.kwargs
)
self.task = None
if is_AI and self.task is None:
self.decide_task()
self.task = None
if is_AI and self.task is None:
self.decide_task()
@@
-245,13
+252,10
@@
class CommandHandler:
self.send_to(connection_id, str(self.world.turn))
def cmd_move(self, direction, connection_id):
self.send_to(connection_id, str(self.world.turn))
def cmd_move(self, direction, connection_id):
- """Set player task to 'move
up' or 'movedown'
, finish player turn."""
+ """Set player task to 'move
' with direction arg
, finish player turn."""
if not direction in {'UP', 'DOWN'}:
raise ArgumentError('MOVE ARGUMENT MUST BE "UP" or "DOWN"')
if not direction in {'UP', 'DOWN'}:
raise ArgumentError('MOVE ARGUMENT MUST BE "UP" or "DOWN"')
- if direction == 'UP':
- self.world.player.set_task('moveup')
- else:
- self.world.player.set_task('movedown')
+ self.world.player.set_task('move', direction=direction)
self.proceed_to_next_player_turn(connection_id)
def cmd_wait(self, connection_id):
self.proceed_to_next_player_turn(connection_id)
def cmd_wait(self, connection_id):