sc3.GetTaskVar(person,day,phase,タスク名)
が書式です。
GetShiftVarのフェーズ・タスクモード版になります。
■GetShiftVarの代わりにGetTaskVarを使います。
■下は、プロジェクトサンプルsudoku_task.nurse3の記述です。
import sc3
for day in 全日: #列制約
for ph in range(3):
for タスク in 全タスク:
s='PythonColumnConstraint_'+daydef[day]+' '+タスク +'\n'
sc3.print(s)
V=[]
for 人 in 全スタッフ:
V.append(sc3.GetTaskVar(人,day,ph,タスク))
sc3.AddHard(sc3.SeqLE(1,1,V),s)
for 人 in 全スタッフ:#行制約
for タスク in 全タスク:
V=[]
s='Python_Row_Constraint_'+staffdef[人]+' '+タスク+'\n'
for day in 全日:
for ph in range(3):
V.append(sc3.GetTaskVar(人,day,ph,タスク))
sc3.AddHard(sc3.SeqLE(1,1,V),s)
for 人 in スタッフブロックトップ: #ブロック制約
for day in 全日:
for タスク in 全タスク:
V=[]
s='Python_Block_Constraint_'+staffdef[人]+' '+daydef[day]+' '+タスク+'\n'
for i in range(3):
for j in range(3):
V.append(sc3.GetTaskVar(人+i,day,j,タスク))
sc3.AddHard(sc3.SeqLE(1,1,V),s)