layoutfactory.cs
来自「classic tsp analysis method with c++ !」· CS 代码 · 共 143 行
CS
143 行
using System;
using HRD.Core;
public abstract class AbstractLayoutFactory : ILayoutFactory
{
protected Mediator _mediator;
public Mediator mediator
{
set
{
_mediator = value;
}
}
public abstract Layout Create();
}
public class TwoStepLayoutFactory : AbstractLayoutFactory
{
#region ILayoutFactory 成员
public override Layout Create()
{
Layout l = new Layout();
l.blankPosition = new BlankPosition(new Position(0,4), new Position(2,4));
l.mediator = _mediator;
l.chessmen[0] = new VChessman(new Position(0,0));
l.chessmen[1] = new General(new Position(1,2));
l.chessmen[2] = new VChessman(new Position(3,0));
l.chessmen[3] = new VChessman(new Position(0,2));
l.chessmen[4] = new HChessman(new Position(1,0));
l.chessmen[5] = new VChessman(new Position(3,2));
l.chessmen[6] = new Soldier(new Position(1,1));
l.chessmen[7] = new Soldier(new Position(2,1));
l.chessmen[8] = new Soldier(new Position(1,4));
l.chessmen[9] = new Soldier(new Position(3,4));
return l;
}
#endregion
}
public class NoAnswerLayoutFactory : AbstractLayoutFactory
{
#region ILayoutFactory 成员
public override Layout Create()
{
Layout l = new Layout();
l.blankPosition = new BlankPosition(new Position(3,0), new Position(3,3));
l.mediator = _mediator;
l.chessmen[0] = new VChessman(new Position(2,0));
l.chessmen[1] = new General(new Position(0,2));
l.chessmen[2] = new VChessman(new Position(2,3));
l.chessmen[3] = new HChessman(new Position(0,0));
l.chessmen[4] = new HChessman(new Position(2,2));
l.chessmen[5] = new HChessman(new Position(0,4));
l.chessmen[6] = new Soldier(new Position(0,1));
l.chessmen[7] = new Soldier(new Position(1,1));
l.chessmen[8] = new Soldier(new Position(3,1));
l.chessmen[9] = new Soldier(new Position(3,4));
return l;
}
#endregion
}
public class LayoutFactory : AbstractLayoutFactory
{
#region ILayoutFactory 成员
public override Layout Create()
{
Layout l = new Layout();
l.blankPosition = new BlankPosition(new Position(1,4), new Position(2,4));
l.mediator = _mediator;
l.chessmen[0] = new VChessman(new Position(0,0));
l.chessmen[1] = new General(new Position(1,0));
l.chessmen[2] = new VChessman(new Position(3,0));
l.chessmen[3] = new VChessman(new Position(0,2));
l.chessmen[4] = new HChessman(new Position(1,2));
l.chessmen[5] = new VChessman(new Position(3,2));
l.chessmen[6] = new Soldier(new Position(0,4));
l.chessmen[7] = new Soldier(new Position(1,3));
l.chessmen[8] = new Soldier(new Position(2,3));
l.chessmen[9] = new Soldier(new Position(3,4));
return l;
}
#endregion
}
public class ComplexLayoutFactory : AbstractLayoutFactory
{
#region ILayoutFactory 成员
public override Layout Create()
{
Layout l = new Layout();
l.blankPosition = new BlankPosition(new Position(0,4), new Position(3,4));
l.mediator = _mediator;
l.chessmen[0] = new VChessman(new Position(0,1));
l.chessmen[1] = new General(new Position(1,0));
l.chessmen[2] = new VChessman(new Position(3,1));
l.chessmen[3] = new HChessman(new Position(1,2));
l.chessmen[4] = new HChessman(new Position(1,3));
l.chessmen[5] = new HChessman(new Position(1,4));
l.chessmen[6] = new Soldier(new Position(0,0));
l.chessmen[7] = new Soldier(new Position(3,0));
l.chessmen[8] = new Soldier(new Position(0,3));
l.chessmen[9] = new Soldier(new Position(3,3));
return l;
}
#endregion
}
public class OneStepLayoutFactory : AbstractLayoutFactory
{
#region ILayoutFactory 成员
public override Layout Create()
{
Layout l = new Layout();
l.blankPosition = new BlankPosition(new Position(1,4), new Position(2,4));
l.mediator = _mediator;
l.chessmen[0] = new VChessman(new Position(0,0));
l.chessmen[1] = new General(new Position(1,2));
l.chessmen[2] = new VChessman(new Position(3,0));
l.chessmen[3] = new VChessman(new Position(0,3));
l.chessmen[4] = new HChessman(new Position(1,0));
l.chessmen[5] = new VChessman(new Position(3,3));
l.chessmen[6] = new Soldier(new Position(1,1));
l.chessmen[7] = new Soldier(new Position(2,1));
l.chessmen[8] = new Soldier(new Position(0,2));
l.chessmen[9] = new Soldier(new Position(3,2));
return l;
}
#endregion
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?