Kodomo

Пользователь

План реализации

Репозиторий проекта

ssh://hg@kodomo.fbb.msu.ru/cca

Распределение работы

Структура данных

Модуль State.py:

   1 class State(object):
   2         def __init__(self,name,symbol,color,nums,key):
   3                 #name - имя, symbol - символ, который записывается в файл или хранится в массиве, color - цвет отображения, nums - условия перехода - список цифр от 0 до 9, если такое кол-во окружающих клеток с таким же состоянием - переход, соответствующая кнопка на клаве
   4                 self.name=name
   5                 self.symbol=symbol
   6                 self.color=color
   7                 self.nums=nums
   8                 self.key=key
   9         def nextState(self,num):
  10                 #num - число окружающих клеток в таком же состоянии
  11                 return num in self.nums
  12         def __repr__(self):
  13                 pass

Модуль Automata.py:

   1 class Automata(object):
   2         #field[][]
   3         #states[]
   4         #все изменеия состояния клеток поля и изменения в списке состояний предлагаю делать через непосредственное обращение к соответствующим спискам экземпляра класса, который будет храниться в интрефейсе
   5         def __init__(self,width,height,states):
   6                 pass
   7         def nextStep():
   8                 pass
   9         def changeSize(width,height):
  10                 pass
  11         def containState(symbol):
  12                 return False

Модуль Interface.py:

   1 automata
   2 handlers
   3 #menu
   4 #infoPanel=Frame
   5 #canvas
   6 #actionPanelFrame start stop nextStep zoomIn zoomOut faster slower
   7 
   8 
   9 class Handlers(object):
  10         {???
  11         def __init__(self):
  12         }
  13         def start():
  14                 pass
  15         def stop():
  16                 pass
  17         def nextStep():
  18                 pass
  19         def saveFile():
  20                 pass
  21         def openFile():
  22                 pass
  23         def help():
  24                 pass
  25         def zoomIn():
  26                 pass
  27         def zoomOut():
  28                 pass
  29         def slower():
  30                 pass
  31         def faster():
  32                 pass
  33         def changeSize():
  34                 pass
  35         def draw():
  36                 pass
  37         def press1():# рисовалка
  38                 pass
  39         def motion1():# рисовалка
  40                 pass
  41         def press3():# рисовалка
  42                 pass
  43         def motion3():# рисовалка
  44                 pass
  45         def pressKey1():# рисовалка+перемещение по полю (левая+ctrl)
  46                 pass
  47         def motionKey1():# рисовалка+перемещение по полю (левая+ctrl)
  48                 pass
  49         def press12():# zoom
  50                 pass
  51         def motion12():# zoom
  52                 pass
  53 #_______change order of states_________
  54         def changeStates():# появление окошка для изменения порядка состояний: список параметров, можно выбрать один или два и есть три кнопки: toTop toBottom switch delete
  55                 pass
  56         def toTop():# отправляет один элемент списка в начало
  57                 pass
  58         def toBottom():# отправляет один элемент списка в конец
  59                 pass
  60         def switch():# меняет два выбранных элемента местами
  61                 pass
  62         def deleteState():
  63                 pass
  64         def closeChangeWindow():# закрывает окно изменения порядка состояний
  65 #_______add state_____________________
  66         def addState():# открытие окошка добавления, две кнопки: add close
  67                 pass
  68         def add():
  69                 pass
  70         def closeAddWindow():
  71                 pass
  72 #________change state parameters________
  73         def changeStateParameters():# появление окошка, в котором есть список состояний, облавти ввода текста с подписями, которые самозаполняются при выделении элементов списка, есть кнопки OK close delete
  74                 pass
  75         def ok():
  76                 pass
  77         #deleteState уже есть
  78         def closeStateWindow():
  79                 pass