?? fsmnode.java
字號:
/*
* FSMNode.java
*
* Created on February 4, 2003, 6:43 PM
*/
package jaga.pj.circuits.experiment;
import java.util.Vector;
import java.util.Random;
/** Intended to represent a Node in the transition graph of a Finite State Machine.
* Optimized for machine with four fully connected nodes where one connection should
* never be removed.
* @author Michael Garvie
* @version
*/
public class FSMNode implements java.io.Serializable {
FSMEdge fixed;
Vector edges;
Random rnd;
boolean fixedTouched = false;
/** Creates new FSMNode */
public FSMNode() {
edges = new Vector();
rnd = new Random();
}
public FSMNode( Random prnd )
{
this();
rnd = prnd;
}
public void connectTo( FSMEdge e1, FSMEdge e2, FSMEdge e3, FSMEdge e4 )
{
fixed = e1;
edges.add( e1 );
edges.add( e2 );
edges.add( e3 );
edges.add( e4 );
}
public void connectTo( FSMEdge e1, FSMEdge e2, FSMEdge e3 )
{
fixed = e1;
edges.add( e1 );
edges.add( e2 );
edges.add( e3 );
}
public void connectTo( FSMEdge e1, FSMEdge e2 )
{
fixed = e1;
edges.add( e1 );
edges.add( e2 );
}
public boolean remove( FSMEdge e )
{
if( e == fixed )
{
if( fixedTouched )
{
return false;
}else
{
fixedTouched = true;
return true;
}
}
edges.remove( e );
return true;
}
public FSMEdge pick()
{
return ( FSMEdge ) edges.get( rnd.nextInt( edges.size() ) );
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -