SlideShare a Scribd company logo
src/Artifact.javasrc/Artifact.javaclassArtifactextendsCave{
publicint creatureIndex =0;
publicArtifact(int index,String type,int creatureIndex){
super(type, index);
this.creatureIndex = creatureIndex;
}
@Override
publicString toString(){
// Return neater output of the class data
return"[Artifact]: ntOwner Index = "
+Integer.toString(this.creatureIndex)
+" ntArtifact Type = "+this.type;
}
}
src/Cave.javasrc/Cave.javapublicclassCave{
publicint index =0;
publicString type =null;
publicString name =null;
/***
* Constructor
* @param index
*/
publicCave(int index){
this.index = index;
}
publicCave(int index,String type,String name){
this.index = index;
this.type = type;
this.name = name;
}
publicCave(int index,String name){
this.index = index;
this.name = name;
}
publicCave(String type,int index){
this.index = index;
this.type = type;
}
}
src/Creature.javasrc/Creature.javaimport java.awt.BorderLayout
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
classCreatureextendsCaveimplementsActionListener,Runnable{
publicint partyIndex =0;
publicint empathyValue;
publicint fearValue;
publicdouble carryingCapacity;
publicint age;
publicint weight;
publicdouble height;
publicArrayList<Treasure> treasures =newArrayList<Treasure>
();
publicArrayList<Artifact> artifacts =newArrayList<Artifact>();
publicArrayList<Jobs> jobs =newArrayList<Jobs>();
publiclong jobTime =0;
publicJobs currentJob =null;
publicvolatileboolean runJob =false;
publicvolatileboolean cancelJob =false;
JButton cancelButton =newJButton("Cancel Job");
JButton startButton =newJButton("Start Job");
publicCreature(int index,String type,String name,int partyIndex,
int empathyValue,int fearValue,double carryingCapacity){
super(index, type, name);
this.partyIndex = partyIndex;
this.empathyValue = empathyValue;
this.fearValue = fearValue;
this.carryingCapacity = carryingCapacity;
}
publicCreature(int index,String type,String name,int partyIndex,
int empathyValue,int fearValue,double carryingCapacity,int age
,
int weight,double height){
super(index, type, name);
this.partyIndex = partyIndex;
this.empathyValue = empathyValue;
this.fearValue = fearValue;
this.carryingCapacity = carryingCapacity;
this.age = age;
this.weight = weight;
this.height = height;
}
publicvoid addTreature(Treasure t){
if(t !=null&& t instanceofTreasure&& t.creatureIndex !=0){
this.treasures.add(t);
}
}
publicvoid addArtifact(Artifact a){
if(a !=null&& a instanceofArtifact&& a.creatureIndex !=0){
this.artifacts.add(a);
}
}
@Override
publicString toString(){
String output ="";
output +="[Creature]: ntType = "+this.type +" ntName
= "
+this.name +" ntParty Index = "
+Integer.toString(this.partyIndex)+" ntEmpathy Value = "
+Integer.toString(this.empathyValue)+" ntFear Value = "
+Integer.toString(this.fearValue)
+" ntCarrying Capacity = "
+Double.toString(this.carryingCapacity);
output +="nt------Owned Items------n";
for(Treasure t :this.treasures)
output +="nt"+ t.toString();
for(Artifact a :this.artifacts)
output +="nt"+ a.toString();
output +="nt-----------------------n";
return output;
}
publicvoid addJob(long time,Jobs j){
this.jobTime = time;
this.currentJob = j;
this.jobs.add(j);
}
publicvoid run(){
JProgressBar progressBar =newJProgressBar();
progressBar.setStringPainted(true);
cancelButton.addActionListener(this);
startButton.addActionListener(this);
JFrame jf =newJFrame("Creature "+this.name +"'s Job");
jf.add(newJLabel(" Performing Job: "+this.currentJob.nam
e),
BorderLayout.PAGE_START);
jf.add(progressBar,BorderLayout.CENTER);
JPanel btnPanel =newJPanel();
btnPanel.add(startButton);
btnPanel.add(cancelButton);
jf.add(btnPanel,BorderLayout.SOUTH);
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOS
E);
jf.setLocationRelativeTo(null);
System.out.println("Starting Job: "+this.currentJob.name);
System.out.println("Job Duration: "+this.jobTime);
Thread jobThread =Thread.currentThread();
while(!this.runJob){
jobThread.yield();
}
long currentTime =System.currentTimeMillis();
long startTime = currentTime;
long stopTime = currentTime +1000* jobTime;
System.out.println("Stop time: "+ stopTime);
double duration = stopTime - currentTime;
while(currentTime < stopTime){
if(this.cancelJob ==true&& jobThread !=null){
jobThread.interrupt();
JOptionPane.showMessageDialog(null,"Job Cancelled!");
jf.dispose();
break;
}else{
try{
jobThread.sleep(100);
}catch(InterruptedException e){
}
progressBar
.setValue((int)(((currentTime - startTime)/ duration)*100));
currentTime =System.currentTimeMillis();
}
}
if(!this.cancelJob){
progressBar.setValue(100);
}
jf.dispose();
}
@Override
publicvoid actionPerformed(ActionEvent e){
if(e.getSource()== cancelButton){
this.cancelJob =true;
this.runJob =false;
}elseif(e.getSource()== startButton){
this.runJob =true;
this.cancelJob =false;
}
}
}
src/CreatureComp.javasrc/CreatureComp.javaimport java.util.C
omparator;
publicclassCreatureCompimplementsComparator<Creature>{
privateString attribute;
publicCreatureComp(String attribute){
this.attribute = attribute;
}
publicint compare(Creature c1,Creature c2){
int result =-1;
switch(attribute.charAt(0)){
case'e':
if(c1.empathyValue == c2.empathyValue){
result =0;
}elseif(c1.empathyValue > c2.empathyValue){
result =1;
}else{
result =-1;
}
break;
case'f':
if(c1.fearValue == c2.fearValue){
result =0;
}elseif(c1.fearValue > c2.fearValue){
result =1;
}else{
result =-1;
}
break;
case'c':
if(c1.carryingCapacity == c2.carryingCapacity){
result =0;
}elseif(c1.carryingCapacity > c2.carryingCapacity){
result =1;
}else{
result =-1;
}
break;
case'a':
if(c1.age == c2.age){
result =0;
}elseif(c1.age > c2.age){
result =1;
}else{
result =-1;
}
break;
case'h':
if(c1.height == c2.height){
result =0;
}elseif(c1.height > c2.height){
result =1;
}else{
result =-1;
}
break;
case'w':
if(c1.weight == c2.weight){
result =0;
}elseif(c1.weight > c2.weight){
result =1;
}else{
result =-1;
}
break;
default:
if(c1.carryingCapacity == c2.carryingCapacity){
result =0;
}elseif(c1.carryingCapacity > c2.carryingCapacity){
result =1;
}else{
result =-1;
}
break;
}
return result;
}
}
src/Game.javasrc/Game.java
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
publicclassGame{
privateString fileName;
privateHashMap<Integer,Cave> caveElements =newHashMap<I
nteger,Cave>();
publicArrayList<Cave> loners =newArrayList<Cave>();
publicArrayList<Party> parties =newArrayList<Party>();
Party party;
Creature creature;
Treasure treasure;
Artifact artifact;
publicGame(){
}
publicGame(String dataFileName)throwsIOException{
this.fileName = dataFileName;
this.loadFileData(dataFileName);
}
//searches the game elements for the input criteria
publicString searchGame(String searchInput){
String result ="";
ArrayList<Cave> printElements =newArrayList<Cave>();
printElements.addAll(caveElements.values());
printElements.addAll(loners);
for(Cave ge : printElements){
if(ge.index !=0&& searchInput !=null&&Integer.toString(ge.ind
ex).equals(searchInput)){
result += ge.toString()+"n";
}elseif(ge.type !=null&& searchInput !=null&& ge.type.toLowe
rCase().equals(searchInput.toLowerCase())){
result += ge.toString()+"n";
}elseif(ge.name !=null&& searchInput !=null&& ge.name.toLo
werCase().equals(searchInput.toLowerCase())){
result += ge.toString()+"n";
}
}
return result;
}
publicString printAll(){
String output ="";
ArrayList<Cave> printElements =newArrayList<Cave>();
printElements.addAll(caveElements.values());
for(Cave ge : printElements){
if(ge instanceofParty){
Party p =(Party) ge;
output += p.toString();
}
}
output +="n-----------------nLonersn-----------------n";
for(Cave ge : loners){
output +="n"+ ge.toString();
}
return output;
}
publicvoid setGameElements(String fileName)throwsIOExcepti
on{
this.loadFileData(fileName);
}
publicvoid setFileName(String fileName){
this.fileName = fileName;
}
publicString getFileName(){
returnthis.fileName;
}
//Prints the elements, sorted by the critera and the object they b
elong to
publicString printSortedElements(String object){
String result ="";
Set elementSet = caveElements.entrySet();
Iterator i = elementSet.iterator();
while(i.hasNext()){
Map.Entry g =(Map.Entry)i.next();
Cave ge =(Cave)g.getValue();
if(ge instanceofParty){
Party p =(Party)ge;
if("empathy".equals(object)||"carrying".equals(object)||"fear".eq
uals(object)||"name".equals(object)||"age".equals(object)||"heigh
t".equals(object)||"weight".equals(object)){
Collections.sort(p.creatures,newCreatureComp(object));
}
if("value".equals(object)){
for(Creature c : p.creatures){
Collections.sort(c.treasures,newTreasureComp(object));
}
}
result += p.toString();
}
}
result +="n---------------------nLonersn------------------
-n";
for(Cave geLoner : loners){
result += geLoner.toString();
}
return result;
}
publicvoid addJob(int index,String name,int creatureIndex,long
time){
Jobs j =newJobs(index, name, creatureIndex, time);
caveElements.put(index, j);
Creature c =(Creature)caveElements.get(creatureIndex);
c.addJob(time, j);
Thread t =newThread(c);
t.start();
}
privatevoid loadFileData(String fileName)throwsIOException{
List<String> lines =newArrayList<String>();
File file =newFile(fileName);
Scanner scanner=newScanner(file);
while(scanner.hasNext()){
lines.add(scanner.nextLine());
}
for(String line : lines){
line = line.replaceAll("s","");
if(!line.startsWith("//")&& line.length()>0){
String[] lineparts = line.split(":");
switch(lineparts[0].charAt(0)){
case'p':
party =newParty(Integer.parseInt(lineparts[1]), lin
eparts[2]);
this.caveElements.put(party.index, party);
parties.add(party);
break;
case'c':
creature =newCreature(Integer.parseInt(lineparts[1
]),
lineparts[2], lineparts[3],
Integer.parseInt(lineparts[4]),
Integer.parseInt(lineparts[5]),
Integer.parseInt(lineparts[6]),
Double.parseDouble(lineparts[7]));
if(lineparts.length >8&& lineparts[8]!=null){
creature.age =Integer.parseInt(lineparts[8]);
}
if(lineparts.length >9&& lineparts[9]!=null){
creature.height =Double.parseDouble(lineparts[
9]);
}
if(lineparts.length >10&& lineparts[10]!=null){
creature.weight =Integer.parseInt(lineparts[10])
;
}
Party creatureParty =(Party) caveElements
.get(creature.partyIndex);
if(creatureParty ==null|| creature.partyIndex ==0){
this.loners.add(creature);
}else{
creatureParty.addCreature(creature);
}
this.caveElements.put(creature.index, creature);
break;
case't':
treasure =newTreasure(Integer.parseInt(lineparts[1
]),
lineparts[2],Integer.parseInt(lineparts[3]),
Double.parseDouble(lineparts[4]),
Double.parseDouble(lineparts[5]));
Creature treasureCreature =(Creature) caveElements
.get(treasure.creatureIndex);
if(treasureCreature ==null|| treasure.creatureIndex ==0){
this.loners.add(treasure);
}else{
treasureCreature.addTreature(treasure);
}
this.caveElements.put(treasure.index, treasure);
break;
case'a':
artifact =newArtifact(Integer.parseInt(lineparts[1]
),
lineparts[2],Integer.parseInt(lineparts[3]));
Creature artifactCreature =(Creature) caveElements
.get(artifact.creatureIndex);
if(artifactCreature ==null|| artifact.creatureIndex ==0){
this.loners.add(artifact);
}elseif(artifact.creatureIndex !=0){
artifactCreature.addArtifact(artifact);
}
this.caveElements.put(artifact.index, artifact);
break;
case'j':
addJob(Integer.parseInt(lineparts[1]), lineparts[2],
Integer.parseInt(lineparts[3]),Long.parseLong(lineparts[4]));
break;
default:
break;
}
}
}
}
}
src/input.txt
// Jan 23, 2012
// Parties format:
// p:<index>:<name>
p : 10001 : Unity
p : 10002 : Assemblage
p : 10003 : Conglomeration
// Creatures format:
//
c:<index>:<type>:<name>:<party>:<empathy>:<fear>:<carrying
capacity>
c : 20001 : Woman : Lucy :10001 : 17 : 22 : 20
c : 20002 : Woman : Jane :10001 : 22 : 15 : 25
c : 20003 : Woman : Nancy :10003 : 80 : 44 : 20
c : 20004 : Man : James :10002 : 35 : 13 : 50
c : 20005 : Troll : Fred :10002 : 03 : 05 : 150
c : 20006 : Warlock : Harry :10003 : 05 : 06 : 0
c : 20007 : Witch : Morgana:10001 : 10 : 15 : 0
// Treasures format:
// t:<index>:<type>:<creature>:<weight>:<value>
// creature = 0 means noone is carrying that treasure at the
moment
t : 30001 : Gold : 20004 : 50 : 2000
t : 30002 : Gold : 0 : 75 : 5000
t : 30003 : Gems : 20002 : 10 : 10000
t : 30004 : Silver : 20005 : 120 : 1000
// Artifacts format:
// a:<index>:<type>:<creature>[:<name>]
a : 40001 : Wand : 20007 : ElderWand
a : 40002 : Wand : 20006
a : 40003 : Potion : 20007
j : 50001 : Heal Troll : 20007 : 10 : Wand : 1 : Stone : 2 : Scroll
: 1
src/Jobs.javasrc/Jobs.javapublicclassJobsextendsCave{
publicint creatureIndex =0;
publiclong time =0;
/**
* Costructor
* @param index
* @param name
* @param creatureIndex
* @param time
*/
publicJobs(int index,String name,int creatureIndex,long time){
super(index, name);
this.creatureIndex = creatureIndex;
this.time = time;
}
}
src/Main.javasrc/Main.javaimport java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.border.EmptyBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
publicclassMainextendsJFrameimplementsActionListener{
/***/
privateJTextArea output;
/***/
privateJFileChooser fileChooser;
/***/
privateJButton loadButton;
/***/
privateJButton showData;
/***/
privateJScrollPane completePanel;
/***/
privateJPanel panel;
/***/
privateGame game;
JTextField searchField;
JButton searchButton;
JButton sortButton;
String[] sortStrings ={"empathy","carrying","fear","weight","va
lue",
"age","height"};;
JComboBox sList;
JTree gameTree;
DefaultMutableTreeNode partyNode =null;
DefaultMutableTreeNode creatureNode =null;
DefaultMutableTreeNode artifactNode =null;
DefaultMutableTreeNode treasureNode =null;
DefaultMutableTreeNode lNode =null;
publicMain(String title){
searchField =newJTextField(20);
sortButton =newJButton("Sort");
searchButton =newJButton("Search");
sList =newJComboBox(sortStrings);
game =newGame();
panel =newJPanel();
fileChooser =newJFileChooser(".");
output =newJTextArea();
showData =newJButton("Show Data");
loadButton =newJButton("Load File");
this.loadButton.addActionListener(this);
this.showData.addActionListener(this);
this.searchButton.addActionListener(this);
this.sortButton.addActionListener(this);
completePanel =newJScrollPane(output);
add(completePanel,BorderLayout.CENTER);
panel.add(loadButton);
panel.add(showData);
panel.add(sortButton);
panel.add(sList);
panel.add(searchButton);
panel.add(searchField);
add(panel,BorderLayout.PAGE_END);
setTitle(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(400,400);
setVisible(true);
}
@Override
publicvoid actionPerformed(ActionEvent e){
if(e.getSource()== loadButton){
int returnVal = fileChooser.showOpenDialog(this);
if(returnVal ==JFileChooser.APPROVE_OPTION){
File file = fileChooser.getSelectedFile();
try{
game.setGameElements(file.getAbsolutePath());
JOptionPane.showMessageDialog(null,
"Data Successfully Loaded!");
}catch(IOException ex){
Logger.getLogger(Main.class.getName()).log(Level.SEVERE,
null, ex);
}
}
}elseif(e.getSource()== showData){
DefaultTreeCellRenderer render =newDefaultTreeCellRenderer(
);
render.setOpenIcon(null);
render.setClosedIcon(null);
render.setLeafIcon(null);
finalDefaultMutableTreeNode rootNode =newDefaultMutableTr
eeNode(
"Game/Cave",true);
gameTree =newJTree(rootNode);
gameTree.setCellRenderer(render);
JScrollPane sp =newJScrollPane(gameTree);
gameTree.addTreeSelectionListener(newTreeSelectionL
istener(){
@Override
publicvoid valueChanged(TreeSelectionEvent e){
if(rootNode !=null){
for(Party p : game.parties){
partyNode =newDefaultMutableTreeNode(p.
name,true);
if(!p.creatures.isEmpty()){
for(Creature c : p.creatures){
creatureNode =newDefaultMutableTree
Node(
c.name,true);
if(!c.artifacts.isEmpty()){
for(Artifact a : c.artifacts){
artifactNode =newDefaultMutable
TreeNode(
a.type,false);
creatureNode.add(artifactNode);
}
}
if(!c.treasures.isEmpty()){
for(Treasure t : c.treasures){
treasureNode =newDefaultMutabl
eTreeNode(
t.type,false);
creatureNode.add(treasureNode);
}
}
partyNode.add(creatureNode);
}
}
rootNode.add(partyNode);
}
lNode =newDefaultMutableTreeNode("Loners",
true);
for(Cave ge : game.loners){
if(ge instanceofArtifact
|| ge instanceofTreasure){
DefaultMutableTreeNode geNode =newDefaultMutableTreeNod
e(
ge.type,false);
lNode.add(geNode);
}else{
DefaultMutableTreeNode geNode =newDefaultMutableTreeNod
e(
ge.name,false);
lNode.add(geNode);
}
}
rootNode.add(lNode);
}
}
});
JLabel lbl =newJLabel(
"Double-click the root node to load and view sub-nodes.");
JFrame showFrame =newJFrame("Show Data: Game Tree");
JPanel lblPanel =newJPanel();
lblPanel.setBorder(newEmptyBorder(10,10,10,10));
lblPanel.add(lbl);
showFrame.add(lblPanel,BorderLayout.NORTH);
sp.setBorder(newEmptyBorder(10,10,10,10));
showFrame.add(sp,BorderLayout.SOUTH);
showFrame.pack();
showFrame.setVisible(true);
showFrame.setLocationRelativeTo(null);
showFrame.setDefaultCloseOperation(JFrame.DISPOSE
_ON_CLOSE);
}elseif(e.getSource()== searchButton){
output.setText("");
String resultText ="Search Results: n------------n";
String searchInput = searchField.getText();
resultText += game.searchGame(searchInput);
output.setText(resultText);
}elseif(e.getSource()== sortButton){
output.setText("");
String sortInput = sList.getSelectedItem().toString();
String resultText = game.printSortedElements(sortInput);
output.setText(resultText);
}
}
publicstaticvoid main(String[] args){
Main p =newMain("New Game");
}
}
src/Party.javasrc/Party.javaimport java.util.ArrayList;
publicclassPartyextendsCave{
publicString location;
publicArrayList<Creature> creatures =newArrayList<Creature>
();
/***
* Constructor
* @param index
* @param name
*/
publicParty(int index,String name){
super(index, name);
}
/***
*
* @param c
*/
publicvoid addCreature(Creature c){
if(c !=null&& c instanceofCreature){
this.creatures.add(c);
}
}
@Override
publicString toString(){
String output ="";
output +="Party: nName = "+this.name +" nIndex = "
+Integer.toString(this.index);
output +="n---------Member Creatures---------n";
for(Creature c :this.creatures)
output +="nt"+ c.toString();
output +="n----------------------------------n";
return output;
}
}
src/Treasure.javasrc/Treasure.java
classTreasureextendsCave{
publicint creatureIndex =0;
publicdouble weight;
publicdouble value;
/***
* Constructor
* @param index
* @param type
* @param creatureIndex
* @param weight
* @param value
*/
publicTreasure(int index,String type,int creatureIndex,double w
eight,double value){
super(type, index);
this.creatureIndex = creatureIndex;
this.weight = weight;
this.value = value;
}
@Override
publicString toString(){
return"[Treasure]: ntType = "+this.type +" ntOwner Index =
"+Integer.toString(this.creatureIndex)+" ntWeight = "+Double.
toString(this.weight)+" ntValue = "+Double.toString(this.valu
e);
}
}
src/TreasureComp.javasrc/TreasureComp.javaimport java.util.C
omparator;
publicclassTreasureCompimplementsComparator<Treasure>{
privateString attribute;
publicTreasureComp(String attribute){
// set the member variable for the attribute we will sort by
this.attribute = attribute;
}
@Override
publicint compare(Treasure t1,Treasure t2){
int result =-1;
// a switch statement for the member variable to handle multiple
// criteria in a single class
switch(attribute.charAt(0)){
case'w':
if(t1.weight == t2.weight){
result =0;
}elseif(t1.weight > t2.weight){
result =1;
}else{
result =-1;
}
break;
case'v':
if(t1.value == t2.value){
result =0;
}elseif(t1.value > t2.value){
result =1;
}else{
result =-1;
}
break;
default:
if(t1.value == t2.value){
result =0;
}elseif(t1.value > t2.value){
result =1;
}else{
result =-1;
}
break;
}
return result;
}
}
aSPaa.txt
// File: aSPaa.txt
// Data file for SeaPort projects
// Date: Sat Jul 09 22:51:16 EDT 2016
// parameters: 1 1 5 5 1 5
// ports, docks, pships, cships, jobs, persons
// port name index parent(null)
// port <string> <int> <int>
port Lanshan 10000 0
// dock name index parent(port)
// dock <string> <int> <int>
dock Pier_4 20004 10000 30004
dock Pier_0 20000 10000 30000
dock Pier_1 20001 10000 30001
dock Pier_3 20003 10000 30003
dock Pier_2 20002 10000 30002
// pship name index parent(dock/port) weight length width draft
numPassengers numRooms numOccupied
// pship <string> <int> <int> <double> <double> <double>
<double> <int> <int> <int>
pship Gallinules 30000 20000 125.99 234.70 60.67
37.14 746 246 246
pship Remora 30001 20001 126.38 358.27 74.12
31.54 3768 979 979
pship Absentmindedness 30004 20004 86.74 450.43 33.13
41.67 2143 920 920
pship Preanesthetic 30003 20003 149.85 483.92 125.71
31.21 166 409 83
pship Shoetrees 30002 20002 134.41 156.96 120.31
35.20 1673 633 633
// cship name index parent(dock/port) weight length width draft
cargoWeight cargoVolume cargoValue
// cship <string> <int> <int> <double> <double> <double>
<double> <double> <double> <double>
cship Erosional 40001 10000 200.80 242.33 38.31
23.49 172.73 188.54 235.57
cship Kielbasas 40000 10000 120.85 362.55 96.82
19.09 33.08 188.31 261.57
cship Generics 40002 10000 79.90 234.26 73.18
15.71 125.27 179.00 729.95
cship Barcelona 40003 10000 219.92 443.54 104.44
34.16 86.69 139.89 813.72
cship Toluene 40004 10000 189.12 448.99 73.97
37.67 88.90 175.03 1002.63
// person name index parent skill
// person <string> <int> <int> <string>
person Sara 50000 10000 electrician
person Duane 50002 10000 inspector
person Betsy 50004 10000 cleaner
person Archie 50003 10000 captain
person Thomas 50001 10000 clerk
aSPab.txt
// File: aSPab.txt
// Data file for SeaPort projects
// Date: Sat Jul 09 17:59:17 EDT 2016
// port name index parent(null)
// port <string> <int> <int>
port Xiangtan 10003 0
port Port_Des_Galets 10001 0
port Wuchun 10004 0
port Majunga 10002 0
port Bangpakong 10000 0
// dock name index parent(port)
// dock <string> <int> <int>
dock Pier_30 20030 10003 40048
dock Pier_24 20024 10003 30017
dock Pier_21 20021 10002 30014
dock Pier_31 20031 10003 40049
dock Pier_9 20009 10001 30008
dock Pier_27 20027 10003 40045
dock Pier_3 20003 10000 30003
dock Pier_33 20033 10004 30021
dock Pier_10 20010 10001 30009
dock Pier_26 20026 10003 30019
dock Pier_1 20001 10000 30001
dock Pier_8 20008 10001 30007
dock Pier_5 20005 10000 40000
dock Pier_20 20020 10002 30013
dock Pier_23 20023 10003 30016
dock Pier_35 20035 10004 30023
dock Pier_13 20013 10001 40017
dock Pier_16 20016 10001 40020
dock Pier_17 20017 10002 30010
dock Pier_32 20032 10004 30020
dock Pier_11 20011 10001 40015
dock Pier_0 20000 10000 30000
dock Pier_2 20002 10000 30002
dock Pier_19 20019 10002 30012
dock Pier_4 20004 10000 30004
dock Pier_18 20018 10002 30011
dock Pier_36 20036 10004 30024
dock Pier_22 20022 10003 30015
dock Pier_25 20025 10003 30018
dock Pier_37 20037 10004 40060
dock Pier_14 20014 10001 40018
dock Pier_29 20029 10003 40047
dock Pier_12 20012 10001 40016
dock Pier_7 20007 10001 30006
dock Pier_28 20028 10003 40046
dock Pier_15 20015 10001 40019
dock Pier_34 20034 10004 30022
dock Pier_6 20006 10001 30005
// cship name index parent(dock/port) weight length width draft
cargoWeight cargoVolume cargoValue
// cship <string> <int> <int> <double> <double> <double>
<double> <double> <double> <double>
pship Shinto 30014 20021 172.82 233.60 106.32
25.42 1492 496 496
pship Poached 30021 20033 96.01 476.75 127.37
23.03 1247 607 607
pship Forbode 30012 20019 57.35 293.08 35.84
33.74 2608 1095 1095
pship Odorant 30024 20036 110.51 185.17 104.05
38.08 710 1030 355
pship Aspheric 30001 20001 232.37 340.63 100.13
16.05 41 723 20
pship Jollity 30020 20032 83.65 285.79 71.84 35.81
3639 949 949
pship Roundly 30005 20006 79.15 400.46 72.59
18.89 1937 532 532
pship Hooky 30013 20020 147.50 287.46 107.15
27.13 1148 827 574
pship Historians 30018 20025 137.12 191.31 100.04
41.54 143 165 71
pship Subdividing 30011 20018 240.08 154.54 94.33
26.29 2044 1068 1022
pship Fussbudgets 30007 20008 234.99 109.73 100.95
38.73 1136 323 323
pship Loathsomely 30010 20017 228.47 150.54 80.27
42.15 782 256 256
pship Metricizes 30022 20034 90.84 178.97 102.97
38.96 1361 579 579
pship Populism 30004 20004 218.81 475.55 72.64
44.56 1014 765 507
pship Cracking 30002 20002 86.41 457.78 63.99
34.70 2198 625 625
pship Paradoxical 30023 20035 222.98 492.00 102.26
18.35 1443 691 691
pship Nonsporting 30008 20009 249.37 191.65 81.57
32.63 2138 578 578
pship Shoemaker 30015 20022 142.37 294.62 97.04
15.80 83 107 41
pship Patchiness 30000 20000 137.89 377.48 95.21
35.45 1499 725 725
pship Recliners 30003 20003 226.17 497.52 50.87
31.20 215 150 107
pship Percept 30019 20026 80.12 388.34 100.06
24.74 219 201 109
pship Isomers 30009 20010 158.08 206.87 40.90
15.24 49 342 24
pship Roiling 30006 20007 191.77 213.50 58.31
43.16 1402 917 701
pship Nattily 30016 20023 102.97 204.58 92.56
32.71 531 615 265
pship Propagator 30017 20024 160.79 236.34 46.87
40.39 869 292 292
// pship name index parent(dock/port) weight length width draft
numPassengers numRooms numOccupied
// pship <string> <int> <int> <double> <double> <double>
<double> <int> <int> <int>
cship Untimelier 40017 20013 175.16 300.33 49.89
26.39 35.66 187.27 70.85
cship Cryogens 40067 10004 150.34 138.39 60.20
44.05 67.98 153.38 395.82
cship Fatherless 40049 20031 234.99 395.50 35.12
19.90 183.08 189.54 237.54
cship Asps 40038 10002 71.83 191.71 98.96 31.17
100.02 125.43 811.41
cship Retrofiring 40023 10001 155.86 367.87 40.97
24.23 169.00 187.23 636.90
cship Nodus 40053 10003 202.97 152.40 105.13
22.19 69.52 183.73 945.90
cship Sheaths 40058 10003 177.57 289.14 105.60
19.86 205.22 146.13 866.06
cship Bilberry 40001 10000 153.28 219.77 81.86
40.59 88.39 117.32 795.56
cship Tractional 40056 10003 140.33 156.87 46.12
27.35 101.61 195.72 830.93
cship Precariousness 40040 10002 72.25 140.57 121.65
43.52 125.30 187.16 688.78
cship Cognati 40041 10002 189.25 383.64 101.62
22.28 69.94 153.94 179.96
cship Clips 40027 10001 60.77 130.85 68.69 18.10
97.85 123.80 177.95
cship Preappointing 40021 10001 148.67 198.61 41.04
31.90 95.85 174.97 617.61
cship Varlets 40060 20037 203.82 310.63 102.49
26.93 200.79 101.79 844.02
cship Stethoscopically 40032 10002 68.80 269.60 126.76
21.21 146.92 106.31 101.34
cship Hyaenas 40013 10000 229.90 276.48 120.61
42.91 171.73 175.26 459.76
cship Boxiest 40068 10004 110.66 346.47 80.98
22.70 148.88 109.67 873.68
cship Anteroom 40008 10000 244.76 491.56 103.88
31.70 68.64 179.50 497.56
cship Taxing 40016 20012 61.92 300.87 97.35
33.67 110.18 116.20 160.69
cship Prouder 40006 10000 114.63 170.63 85.71
37.50 191.29 176.61 908.68
cship Mishear 40050 10003 182.89 288.74 31.23
30.61 192.55 133.99 700.92
cship Lifted 40074 10004 236.94 140.15 34.50
27.18 172.86 159.53 141.12
cship Bartizans 40024 10001 132.65 252.35 127.95
42.16 163.46 188.28 788.73
cship Sesterces 40054 10003 218.64 324.08 116.30
39.06 67.63 125.01 169.19
cship Filterers 40029 10001 129.83 345.14 50.99
38.79 100.30 136.79 585.19
cship Discording 40061 10004 130.52 256.10 56.28
42.84 154.75 125.88 474.02
cship Dayside 40018 20014 238.47 135.06 55.36
39.71 88.34 141.47 363.42
cship Pecky 40014 10000 81.46 122.90 42.00 19.09
86.26 183.02 552.96
cship Derm 40051 10003 58.30 159.98 55.98
34.72 175.37 122.11 200.11
cship Uprears 40002 10000 181.45 266.47 77.75
16.52 76.28 145.33 881.34
cship Revolters 40003 10000 121.94 480.01 119.33
41.24 50.76 193.72 383.52
cship Brazed 40037 10002 246.05 358.28 52.73
23.19 203.08 116.64 595.87
cship Eroticism 40045 20027 104.76 448.89 122.55
25.63 121.42 160.48 987.28
cship Swale 40025 10001 241.79 300.10 113.13
35.06 21.51 160.49 556.49
cship Feedbacks 40043 10002 220.27 103.16 121.23
36.69 47.04 109.18 963.42
cship Lynxes 40057 10003 235.58 205.57 122.20
34.94 117.05 158.97 768.05
cship Squatly 40070 10004 141.18 235.01 89.58
33.06 27.59 151.54 919.71
cship Moronism 40042 10002 87.92 454.21 123.44
35.94 209.25 179.98 104.82
cship Holocene 40069 10004 209.23 182.71 54.44
24.59 176.83 117.74 737.08
cship Feoffment 40028 10001 166.65 256.59 76.30
32.33 131.11 104.63 454.46
cship Tortilla 40066 10004 195.04 108.17 121.38
20.25 184.28 105.29 132.02
cship Undercarriage 40036 10002 147.48 499.22 103.11
25.96 68.73 184.87 168.32
cship Subservience 40010 10000 106.55 316.13 120.34
30.66 57.02 116.13 595.85
cship Pliers 40019 20015 213.43 300.64 65.51
44.50 146.09 166.07 498.48
cship Tiaraed 40026 10001 80.18 413.97 123.25
31.98 160.58 121.93 783.37
cship Machinizing 40064 10004 216.47 207.94 127.61
42.77 97.84 157.77 142.07
cship Tressiest 40052 10003 97.92 134.79 110.75
23.83 138.98 162.35 340.96
cship Vortices 40055 10003 194.15 260.90 77.63
38.98 40.78 184.43 459.07
cship Laughable 40046 20028 138.53 145.07 95.50
28.39 166.46 124.21 450.20
cship Dime 40031 10002 224.94 164.63 119.22
37.82 167.53 197.08 634.05
cship Vindicator 40004 10000 132.61 149.09 39.44
37.08 43.57 127.75 141.77
cship Synchrony 40072 10004 216.91 437.29 44.17
23.67 139.66 181.35 629.33
cship Rooms 40059 10003 108.85 153.64 33.58
30.79 119.77 117.49 745.19
cship Nonconclusive 40000 20005 203.79 366.04 75.95
44.06 102.74 191.87 259.46
cship Memorializes 40073 10004 125.11 148.86 124.55
22.83 194.08 112.93 328.14
cship Lateraled 40030 10002 120.10 324.08 54.11
19.76 174.51 139.29 500.00
cship Euphony 40005 10000 80.48 222.75 84.59
43.25 165.39 154.42 939.24
cship Unscrambled 40034 10002 200.20 237.23 117.57
41.69 140.60 165.83 878.67
cship Octopod 40047 20029 198.58 269.20 110.53
37.27 160.77 164.50 326.84
cship Donatives 40044 10002 196.91 288.27 121.27
39.34 154.01 149.14 538.88
cship Enlightening 40009 10000 99.27 267.58 86.55
34.86 28.14 157.02 397.52
cship Ceaselessly 40007 10000 190.73 422.70 82.96
43.82 198.18 173.31 586.02
cship Flushness 40020 20016 56.34 217.46 70.43
38.97 169.32 181.80 826.45
cship Shipments 40012 10000 54.18 189.42 81.00
23.63 154.16 109.70 385.78
cship Fairer 40063 10004 247.31 271.94 117.28
19.43 78.09 171.60 507.42
cship Suppers 40015 20011 83.72 278.40 103.67
44.59 44.76 107.10 574.81
cship Crocus 40011 10000 128.89 450.39 124.86
33.71 124.63 188.38 966.38
cship Rift 40062 10004 174.52 272.51 107.22
36.91 100.12 127.19 608.93
cship Wieldier 40022 10001 123.70 446.72 56.99
34.17 141.05 198.03 117.15
cship Nonzero 40033 10002 51.73 208.25 87.22
39.93 185.70 190.90 550.27
cship Repacked 40039 10002 209.01 160.09 74.09
29.42 219.33 180.03 615.80
cship Miscarrying 40048 20030 79.23 163.62 31.78
29.93 186.27 162.43 774.06
cship Commonalities 40071 10004 114.67 166.80 41.67
18.81 214.12 112.13 862.16
cship Epicures 40065 10004 120.66 379.77 42.94
27.71 36.74 111.39 41.66
cship Fencible 40035 10002 108.87 390.89 107.91
16.60 125.25 114.04 876.69
// person name index parent skill
// person <string> <int> <int> <string>
person Suzanne 50010 10001 electrician
person Antonia 50004 10000 cleaner
person Lindsay 50000 10000 driver
person Phillip 50026 10003 electrician
person Raymond 50028 10003 engineer
person Melissa 50008 10001 inspector
person Roosevelt 50035 10004 stevedore
person Jaime 50001 10000 stevedore
person Lee 50030 10003 crew
person Rene 50011 10001 driver
person Jesus 50015 10002 craneOperator
person Manuel 50016 10002 inspector
person Floyd 50021 10002 clerk
person Wilson 50022 10003 driver
person Devin 50031 10003 painter
person Robert 50029 10003 captain
person Dexter 50019 10002 clerk
person Phil 50032 10004 inspector
person Ruby 50025 10003 cleaner
person Louis 50012 10001 driver
person Lena 50038 10004 cleaner
person Manuel 50003 10000 stevedore
person Josefina 50006 10000 electrician
person Van 50013 10001 mate
person Marc 50018 10002 painter
person Terrell 50007 10000 craneOperator
person Latoya 50037 10004 driver
person Eileen 50023 10003 driver
person Kirk 50040 10004 craneOperator
person Jeremy 50020 10002 carpenter
person Marianne 50005 10000 mate
person Sonya 50002 10000 crew
person Alma 50027 10003 driver
person Gregg 50039 10004 inspector
person Maxine 50033 10004 engineer
person Jorge 50034 10004 clerk
person Gerald 50017 10002 driver
person Jared 50036 10004 cleaner
person Debbie 50014 10001 crew
person Rosemary 50009 10001 painter
person Betty 50041 10004 crew
person Lula 50024 10003 stevedore
// job name index parent duration [skill]+ (one or more,
matches skill in person, may repeat)
// job <string> <int> <int> <double> [<string>]+
job Job_43_28_99 60017 20008 115.45 crew
job Job_21_18_37 60048 20025 28.96 driver mate
captain
job Job_85_12_67 60010 20006 112.40 captain engineer
job Job_93_75_37 60045 20024 113.93 painter
mechanic mate
job Job_15_12_79 60004 20002 52.23 captain
job Job_48_66_14 60050 20026 91.29 janitor painter
job Job_72_14_91 60026 20014 36.48 mechanic cleaner
engineer
job Job_23_72_11 60028 20016 119.37 painter
job Job_69_84_69 60022 20011 73.06
job Job_62_54_25 60039 20020 78.45 electrician
inspector inspector
job Job_17_16_45 60053 20028 101.28 janitor
job Job_64_37_30 60060 20030 32.83 cleaner
job Job_70_22_33 60016 20008 59.33 captain janitor
job Job_87_43_30 60018 20008 54.70
job Job_97_89_59 60040 20020 78.76 driver carpenter
clerk
job Job_54_59_44 60058 20029 33.94
job Job_34_51_24 60012 20007 56.78 craneOperator
job Job_25_22_42 60027 20015 90.27 mate
job Job_83_52_34 60020 20011 104.73 craneOperator
janitor mate
job Job_24_45_53 60006 20005 43.24
job Job_18_60_58 60041 20022 59.21 stevedore
stevedore mechanic
job Job_56_71_54 60002 20000 94.05 captain mechanic
job Job_94_61_26 60052 20027 102.05
job Job_28_37_44 60025 20013 62.07 electrician
stevedore electrician mate
job Job_44_97_43 60047 20025 76.59 inspector
job Job_52_37_12 60034 20018 72.25 stevedore driver
electrician
job Job_12_98_61 60029 20016 103.52 captain mate
job Job_57_78_17 60031 20017 46.86 janitor
job Job_72_45_87 60030 20017 32.27
job Job_39_82_51 60007 20005 42.08 craneOperator
job Job_23_28_28 60063 20032 40.68 cleaner
job Job_95_16_31 60009 20006 33.95 crew electrician
job Job_95_93_46 60042 20022 98.93 cleaner
job Job_93_67_29 60054 20028 84.01 carpenter
job Job_63_27_49 60001 20000 67.52 mate
craneOperator janitor
job Job_36_58_47 60037 20019 45.17
job Job_87_24_74 60038 20020 82.15 janitor
job Job_35_38_99 60062 20031 39.87 electrician
captain painter
job Job_22_49_79 60023 20012 58.51 mate inspector
job Job_25_18_27 60035 20018 83.68 carpenter
job Job_43_23_55 60000 20000 63.98 painter
job Job_58_74_44 60049 20026 106.57 clerk
job Job_41_82_87 60021 20011 41.30 captain
electrician
job Job_73_37_28 60043 20023 59.33 clerk driver
stevedore mechanic
job Job_15_75_22 60003 20001 77.07 painter
job Job_31_99_72 60011 20007 56.21 crew mate
cleaner
job Job_46_47_77 60005 20004 34.36 craneOperator
captain
job Job_45_20_77 60056 20029 92.04 mechanic
mechanic painter
job Job_84_13_54 60055 20028 30.22
job Job_65_72_80 60051 20027 109.26 cleaner clerk
job Job_14_16_95 60046 20024 86.05 cleaner
job Job_45_69_80 60008 20006 20.47 electrician
electrician craneOperator
job Job_85_35_39 60057 20029 20.14 painter
job Job_84_47_18 60064 20033 53.13 stevedore
job Job_49_35_30 60036 20018 86.21 painter
job Job_99_96_22 60066 20035 114.08 mate cleaner
driver
job Job_59_13_44 60033 20018 106.98 captain mate
job Job_75_34_93 60019 20009 102.65 captain
job Job_13_46_55 60059 20030 52.58 mate
job Job_65_83_46 60065 20035 22.44
job Job_95_63_43 60014 20007 92.76
job Job_62_68_53 60061 20031 62.92 mate captain
stevedore
job Job_50_56_48 60013 20007 103.32 clerk captain
job Job_55_21_13 60015 20008 81.95 mate
job Job_82_30_38 60044 20023 79.63 engineer
job Job_97_28_54 60024 20013 32.49 captain
job Job_38_17_58 60032 20017 50.67 engineer painter
aSPac.txt
// File: aSPac.txt
// Data file for SeaPort projects
// Date: Sat Jul 09 23:09:04 EDT 2016
// parameters: 8 15 20 20 5 30
// ports, docks, pships, cships, jobs, persons
// port name index parent(null)
// port <string> <int> <int>
port An_Ping 10004 0
port Chimbote 10006 0
port Norfolk 10007 0
port Damietta 10002 0
port Cologne 10000 0
port Athens 10003 0
port Lubljana 10001 0
port Santiago 10005 0
// dock name index parent(port)
// dock <string> <int> <int>
dock Pier_80 20080 10006 30121
dock Pier_69 20069 10004 30091
dock Pier_58 20058 10004 30080
dock Pier_44 20044 10003 30063
dock Pier_34 20034 10002 30052
dock Pier_21 20021 10001 30025
dock Pier_32 20032 10002 30050
dock Pier_51 20051 10003 30070
dock Pier_87 20087 10006 30128
dock Pier_60 20060 10004 30082
dock Pier_91 20091 10007 30140
dock Pier_81 20081 10006 30122
dock Pier_31 20031 10002 30049
dock Pier_40 20040 10002 30058
dock Pier_73 20073 10005 30103
dock Pier_41 20041 10003 30060
dock Pier_45 20045 10003 30064
dock Pier_17 20017 10001 30021
dock Pier_18 20018 10001 30022
dock Pier_6 20006 10000 30006
dock Pier_64 20064 10004 30086
dock Pier_97 20097 10007 30146
dock Pier_11 20011 10000 30011
dock Pier_56 20056 10003 30075
dock Pier_93 20093 10007 30142
dock Pier_33 20033 10002 30051
dock Pier_12 20012 10000 30012
dock Pier_67 20067 10004 30089
dock Pier_27 20027 10002 30045
dock Pier_8 20008 10000 30008
dock Pier_49 20049 10003 30068
dock Pier_2 20002 10000 30002
dock Pier_43 20043 10003 30062
dock Pier_95 20095 10007 30144
dock Pier_19 20019 10001 30023
dock Pier_42 20042 10003 30061
dock Pier_7 20007 10000 30007
dock Pier_38 20038 10002 30056
dock Pier_92 20092 10007 30141
dock Pier_57 20057 10003 30076
dock Pier_30 20030 10002 30048
dock Pier_99 20099 10007 30148
dock Pier_28 20028 10002 30046
dock Pier_26 20026 10002 30044
dock Pier_88 20088 10006 30129
dock Pier_3 20003 10000 30003
dock Pier_0 20000 10000 30000
dock Pier_79 20079 10006 30120
dock Pier_39 20039 10002 30057
dock Pier_10 20010 10000 30010
dock Pier_48 20048 10003 30067
dock Pier_1 20001 10000 30001
dock Pier_85 20085 10006 30126
dock Pier_82 20082 10006 30123
dock Pier_50 20050 10003 30069
dock Pier_74 20074 10005 30104
dock Pier_94 20094 10007 30143
dock Pier_61 20061 10004 30083
dock Pier_100 20100 10007 30149
dock Pier_84 20084 10006 30125
dock Pier_24 20024 10002 30042
dock Pier_23 20023 10002 30041
dock Pier_75 20075 10005 30105
dock Pier_15 20015 10000 30015
dock Pier_25 20025 10002 30043
dock Pier_63 20063 10004 30085
dock Pier_68 20068 10004 30090
dock Pier_98 20098 10007 30147
dock Pier_72 20072 10005 30102
dock Pier_46 20046 10003 30065
dock Pier_90 20090 10006 30131
dock Pier_86 20086 10006 30127
dock Pier_13 20013 10000 30013
dock Pier_66 20066 10004 30088
dock Pier_59 20059 10004 30081
dock Pier_52 20052 10003 30071
dock Pier_54 20054 10003 30073
dock Pier_83 20083 10006 30124
dock Pier_76 20076 10005 30106
dock Pier_22 20022 10002 30040
dock Pier_9 20009 10000 30009
dock Pier_70 20070 10005 30100
dock Pier_4 20004 10000 30004
dock Pier_47 20047 10003 30066
dock Pier_5 20005 10000 30005
dock Pier_16 20016 10001 30020
dock Pier_62 20062 10004 30084
dock Pier_53 20053 10003 30072
dock Pier_55 20055 10003 30074
dock Pier_78 20078 10005 30108
dock Pier_77 20077 10005 30107
dock Pier_20 20020 10001 30024
dock Pier_35 20035 10002 30053
dock Pier_36 20036 10002 30054
dock Pier_103 20103 10007 30152
dock Pier_104 20104 10007 30153
dock Pier_96 20096 10007 30145
dock Pier_14 20014 10000 30014
dock Pier_29 20029 10002 30047
dock Pier_71 20071 10005 30101
dock Pier_101 20101 10007 30150
dock Pier_37 20037 10002 30055
dock Pier_89 20089 10006 30130
dock Pier_102 20102 10007 30151
dock Pier_65 20065 10004 30087
// pship name index parent(dock/port) weight length width draft
numPassengers numRooms numOccupied
// pship <string> <int> <int> <double> <double> <double>
<double> <int> <int> <int>
pship Towability 30102 20072 105.33 137.77 69.88
23.82 266 107 107
pship Iterating 30125 20084 132.62 347.44 123.80
40.77 3654 1002 1002
pship Swindling 30019 10000 87.26 258.74 43.53
17.64 3069 805 805
pship Starrier 30034 10001 101.86 342.56 120.24
21.83 708 350 350
pship Dovetailing 30115 10005 173.45 187.98 37.91
34.75 33 1011 16
pship Entitlement 30012 20012 191.37 423.36 69.52
40.68 134 949 67
pship Ashen 30006 20006 81.96 451.08 98.07
21.39 2045 623 623
pship Copolymerization 30022 20018 189.97 336.02 83.62
30.50 131 515 65
pship Bloodsuckers 30088 20066 199.69 117.62 44.93
40.74 1307 374 374
pship Bladdery 30010 20010 164.92 118.58 86.82
34.35 156 762 78
pship Cyclamen 30055 20037 181.71 436.42 105.94
39.86 115 281 57
pship Remounting 30128 20087 62.01 395.54 34.52
41.85 2795 860 860
pship Byline 30053 20035 152.29 321.21 59.16
17.52 265 398 132
pship Stockinette 30004 20004 120.77 428.46 112.51
23.73 839 270 270
pship Indomitably 30035 10001 76.99 458.86 104.18
34.07 1826 689 689
pship Unitizes 30068 20049 52.07 176.80 60.76
24.28 1017 265 265
pship Retrievers 30130 20089 145.11 119.54 56.10
40.32 745 457 372
pship Watchmen 30096 10004 67.35 368.94 61.87
17.02 191 1010 95
pship Unlearned 30074 20055 222.87 467.25 110.83
20.08 2314 701 701
pship Confidently 30079 10003 213.14 409.82 99.99
37.18 2147 576 576
pship Cavie 30133 10006 158.79 132.04 61.34
20.15 2362 665 665
pship Tormentor 30114 10005 182.10 395.83 112.06
31.14 273 624 136
pship Holed 30155 10007 108.29 414.41 40.69
37.53 1184 346 346
pship Barbarousness 30075 20056 245.97 279.11 66.13
25.70 556 526 278
pship Intemperances 30116 10005 243.85 344.76 31.54
25.19 336 318 168
pship Kames 30062 20043 128.08 370.59 71.82
21.19 520 515 260
pship Sequences 30087 20065 233.98 423.67 76.22
17.22 1 194 0
pship Theory 30002 20002 55.50 238.06 127.47
17.18 1282 804 641
pship Encaged 30015 20015 95.54 414.98 95.74
15.38 1408 1014 704
pship Ashen 30056 20038 98.93 270.51 85.70
40.35 23 279 11
pship Cultivation 30107 20077 198.15 302.67 71.85
24.01 273 908 136
pship Prig 30154 10007 54.06 158.61 52.53 29.24
147 344 73
pship Deselected 30095 10004 103.56 320.89 99.49
16.04 265 825 132
pship Flayed 30032 10001 75.93 490.38 101.26
43.27 5 231 2
pship Dicots 30148 20099 219.18 147.81 120.55
24.94 1020 318 318
pship Reconciles 30153 20104 110.46 241.76 101.60
30.20 3597 1005 1005
pship Stubbles 30028 10001 84.03 443.37 48.25
41.02 2054 1016 1016
pship Riyal 30069 20050 213.35 400.13 66.20
17.68 2671 849 849
pship Interstices 30118 10005 87.82 104.84 60.47
42.44 2176 715 715
pship Reprobes 30111 10005 248.68 459.28 124.91
15.67 1562 915 781
pship Expellable 30156 10007 57.28 372.04 94.56
28.94 1202 377 377
pship Intelligently 30103 20073 170.77 229.38 120.70
42.05 295 524 147
pship Medials 30144 20095 248.62 167.62 35.28
29.76 9 128 4
pship Reminiscence 30124 20083 215.69 144.45 120.85
36.53 2968 825 825
pship Camellias 30078 10003 188.01 219.79 45.56
35.72 28 907 14
pship Alders 30044 20026 124.88 233.23 38.10
28.90 2707 928 928
pship Healthfully 30060 20041 116.80 326.46 72.31
40.26 1538 784 769
pship Toughies 30090 20068 54.12 469.62 98.59
30.95 2917 1086 1086
pship Lumper 30025 20021 84.61 372.77 80.15
37.56 562 461 281
pship Silly 30014 20014 139.08 182.19 49.16
42.92 189 191 94
pship Rulers 30132 10006 162.73 332.96 88.01
18.77 1748 790 790
pship Fowlings 30029 10001 115.08 482.29 115.58
27.40 570 218 218
pship Thermosetting 30099 10004 245.26 119.18 109.03
39.10 735 449 367
pship Commandment 30129 20088 86.97 392.80 79.22
31.85 2230 669 669
pship Bacchanalia 30058 20040 125.48 400.15 37.44
23.49 1011 512 505
pship Signers 30013 20013 74.56 234.47 80.29
35.88 1263 684 631
pship Pebbly 30054 20036 189.24 103.89 56.86
34.32 85 169 42
pship Keelage 30152 20103 160.32 210.58 107.65
19.41 463 662 231
pship Subnucleus 30064 20045 225.72 183.93 70.48
17.37 724 603 362
pship Evokes 30007 20007 170.71 294.44 68.83
15.23 1199 414 414
pship Hollo 30066 20047 153.01 233.90 71.07
28.76 1006 472 472
pship Mortal 30041 20023 217.95 110.60 106.44
34.59 206 352 103
pship Canner 30119 10005 225.56 207.87 41.90
37.64 159 863 79
pship Suturing 30033 10001 215.66 275.55 46.84
22.27 1101 688 550
pship Folksily 30039 10001 73.16 492.68 110.63
29.75 69 428 34
pship Gregariously 30145 20096 157.49 423.05 66.20
17.34 1427 503 503
pship Contrastingly 30105 20075 121.02 303.21 44.52
32.89 1514 659 659
pship Untrained 30100 20070 94.42 423.92 80.47
39.87 1779 817 817
pship Tarzans 30051 20033 123.80 300.23 64.39
36.97 2370 681 681
pship Bruises 30110 10005 108.38 124.07 106.15
24.13 196 348 98
pship Trotlines 30083 20061 177.33 170.58 100.99
31.30 734 218 218
pship Essays 30043 20025 55.14 337.31 124.64
32.95 2468 917 917
pship Unruled 30120 20079 111.96 294.37 102.28
18.37 1945 861 861
pship Qualm 30000 20000 218.93 162.68 98.04
26.04 471 170 170
pship Mechanotherapists 30141 20092 155.81 368.49 92.66
38.19 1036 760 518
pship Budgeting 30139 10006 110.19 287.23 128.26
26.96 3579 898 898
pship Fourths 30092 10004 150.74 329.05 129.54
41.23 99 328 49
pship Noggings 30108 20078 77.98 233.76 107.63
37.77 1615 783 783
pship Meddles 30106 20076 121.13 458.45 90.44
20.12 1607 462 462
pship Radiocaster 30112 10005 83.28 407.82 71.99
17.65 2737 934 934
pship Constancy 30136 10006 85.71 132.22 104.73
40.14 1215 874 607
pship Reception 30143 20094 88.51 410.02 32.95
44.59 1344 519 519
pship Castanets 30147 20098 220.16 288.44 63.67
32.47 17 346 8
pship Daggered 30126 20085 157.24 154.55 34.12
21.89 513 360 256
pship Taxidermist 30063 20044 67.77 108.68 118.78
29.94 502 741 251
pship Solitude 30159 10007 52.56 418.86 90.68
17.60 139 210 69
pship Festering 30065 20046 167.32 345.50 70.80
17.61 312 221 156
pship Cyclotrons 30026 10001 66.94 321.57 99.38
44.63 3246 996 996
pship Atonies 30061 20042 100.77 182.97 114.92
40.90 355 180 177
pship Workroom 30085 20063 213.03 332.46 50.92
42.31 1200 302 302
pship Candlepower 30057 20039 167.81 326.71 47.96
43.12 742 543 371
pship Nonplused 30117 10005 241.16 135.05 104.71
24.93 1874 523 523
pship Rhubarb 30121 20080 75.32 246.07 52.86
23.09 1302 707 651
pship Coaming 30135 10006 79.56 357.79 67.54
40.05 734 1033 367
pship Sedateness 30024 20020 215.41 492.42 111.21
17.38 2967 843 843
pship Chive 30049 20031 123.33 261.45 37.76
33.59 21 760 10
pship Morbid 30098 10004 182.52 266.96 48.25
18.93 2014 835 835
pship Peppertree 30113 10005 102.54 391.91 98.83
34.04 1734 566 566
pship Extemporizing 30018 10000 215.39 473.29 71.51
24.34 21 219 10
pship Illustratively 30070 20051 172.03 225.02 109.03
20.63 1191 430 430
pship Enabler 30042 20024 59.78 226.54 129.16
36.73 1811 521 521
pship Haitians 30123 20082 214.50 434.56 119.84
15.30 8 226 4
pship Armory 30027 10001 233.33 168.32 65.81
35.00 2269 892 892
pship Deranging 30094 10004 160.09 256.64 49.97
37.21 1730 453 453
pship Campaigner 30040 20022 166.03 137.88 105.19
39.14 1542 711 711
pship Weavers 30073 20054 242.95 273.00 86.72
40.65 802 403 401
pship Burnishes 30157 10007 118.79 276.47 33.47
36.79 272 368 136
pship Manilla 30059 10002 100.52 338.69 103.13
21.66 107 251 53
pship Manpack 30140 20091 52.83 155.67 97.40
22.99 461 1029 230
pship Smoothen 30011 20011 58.73 204.85 39.82
37.49 1335 493 493
pship Sheik 30003 20003 215.67 156.56 104.12
41.20 838 225 225
pship Pylons 30048 20030 224.61 420.58 100.79
28.58 517 429 258
pship Aggregational 30091 20069 78.19 459.01 122.90
43.01 1151 532 532
pship Crunches 30020 20016 74.37 251.51 99.23
38.86 393 500 196
pship Liber 30005 20005 205.19 259.57 68.22
42.28 156 343 78
pship Quintillions 30016 10000 164.24 384.74 53.75
40.62 2480 792 792
pship Cliffhanging 30001 20001 176.65 235.63 88.42
36.75 1352 521 521
pship Pancake 30081 20059 152.66 261.76 67.55
24.97 1730 668 668
pship Snorkel 30086 20064 198.57 262.61 62.23
26.60 2139 569 569
pship Schoolchild 30150 20101 145.17 399.83 102.54
26.93 1092 432 432
pship Vengeant 30077 10003 205.13 176.74 40.74
31.91 1140 344 344
pship Gusts 30072 20053 69.94 412.61 42.10 27.47
282 140 140
pship Aimlessly 30030 10001 77.03 386.43 39.39
29.43 1562 672 672
pship Forsake 30080 20058 209.99 140.43 90.69
37.70 439 298 219
pship Oldies 30008 20008 105.04 198.91 47.38
25.74 3527 1075 1075
pship Interjectory 30134 10006 109.88 299.81 89.32
16.60 919 1061 459
pship Emotionally 30131 20090 97.26 425.26 68.65
27.87 1879 897 897
pship Squalider 30151 20102 240.16 438.67 78.70
43.36 1103 1067 551
pship Personation 30084 20062 200.88 113.48 65.65
21.21 1238 421 421
pship Misjudgment 30023 20019 238.54 397.65 90.29
24.62 336 466 168
pship Underemphasize 30009 20009 103.53 494.87 69.60
30.75 964 554 482
pship Motif 30038 10001 120.84 257.97 47.74
28.91 3231 921 921
pship Pessimism 30142 20093 90.63 186.06 43.90
35.06 1188 304 304
pship Inlander 30050 20032 160.28 269.11 125.18
18.61 2109 577 577
pship Stagger 30109 10005 169.02 303.90 113.20
25.88 261 159 130
pship Pomading 30031 10001 66.09 116.17 52.19
19.63 1086 863 543
pship Penance 30122 20081 240.49 161.20 118.51
30.13 473 140 140
pship Grotesquely 30071 20052 141.60 108.82 46.77
19.56 340 166 166
pship Pinprick 30138 10006 131.59 395.94 99.51
18.35 963 476 476
pship Seamers 30097 10004 240.95 463.75 58.84
33.82 1904 608 608
pship Unsurpassed 30149 20100 230.52 434.26 93.39
38.05 1002 504 501
pship Involutions 30046 20028 52.02 318.52 60.60
32.39 2702 1018 1018
pship Seemings 30127 20086 116.73 267.16 44.34
32.36 1989 573 573
pship Alleviates 30036 10001 167.11 129.57 43.53
27.30 1494 1021 747
pship Cutlets 30158 10007 141.52 441.40 47.59
22.24 441 522 220
pship Afresh 30082 20060 233.90 292.16 88.33
15.39 3389 1056 1056
pship Oscillometer 30137 10006 237.47 127.46 123.48
40.32 20 1057 10
pship Fetlock 30045 20027 159.57 474.64 118.81
35.43 623 256 256
pship Coleus 30021 20017 123.86 243.59 108.00
43.10 5 261 2
pship Scarletina 30052 20034 156.42 403.66 52.70
44.67 1385 509 509
pship Blowjob 30146 20097 191.66 405.45 75.11
15.47 960 520 480
pship Sequent 30104 20074 51.99 125.64 43.96
16.76 2336 923 923
pship Leasts 30037 10001 229.86 270.52 58.91
38.66 944 955 472
pship Burnish 30101 20071 117.53 476.99 95.46
15.50 108 138 54
pship Smote 30067 20048 54.31 300.21 53.03
18.32 632 776 316
pship Obliquely 30076 20057 203.70 426.56 112.10
19.55 1021 416 416
pship Macaronies 30047 20029 225.93 257.99 123.69
22.81 640 384 320
pship Chert 30089 20067 127.21 184.44 61.13
37.69 951 252 252
pship Alfresco 30017 10000 107.54 246.92 91.67
22.20 1128 649 564
pship Miniskirted 30093 10004 201.46 482.83 58.24
16.95 899 692 449
// cship name index parent(dock/port) weight length width draft
cargoWeight cargoVolume cargoValue
// cship <string> <int> <int> <double> <double> <double>
<double> <double> <double> <double>
cship Eastwardly 40097 10004 149.44 483.47 66.30
38.13 132.15 126.72 673.44
cship Isomerize 40114 10005 111.30 398.53 31.40
26.13 206.26 162.84 762.96
cship Gibbousness 40068 10003 123.74 323.98 68.44
21.95 109.69 174.66 483.87
cship Flit 40143 10007 233.10 248.65 83.84 32.41
202.84 197.46 610.49
cship Participatory 40030 10001 198.75 455.34 83.72
30.92 143.11 123.53 429.95
cship Lashed 40013 10000 151.58 144.00 78.86
26.39 121.27 128.62 943.32
cship Pasturer 40070 10003 211.41 311.36 118.39
38.45 200.23 118.95 416.05
cship Orangeade 40118 10005 54.54 446.35 112.80
26.95 42.23 147.42 385.05
cship Expressionist 40051 10002 57.52 268.94 89.14
42.21 78.27 170.91 470.86
cship Dc 40135 10006 153.38 303.64 117.15
22.13 42.45 160.51 562.42
cship Canonizing 40061 10003 221.36 121.28 113.97
41.15 47.94 195.07 111.93
cship Brutalized 40069 10003 58.70 459.76 41.81
18.49 116.38 113.42 465.14
cship Smooth 40085 10004 157.50 231.02 86.82
26.67 191.99 176.33 417.05
cship Arrays 40112 10005 157.83 281.52 111.50
18.41 44.56 127.20 976.34
cship Starfishes 40074 10003 149.41 179.95 54.72
15.74 111.66 116.33 734.97
cship Rorschach 40123 10006 202.01 392.32 101.59
25.94 136.22 172.95 419.74
cship Caddises 40024 10001 169.91 323.94 124.32
41.70 178.64 114.89 19.52
cship Meteoroid 40080 10004 171.11 448.30 126.73
24.28 113.54 107.51 603.39
cship Dermatitises 40053 10002 238.49 436.40 66.08
39.57 141.83 169.64 982.33
cship Literature 40008 10000 241.61 356.11 93.60
32.27 85.63 159.39 779.37
cship Excusers 40011 10000 86.61 176.54 104.47
36.34 86.45 154.18 798.86
cship Sisters 40045 10002 166.84 141.08 43.89
18.72 24.66 101.42 560.68
cship Rituals 40056 10002 204.73 265.84 43.90
17.82 90.03 116.50 777.63
cship Demitted 40029 10001 122.24 484.44 123.73
38.95 25.63 151.63 762.70
cship Deductively 40132 10006 215.99 255.18 111.64
16.75 95.39 102.45 477.36
cship Affectedness 40005 10000 64.76 255.28 117.17
40.15 155.46 120.54 666.74
cship Acumens 40096 10004 80.88 461.38 116.29
36.03 198.11 160.80 950.69
cship Antepenults 40019 10000 205.03 197.65 66.55
20.15 161.95 191.39 725.26
cship Biotics 40007 10000 233.79 214.96 81.25
19.66 157.80 103.89 953.48
cship Cumshaw 40099 10004 183.70 256.50 118.46
28.51 217.87 107.99 406.34
cship Rec 40023 10001 105.99 272.75 48.03
25.08 186.51 111.85 787.44
cship Fleshers 40138 10006 225.31 332.45 64.65
32.83 199.81 104.38 101.76
cship Provoke 40038 10001 84.96 212.80 114.89
32.42 44.43 124.67 874.05
cship Compatibles 40033 10001 60.90 351.78 56.01
23.59 196.42 192.30 765.41
cship Venter 40047 10002 247.45 117.23 72.19
32.55 60.65 169.25 26.72
cship Balsas 40062 10003 214.02 332.10 81.04
41.02 45.06 137.52 615.02
cship Sometime 40107 10005 83.45 160.66 78.35
30.42 155.50 119.66 554.80
cship Endings 40109 10005 213.64 247.16 34.68
28.71 37.24 175.58 57.44
cship Fogginess 40075 10003 61.59 351.37 76.73
35.96 189.00 156.66 833.10
cship Valuable 40137 10006 140.38 402.79 49.90
22.91 202.95 187.09 807.83
cship Titivates 40048 10002 125.45 171.27 126.36
42.59 141.51 182.66 834.82
cship Gemologist 40144 10007 200.95 469.82 77.40
38.30 136.01 153.04 324.93
cship Housekeeping 40004 10000 113.13 312.58 98.75
31.69 122.35 185.83 673.60
cship Azide 40037 10001 195.21 364.61 100.49
15.91 183.11 128.98 248.89
cship Exonerations 40108 10005 111.08 142.52 60.77
20.48 198.25 133.89 625.94
cship Discase 40067 10003 106.38 216.31 101.21
42.50 214.32 199.02 27.00
cship Brainpan 40093 10004 68.99 395.78 85.33
26.60 150.29 140.52 842.24
cship Enthrallingly 40083 10004 244.07 137.51 111.54
39.15 130.57 157.93 754.75
cship Blowhole 40151 10007 200.52 243.51 79.63
44.35 147.37 103.66 778.29
cship Rearrest 40063 10003 60.61 327.76 104.83
40.10 209.63 175.05 908.43
cship Yesteryears 40079 10003 142.03 131.74 30.32
42.85 201.31 123.71 929.58
cship Laudation 40146 10007 52.44 366.24 73.60
43.76 186.30 168.75 943.28
cship Subdistricts 40145 10007 160.74 338.10 93.20
19.50 82.35 187.71 138.31
cship Iniquitous 40141 10007 206.92 120.75 94.27
18.98 28.97 130.63 848.03
cship Faultfinder 40158 10007 204.71 250.50 125.01
29.44 84.55 193.77 663.33
cship Contrite 40117 10005 97.50 246.35 32.73
27.08 64.63 147.94 333.55
cship Baffling 40089 10004 181.81 361.52 57.05
25.26 68.98 171.42 952.34
cship Gasps 40094 10004 216.06 479.13 65.59
29.55 78.01 194.73 734.76
cship Nutritively 40065 10003 113.50 215.47 56.68
30.56 59.51 114.08 116.57
cship Xerographic 40103 10005 124.39 392.52 47.69
15.82 93.51 184.02 908.33
cship Zippiest 40027 10001 139.43 132.74 79.25
19.13 71.33 100.40 249.44
cship Ambrosial 40156 10007 160.97 324.89 33.35
16.62 124.47 117.74 944.95
cship Lahore 40003 10000 178.07 153.02 73.11
24.04 166.32 167.34 953.65
cship Readier 40147 10007 169.86 169.51 127.20
19.33 164.25 148.22 675.77
cship Narrates 40050 10002 146.73 304.97 61.18
32.56 156.50 181.52 253.15
cship Insignias 40046 10002 182.96 389.01 56.96
28.96 216.34 108.08 20.34
cship Descrying 40121 10006 147.07 335.65 72.52
39.63 186.82 126.60 387.30
cship Reporter 40076 10003 183.38 313.30 43.69
39.22 98.43 152.17 62.25
cship Dissonantly 40002 10000 82.22 359.99 99.82
32.90 110.89 115.19 855.22
cship Coshered 40101 10005 179.79 315.85 71.98
33.02 181.14 159.38 158.47
cship Allergens 40035 10001 80.32 475.46 32.02
20.25 110.42 113.30 349.60
cship Humored 40009 10000 122.18 257.15 128.22
39.52 156.73 115.25 988.69
cship Question 40126 10006 79.44 138.72 52.16
36.99 218.91 114.49 615.04
cship Alternateness 40058 10002 84.67 396.51 37.57
25.56 40.86 110.46 1003.03
cship Stool 40119 10005 169.95 144.70 33.62
16.60 64.62 153.12 829.05
cship Pity 40102 10005 96.07 318.02 55.43 39.66
161.64 115.93 263.98
cship Cortex 40149 10007 206.25 392.42 57.97
24.14 196.23 199.55 114.15
cship Lubes 40090 10004 234.46 151.95 62.40
25.63 131.09 143.93 634.68
cship Rhodesian 40032 10001 120.44 447.29 114.94
20.86 50.78 134.37 268.50
cship Aquaplanes 40060 10003 218.64 304.39 36.44
19.11 198.98 118.07 458.77
cship Results 40150 10007 186.17 151.48 119.27
32.98 81.44 177.26 876.53
cship Anti 40052 10002 68.52 363.37 86.93 38.83
115.53 161.04 505.94
cship Contributions 40113 10005 225.28 475.84 88.33
26.07 204.35 155.78 116.91
cship Flaunting 40134 10006 159.68 440.03 60.88
27.47 177.87 188.20 944.56
cship Flywheel 40026 10001 225.18 438.01 99.16
37.35 145.27 132.13 426.11
cship Colonials 40155 10007 158.27 254.84 43.67
18.90 84.54 191.97 677.73
cship Taphouses 40031 10001 87.84 383.55 88.28
27.54 154.53 174.42 772.52
cship Molecule 40017 10000 97.57 321.30 124.26
41.09 91.31 165.68 205.91
cship Inaudibility 40010 10000 151.70 354.16 106.39
19.16 104.92 183.50 121.58
cship Preregisters 40100 10005 81.89 141.29 90.17
17.68 118.40 145.52 579.50
cship Haitians 40128 10006 190.56 451.66 74.13
34.78 25.87 145.94 995.44
cship Lancelot 40106 10005 157.25 339.19 103.35
42.48 51.62 192.87 415.37
cship Weapons 40044 10002 174.67 270.92 107.27
23.07 44.07 121.05 655.84
cship Struck 40104 10005 163.46 407.61 73.76
42.47 34.78 183.78 673.09
cship Begrudge 40159 10007 82.93 247.40 63.95
43.66 49.63 173.39 344.63
cship Typology 40084 10004 97.86 350.62 39.33
35.70 201.58 107.65 323.11
cship Histrionics 40014 10000 179.27 491.56 47.42
27.26 197.27 161.25 189.07
cship Unimpressively 40081 10004 168.95 202.65 86.96
41.15 101.04 108.51 606.75
cship Bombshells 40086 10004 229.76 435.58 108.60
15.34 165.36 128.14 337.05
cship Hairweaver 40042 10002 171.47 191.65 119.59
22.32 112.59 149.94 113.77
cship Kwachas 40082 10004 63.75 198.98 98.06
25.50 176.02 127.99 641.18
cship Piebalds 40049 10002 106.32 213.43 56.03
19.38 175.10 108.33 433.83
cship Suzettes 40073 10003 64.83 216.23 70.33
44.60 203.92 111.68 516.62
cship Jaycees 40139 10006 96.35 272.35 97.90
15.94 113.70 104.30 340.13
cship Betters 40055 10002 173.31 278.26 43.21
20.67 56.32 163.42 797.40
cship Preboiling 40040 10002 83.57 137.22 119.20
20.47 63.04 148.81 98.46
cship Magnetize 40054 10002 62.57 311.44 68.97
20.60 153.41 133.94 267.26
cship Expansionism 40092 10004 188.34 436.73 113.08
25.46 42.92 181.98 329.32
cship Combatting 40105 10005 149.03 441.87 102.81
17.30 55.11 122.70 566.28
cship Cuttlebones 40140 10007 134.80 403.42 56.68
40.92 92.67 123.47 371.96
cship Repaginates 40148 10007 113.35 212.17 112.59
21.65 143.08 114.37 710.62
cship Bloodily 40066 10003 132.19 156.57 93.78
22.38 59.08 104.97 344.26
cship Colophon 40154 10007 90.95 326.42 117.13
20.73 219.52 119.90 515.66
cship Madcaps 40020 10001 235.24 448.15 72.49
15.45 163.62 167.61 310.83
cship Cumbered 40057 10002 125.90 137.95 97.58
29.82 90.87 191.94 920.81
cship Balk 40098 10004 209.87 176.41 33.36
33.32 88.84 123.30 154.96
cship Placater 40153 10007 169.97 429.80 42.63
40.32 48.95 101.62 629.30
cship Orchardman 40000 10000 232.05 194.39 35.20
34.69 163.12 139.92 298.10
cship Hypochondriacs 40120 10006 236.23 196.75 72.27
36.95 62.32 167.43 679.04
cship Petro 40036 10001 162.44 361.44 43.65
19.58 133.93 158.11 793.22
cship Overmasters 40125 10006 152.61 252.56 118.14
16.64 49.70 150.79 346.74
cship Hokiest 40077 10003 180.70 148.55 57.93
44.65 55.13 185.21 794.29
cship Desecrations 40124 10006 109.41 380.56 93.59
25.70 125.67 166.98 937.24
cship Triennially 40018 10000 198.21 288.27 44.86
35.31 26.89 146.04 598.87
cship Kettledrum 40039 10001 182.03 330.65 81.33
17.35 169.04 158.20 526.24
cship Caudexes 40072 10003 197.64 168.86 107.60
31.22 189.66 193.53 580.03
cship Hint 40022 10001 166.61 337.90 64.55
32.20 31.68 197.92 644.14
cship Reaccredited 40041 10002 67.76 445.92 112.65
28.44 209.44 188.82 761.38
cship Typhons 40088 10004 69.23 394.34 93.71
18.87 184.49 155.88 842.57
cship Manoeuvered 40064 10003 162.74 340.65 82.16
43.44 119.57 117.98 708.53
cship Tackified 40115 10005 85.94 158.80 122.31
26.18 127.87 140.88 85.16
cship Coverslip 40059 10002 190.16 296.41 53.25
22.89 112.13 102.08 961.60
cship Loggerheads 40152 10007 106.91 164.15 75.10
34.63 211.23 156.31 975.70
cship Vughs 40091 10004 103.07 227.97 72.57
27.79 162.03 144.47 828.82
cship Chancering 40133 10006 208.01 221.23 53.32
38.37 102.99 113.24 374.34
cship Pooh 40021 10001 151.78 298.70 115.23
42.38 213.33 199.33 78.58
cship Textbook 40034 10001 140.01 235.32 82.98
26.35 181.03 191.74 818.32
cship Agitato 40006 10000 144.35 227.77 118.20
22.92 131.66 169.02 172.01
cship Rhinos 40110 10005 143.73 357.24 87.58
20.83 193.81 177.46 867.83
cship Weensiest 40129 10006 206.48 202.97 92.18
41.05 71.21 133.40 184.18
cship Tapirs 40095 10004 124.80 115.06 83.06
41.02 201.82 160.88 58.01
cship Unartfully 40142 10007 186.46 390.55 128.10
39.05 74.25 123.83 821.32
cship Severation 40130 10006 63.03 360.47 86.32
17.35 218.15 166.06 139.41
cship Partita 40127 10006 139.40 495.24 95.69
33.26 79.56 101.14 356.39
cship Pawnbrokers 40071 10003 111.22 371.40 109.59
16.82 63.46 163.66 250.72
cship Tops 40136 10006 170.99 110.22 122.57
37.64 22.05 154.73 156.52
cship Outrider 40078 10003 68.79 421.68 128.94
27.70 172.57 116.29 400.52
cship Deads 40016 10000 149.32 232.04 100.64
42.66 66.38 185.51 193.86
cship Cranial 40043 10002 146.45 425.84 50.07
44.27 105.36 197.75 451.00
cship Transcendentalizm 40028 10001 112.03 384.40
124.85 37.75 27.67 186.83 287.94
cship Mycology 40087 10004 215.57 276.49 65.54
44.05 54.25 178.16 649.49
cship Essentially 40116 10005 51.36 253.26 82.17
23.59 82.45 125.45 808.96
cship Arcadian 40131 10006 244.71 301.46 62.77
20.26 63.28 144.02 494.27
cship Purim 40012 10000 105.43 411.31 46.69
30.28 116.45 175.31 771.42
cship Hawk 40122 10006 232.77 158.85 116.90
15.97 21.54 199.43 711.02
cship Reservers 40111 10005 120.38 204.34 69.32
32.04 195.46 176.83 18.64
cship Uneasiest 40025 10001 80.21 383.13 36.90
34.37 206.63 120.13 226.53
cship Orgeats 40001 10000 117.45 259.96 104.99
22.50 58.00 186.89 23.52
cship Documenter 40015 10000 69.84 289.41 96.01
21.21 137.48 184.99 1005.84
cship Inofficious 40157 10007 73.13 436.98 74.83
34.67 43.41 115.32 19.45
// person name index parent skill
// person <string> <int> <int> <string>
person Raquel 50071 10007 stevedore
person Alma 50030 10003 painter
person Kent 50011 10001 driver
person Enrique 50005 10000 driver
person Chester 50040 10004 mechanic
person Cristina 50028 10002 electrician
person Alexis 50015 10001 captain
person Ramona 50065 10006 electrician
person Jeannette 50066 10006 craneOperator
person Geneva 50027 10002 driver
person Lionel 50006 10000 stevedore
person Janis 50063 10006 captain
person Travis 50010 10001 inspector
person Traci 50023 10002 mate
person Leah 50042 10004 crew
person Kelvin 50001 10000 stevedore
person Shari 50035 10003 cleaner
person Jean 50020 10002 painter
person Krystal 50000 10000 mate
person Irvin 50031 10003 janitor
person Renee 50021 10002 electrician
person Wanda 50002 10000 mechanic
person Tina 50050 10005 electrician
person Joann 50019 10002 craneOperator
person Ira 50059 10005 cleaner
person Craig 50008 10001 electrician
person Angel 50032 10003 carpenter
person Lindsey 50046 10004 carpenter
person Sandra 50009 10001 crew
person Cora 50054 10005 craneOperator
person Eloise 50047 10004 crew
person Maryann 50043 10004 inspector
person Lila 50024 10002 electrician
person Tricia 50041 10004 electrician
person Darnell 50056 10005 inspector
person Maria 50017 10001 clerk
person Rene 50058 10005 painter
person Natasha 50051 10005 crew
person Erik 50070 10007 painter
person Marty 50013 10001 driver
person Christie 50062 10006 driver
person Rosie 50003 10000 cleaner
person Tricia 50029 10003 craneOperator
person Victoria 50072 10007 cleaner
person Valerie 50073 10007 captain
person Jerome 50064 10006 engineer
person Luther 50048 10004 captain
person Jacob 50057 10005 driver
person Jeanette 50055 10005 engineer
person Lonnie 50022 10002 cleaner
person Veronica 50068 10007 stevedore
person Ricky 50049 10004 mate
person Anita 50069 10007 driver
person Kate 50060 10005 clerk
person Gwen 50061 10005 driver
person Milton 50037 10003 cleaner
person Noel 50012 10001 engineer
person Bobbie 50052 10005 craneOperator
person Amber 50039 10004 mechanic
person Paula 50038 10003 inspector
person Andy 50067 10006 janitor
person Maxine 50034 10003 inspector
person Eleanor 50025 10002 carpenter
person Felicia 50044 10004 carpenter
person Olive 50016 10001 stevedore
person Garrett 50045 10004 stevedore
person Angelica 50033 10003 painter
person Alberta 50014 10001 captain
person Bennie 50036 10003 mate
person Lynn 50026 10002 captain
person Patty 50053 10005 carpenter
person Omar 50004 10000 stevedore
person Jane 50007 10001 craneOperator
person Lynne 50018 10001 inspector
// job name index parent duration [skill]+ (one or more,
matches skill in person, may repeat)
// job <string> <int> <int> <double> [<string>]+
job Job_86_85_12 60264 30093 109.72
job Job_48_34_30 60353 40107 99.52 driver clerk
captain
job Job_99_72_28 60270 30099 115.61
job Job_25_42_24 60191 30066 33.68 mate painter
job Job_96_77_40 60214 40065 69.60 driver
job Job_20_78_16 60016 30012 112.46 painter
job Job_70_34_41 60000 30000 48.63 carpenter
electrician inspector
job Job_31_38_17 60276 40082 57.89
job Job_51_98_38 60046 40017 70.78 engineer
job Job_58_74_92 60380 30128 118.11 electrician
job Job_50_69_57 60117 30045 42.15 cleaner mate
job Job_39_59_58 60163 40049 83.84 stevedore
job Job_64_31_70 60105 40037 55.05 painter
job Job_82_76_96 60420 40139 54.21
job Job_88_48_31 60155 40043 63.41 electrician
job Job_83_61_11 60176 40059 47.44
job Job_62_20_14 60247 30083 23.72
job Job_57_13_32 60143 30059 28.21
job Job_57_34_72 60053 30021 111.65
job Job_10_58_50 60473 40152 57.17 engineer
job Job_53_51_65 60158 40046 58.61
job Job_60_44_89 60190 30066 56.32
job Job_13_65_79 60397 40123 78.21 stevedore
job Job_77_16_45 60454 40140 42.99 engineer cleaner
job Job_86_71_86 60228 40072 48.73 janitor
job Job_97_25_16 60070 30032 99.90 engineer crew
job Job_25_94_84 60470 40151 61.42 electrician driver
mechanic
job Job_62_64_75 60138 30056 39.38
job Job_62_82_49 60090 40032 105.12 clerk mate
job Job_47_87_23 60002 30001 92.13
job Job_38_80_47 60231 40074 97.37 cleaner
job Job_91_93_12 60118 30046 81.98 mate
job Job_86_65_10 60290 40093 26.05 crew
job Job_46_79_13 60256 30089 78.82
job Job_55_71_10 60311 30103 39.43
job Job_80_31_63 60194 30070 69.50 crew janitor
electrician
job Job_25_44_74 60224 40068 54.95 craneOperator
mate
job Job_56_13_25 60441 30151 91.79 engineer janitor
painter
job Job_76_26_51 60172 40057 91.34 captain
craneOperator
job Job_64_68_47 60282 40089 97.82
job Job_98_38_74 60283 40090 83.79 cleaner
job Job_48_77_32 60199 30073 48.15 cleaner
job Job_39_70_82 60331 30116 88.21 carpenter
job Job_70_68_93 60189 30065 96.46 crew captain
electrician
job Job_40_96_82 60065 30030 46.47 carpenter
job Job_27_31_73 60390 30134 20.36 cleaner inspector
job Job_51_26_87 60014 30011 35.10 craneOperator
job Job_26_45_46 60036 40009 86.93
job Job_56_47_24 60114 30044 82.64 mechanic
craneOperator
job Job_21_91_37 60004 30002 34.24
job Job_32_87_29 60379 30127 38.39 clerk
job Job_81_68_46 60149 40041 39.74 electrician
job Job_15_93_32 60216 40065 61.23 driver janitor
job Job_24_48_45 60066 30031 109.31 electrician clerk
job Job_96_63_48 60381 30128 67.17 craneOperator
job Job_58_41_88 60478 40155 103.22 electrician
electrician
job Job_45_69_54 60457 40142 80.23
job Job_54_87_31 60324 30114 101.72 driver mechanic
electrician
job Job_42_65_22 60071 30032 84.93 painter mate
job Job_73_96_26 60419 40138 33.86 electrician
carpenter
job Job_34_35_45 60027 40000 73.18 janitor mate mate
job Job_22_94_83 60273 40081 29.34
job Job_66_80_91 60343 40102 50.44 janitor stevedore
job Job_25_75_91 60446 30156 107.49
job Job_96_40_62 60185 30061 34.17 electrician
job Job_92_16_33 60147 40040 24.40 captain
craneOperator clerk
job Job_30_15_71 60166 40051 32.88 driver clerk
mechanic
job Job_99_46_52 60354 40107 45.54 painter janitor
job Job_36_35_73 60235 40075 114.31
job Job_52_32_99 60085 40030 46.11 cleaner
job Job_46_82_64 60325 30114 29.89 mechanic
electrician
job Job_37_91_28 60123 30047 32.73
job Job_73_49_66 60018 30014 111.54 driver
job Job_63_92_71 60382 30129 89.35 crew
job Job_99_48_92 60080 40023 28.48
job Job_40_44_52 60009 30006 77.28 inspector
job Job_16_89_68 60410 40133 44.46 mechanic
job Job_30_97_23 60442 30152 42.67 electrician driver
job Job_61_63_13 60280 40087 59.25
job Job_69_39_85 60412 40134 43.67
job Job_63_24_13 60064 30030 44.92 craneOperator
stevedore engineer
job Job_51_31_90 60017 30013 86.57 crew mate
job Job_53_56_50 60346 40104 34.91 electrician
job Job_51_85_19 60086 40030 91.05 janitor janitor
job Job_13_61_29 60180 30060 75.87 craneOperator
job Job_63_84_68 60245 30081 26.81 captain
job Job_26_50_73 60044 40015 102.31 inspector mate
clerk
job Job_88_19_14 60421 40139 46.84
job Job_17_79_33 60385 30130 26.63
job Job_25_60_55 60101 40036 97.70
job Job_52_60_50 60184 30061 40.67 clerk
job Job_49_52_88 60456 40142 33.77 stevedore
job Job_29_80_82 60345 40103 105.34 inspector
job Job_21_18_23 60157 40045 87.45 carpenter captain
job Job_33_87_64 60019 30014 51.21 clerk
job Job_44_26_40 60312 30104 73.26
job Job_89_77_17 60007 30004 26.97 cleaner clerk
crew
job Job_98_92_28 60134 30054 43.51 inspector
inspector
job Job_91_67_66 60395 40122 53.39 captain
job Job_88_59_23 60469 40151 70.10 driver
job Job_30_52_87 60426 30142 78.97 craneOperator
painter
job Job_56_31_52 60234 40075 23.55
job Job_13_23_38 60152 40042 102.81 crew janitor
painter
job Job_67_19_47 60188 30063 31.71 mate driver
carpenter
job Job_35_87_33 60436 30148 96.50 craneOperator
janitor cleaner
job Job_55_75_59 60121 30047 37.54
job Job_37_70_19 60054 30021 105.88 janitor painter
job Job_10_33_43 60328 30115 69.46 painter painter
job Job_47_70_45 60136 30054 41.12 cleaner
job Job_38_43_70 60366 40113 52.88 cleaner
job Job_96_49_20 60073 30033 77.57 clerk
job Job_82_98_13 60409 40133 35.83 cleaner
job Job_67_22_37 60416 40137 31.50 crew
job Job_73_67_26 60291 40094 115.39
job Job_50_11_84 60467 40148 101.44 stevedore
electrician
job Job_68_52_43 60271 40080 76.91 craneOperator
inspector janitor
job Job_40_36_95 60029 40003 116.94 janitor cleaner
painter
job Job_94_33_27 60020 30015 78.12 crew
craneOperator painter
job Job_87_57_35 60154 40043 48.01 carpenter cleaner
job Job_10_56_79 60263 30093 111.34 carpenter
engineer inspector
job Job_45_57_60 60182 30060 25.72 craneOperator
mechanic
job Job_48_82_12 60337 30119 96.63
job Job_88_77_96 60363 40113 64.34
job Job_99_28_19 60356 40108 38.77
job Job_68_52_12 60010 30008 21.78 driver painter
job Job_36_21_69 60465 40146 90.80 craneOperator
captain inspector
job Job_16_53_99 60425 30142 119.09
job Job_47_35_91 60022 30018 110.53 captain crew
driver
job Job_88_74_52 60252 30086 45.35 stevedore driver
engineer
job Job_33_13_26 60250 30085 95.67 crew cleaner
engineer
job Job_14_39_30 60160 40048 42.01 crew
job Job_72_29_93 60140 30057 60.54
job Job_51_97_33 60484 40158 44.06 stevedore mate
craneOperator
job Job_91_49_74 60335 30118 96.42 inspector
mechanic
job Job_84_26_99 60466 40148 26.53 inspector
electrician
job Job_79_88_12 60092 40033 91.94 clerk clerk
job Job_66_39_95 60251 30085 29.27 craneOperator
cleaner
job Job_74_48_17 60269 30099 48.45 electrician
job Job_42_65_20 60151 40042 103.34
job Job_14_58_69 60055 30022 100.03 carpenter driver
mate
job Job_15_30_16 60266 30097 81.45
job Job_84_24_38 60349 40105 79.73
job Job_76_34_28 60195 30071 27.94 inspector clerk
job Job_29_61_33 60207 30078 67.39 stevedore
job Job_27_93_93 60181 30060 59.30 stevedore
electrician carpenter
job Job_89_30_47 60431 30146 32.30 driver captain
mechanic crew
job Job_23_38_70 60095 40034 109.53 mechanic
craneOperator janitor
job Job_37_75_23 60464 40145 89.12 inspector painter
electrician
job Job_87_84_46 60131 30053 46.57 mechanic
job Job_75_40_72 60035 40008 87.30 captain painter
mechanic
job Job_25_79_85 60287 40092 113.13 electrician
inspector
job Job_78_72_56 60057 30023 85.25
job Job_18_63_24 60102 40037 76.40 craneOperator
job Job_35_67_19 60254 30087 75.65 captain
job Job_92_91_99 60192 30067 20.22
job Job_43_86_49 60248 30083 82.40 mate carpenter
job Job_54_24_82 60317 30107 115.26 clerk
job Job_81_42_24 60060 30025 46.74
job Job_58_44_52 60404 40128 43.38 captain
job Job_63_30_13 60249 30084 22.87 mate
job Job_59_63_22 60303 30100 57.92 inspector
job Job_38_14_42 60225 40069 99.32 crew cleaner
stevedore carpenter
job Job_79_74_76 60308 30101 53.78 crew crew
job Job_23_97_45 60100 40036 44.09 carpenter captain
clerk
job Job_41_48_79 60455 40140 40.25
job Job_13_43_17 60332 30117 61.61 captain
job Job_49_45_66 60068 30031 28.99 painter
job Job_29_50_25 60059 30024 38.52 clerk janitor
job Job_53_91_92 60453 40140 59.24
job Job_11_65_25 60393 30137 99.58 stevedore
inspector
job Job_49_60_72 60015 30011 102.43
job Job_55_74_48 60239 40077 81.83 stevedore
job Job_79_25_69 60368 40118 80.43
job Job_67_91_91 60093 40033 58.96
job Job_91_64_60 60338 30119 104.17 mate
job Job_65_50_34 60074 30033 46.29
job Job_56_47_28 60113 30043 24.33 inspector
job Job_70_56_26 60089 40031 43.92 electrician
mechanic carpenter
job Job_24_61_37 60186 30061 48.30 crew
job Job_86_91_37 60201 30074 99.54 stevedore
electrician
job Job_91_17_35 60198 30072 72.55 captain
craneOperator
job Job_59_93_68 60448 30159 66.01 clerk crew janitor
crew
job Job_89_31_48 60124 30047 100.01 stevedore
craneOperator
job Job_59_57_17 60417 40137 69.90 engineer captain
job Job_45_58_50 60183 30060 92.34 craneOperator
mechanic
job Job_92_52_86 60289 40093 21.06 driver clerk
job Job_50_60_97 60196 30071 41.72 janitor
job Job_67_71_59 60284 40090 35.08
job Job_15_68_49 60444 30153 26.92 driver
job Job_71_57_36 60487 40159 63.44 painter
job Job_65_88_76 60429 30145 43.30 painter
craneOperator
job Job_95_83_72 60461 40144 63.34
job Job_64_95_10 60392 30137 44.68 craneOperator
job Job_28_10_67 60142 30057 88.90 inspector
job Job_11_50_74 60212 40063 87.06 carpenter clerk
painter
job Job_57_36_98 60389 30132 116.39 mate
job Job_46_95_78 60178 40059 62.96 inspector
mechanic
job Job_89_88_30 60293 40095 106.00 painter
stevedore clerk
job Job_45_89_29 60265 30096 48.65
job Job_53_99_21 60038 40010 29.52 carpenter
job Job_88_66_55 60449 30159 87.06
job Job_61_43_60 60082 40027 71.10 engineer
job Job_16_69_33 60344 40103 100.72 inspector
job Job_65_72_77 60096 40034 116.09 stevedore
job Job_48_30_12 60292 40095 28.73 cleaner
job Job_70_56_28 60028 40000 22.47 painter driver
job Job_76_57_53 60001 30000 87.13 cleaner painter
job Job_80_67_11 60116 30045 99.14 mechanic painter
inspector
job Job_50_33_93 60301 40098 119.28 engineer
electrician
job Job_18_63_58 60146 40040 48.90 janitor engineer
captain
job Job_55_76_15 60306 30101 110.30
job Job_62_13_53 60003 30002 85.71 electrician
job Job_87_83_28 60305 30100 78.85 electrician
job Job_84_29_80 60023 30018 82.78 driver painter
mate driver
job Job_64_66_75 60119 30046 83.51 cleaner
job Job_87_74_23 60386 30131 108.22 driver driver
job Job_85_25_27 60236 40076 32.57 captain engineer
cleaner
job Job_30_96_30 60258 30091 68.22 captain painter
job Job_27_65_83 60319 30108 91.77 driver
job Job_51_79_18 60039 40010 56.82
job Job_21_20_99 60294 40096 25.61 stevedore driver
job Job_60_96_31 60307 30101 64.95 captain
job Job_77_40_49 60364 40113 78.53 janitor
job Job_59_18_69 60108 40039 32.27
job Job_35_61_85 60355 40108 107.71 engineer
electrician
job Job_34_23_67 60327 30115 105.69 mate electrician
job Job_74_73_29 60422 30140 32.16 engineer
job Job_99_94_90 60267 30098 115.33 crew captain
craneOperator janitor
job Job_17_17_35 60400 40125 116.21 stevedore
job Job_74_21_52 60371 30120 66.97 craneOperator
mechanic
job Job_52_55_25 60486 40159 109.48
job Job_26_25_22 60187 30063 97.57 mechanic
job Job_61_71_73 60398 40123 86.28 craneOperator
captain
job Job_20_36_83 60339 40100 90.09 crew electrician
electrician
job Job_25_53_66 60013 30009 28.35 mechanic
job Job_70_13_82 60261 30092 62.58
job Job_74_61_69 60135 30054 27.06
job Job_88_40_98 60405 40129 42.45
job Job_87_38_69 60281 40089 22.46 mate engineer
job Job_95_40_57 60468 40149 49.94 janitor
job Job_67_40_55 60358 40109 35.29 crew carpenter
crew
job Job_27_20_42 60040 40013 75.88 cleaner carpenter
job Job_54_33_79 60052 30021 34.72 janitor driver
cleaner
job Job_11_46_62 60111 30041 21.47 crew
job Job_44_36_98 60227 40070 91.40 carpenter painter
job Job_94_10_83 60077 30039 45.56 electrician
job Job_49_24_91 60260 30092 95.77 electrician
engineer
job Job_90_74_55 60202 30075 100.59
job Job_54_84_44 60050 30020 25.09 clerk crew
captain
job Job_38_57_82 60104 40037 50.11 mate
job Job_34_24_71 60333 30117 116.67 captain
stevedore
job Job_88_50_46 60042 40014 89.20 electrician
job Job_26_20_42 60286 40091 71.80
job Job_33_42_94 60255 30089 108.12 stevedore
painter
job Job_72_24_59 60217 40065 80.89 engineer
job Job_32_76_59 60030 40003 79.97 craneOperator
craneOperator
job Job_31_36_32 60173 40058 32.49 craneOperator
job Job_86_80_99 60352 40106 22.08 carpenter
mechanic captain clerk
job Job_29_13_60 60051 30020 110.83 driver
electrician
job Job_28_68_93 60485 40159 110.23 craneOperator
engineer
job Job_14_16_80 60357 40109 66.31 engineer driver
job Job_67_37_99 60471 40151 105.46 mechanic crew
job Job_76_18_78 60078 40020 55.44 painter
job Job_67_78_33 60229 40073 115.28 mechanic
mechanic clerk
job Job_82_32_99 60221 40067 110.72 janitor
craneOperator painter
job Job_66_90_33 60369 40118 97.09 mechanic crew
job Job_93_95_27 60125 30048 99.95 clerk
job Job_29_71_60 60148 40041 102.79 stevedore
inspector
job Job_20_91_54 60277 40083 107.02 driver
job Job_97_88_33 60268 30099 33.07 carpenter
job Job_68_73_51 60463 40145 112.83 engineer
job Job_15_38_64 60021 30017 40.36 craneOperator
job Job_83_22_20 60482 40157 34.68 painter driver
job Job_55_47_57 60043 40014 41.89
job Job_18_12_34 60067 30031 110.52
job Job_34_30_99 60139 30056 88.52 mate
craneOperator craneOperator clerk
job Job_47_34_14 60253 30087 89.44 clerk engineer
job Job_70_79_85 60045 40015 89.76 janitor clerk
job Job_69_42_45 60238 40077 21.04 inspector
carpenter
job Job_29_87_23 60438 30149 51.19 carpenter
job Job_23_45_24 60063 30029 76.60 electrician
mechanic
job Job_17_33_85 60313 30105 60.78 carpenter
job Job_84_56_21 60137 30055 34.03 engineer mate
mate mate
job Job_53_89_51 60203 30076 21.16 electrician mate
inspector
job Job_20_91_86 60433 30147 98.25 mechanic
job Job_55_65_94 60384 30130 103.17 driver stevedore
job Job_78_12_18 60206 30078 99.31 inspector painter
inspector inspector
job Job_40_30_31 60232 40074 112.63
job Job_71_95_40 60445 30154 98.87 carpenter cleaner
mate
job Job_57_67_34 60370 40119 62.33
job Job_53_71_92 60128 30049 84.03 stevedore
job Job_79_38_29 60091 40032 91.30
job Job_74_47_33 60361 40111 32.57 captain painter
inspector
job Job_40_18_35 60481 40157 34.46 crew
job Job_44_14_86 60223 40068 91.65 stevedore
job Job_35_22_66 60240 40078 24.16 electrician
job Job_91_40_44 60321 30112 51.46
job Job_80_42_50 60367 40116 118.44 captain painter
job Job_40_75_76 60362 40111 85.66 painter
job Job_67_51_40 60334 30118 34.93 craneOperator
mechanic
job Job_65_10_29 60197 30071 66.59 janitor janitor
job Job_91_82_82 60350 40106 43.25
job Job_16_34_14 60323 30113 64.13 painter
job Job_68_85_96 60304 30100 22.11
job Job_50_73_69 60244 30080 88.43 captain inspector
job Job_58_27_37 60026 30019 45.47
job Job_22_19_28 60403 40128 95.53 driver carpenter
job Job_16_20_77 60099 40035 106.69 painter crew
stevedore
job Job_43_10_18 60411 40134 43.78
job Job_48_20_91 60088 40031 91.62 stevedore mate
job Job_70_28_88 60127 30049 119.57
job Job_28_93_91 60450 30159 20.03 engineer
mechanic
job Job_51_54_55 60460 40144 41.40 stevedore janitor
job Job_33_30_12 60062 30029 76.63 craneOperator
driver
job Job_18_57_17 60037 40010 57.88 stevedore
job Job_28_41_49 60167 40053 35.53 stevedore crew
job Job_10_11_34 60377 30127 54.31
job Job_45_62_59 60205 30077 53.39 clerk
job Job_30_27_97 60048 40019 106.83 driver driver
engineer
job Job_16_46_60 60274 40082 26.95 electrician
job Job_26_23_68 60430 30146 73.53 painter painter
job Job_41_14_20 60347 40105 22.80 captain
job Job_31_49_33 60479 40156 36.56 mechanic cleaner
captain carpenter
job Job_21_17_55 60171 40057 64.58 craneOperator
clerk
job Job_13_34_72 60129 30051 110.42 stevedore
job Job_48_18_36 60156 40045 106.81 janitor
job Job_79_26_11 60326 30115 31.48
job Job_58_38_42 60033 40005 59.27 carpenter
job Job_98_46_63 60315 30105 36.87 captain mechanic
job Job_45_36_87 60483 40157 76.42 cleaner mate
job Job_44_26_30 60193 30068 63.45 engineer mate
job Job_77_13_45 60407 40131 22.68 engineer
job Job_86_88_69 60075 30033 79.64 electrician
job Job_82_83_45 60413 40135 40.31 mate inspector
crew
job Job_53_85_99 60179 40059 52.77 cleaner carpenter
captain
job Job_96_10_50 60072 30032 70.36 clerk
job Job_97_20_62 60162 40049 97.32 carpenter
job Job_50_84_90 60215 40065 119.33 stevedore
job Job_42_15_35 60424 30142 108.90
job Job_92_22_46 60414 40135 20.17 clerk mate
captain
job Job_61_35_63 60406 40131 94.92
job Job_52_86_67 60295 40096 56.70 electrician clerk
job Job_31_22_79 60032 40005 54.03 crew
job Job_86_55_35 60477 40155 61.66
job Job_33_35_97 60130 30052 111.56 cleaner mate
mechanic
job Job_25_29_68 60415 40136 100.70 clerk electrician
job Job_41_60_69 60360 40109 84.57 captain
craneOperator
job Job_98_31_22 60222 40067 99.09 craneOperator
job Job_37_16_29 60275 40082 71.24 clerk crew
job Job_31_23_74 60309 30102 55.24
job Job_88_85_34 60388 30132 94.80 craneOperator
electrician
job Job_21_16_38 60318 30108 104.40 janitor mate
job Job_82_49_51 60298 40097 78.06 painter
job Job_57_80_47 60024 30019 31.05
job Job_99_99_61 60097 40034 31.11
job Job_86_83_36 60213 40064 73.57 painter carpenter
job Job_71_45_72 60396 40122 33.01 inspector
job Job_45_72_21 60374 30122 60.81 craneOperator
job Job_51_68_56 60153 40042 21.76 stevedore
job Job_45_56_93 60083 40029 73.00 craneOperator
engineer
job Job_54_46_99 60296 40096 100.50 painter painter
job Job_81_79_49 60423 30140 22.38 mate engineer
craneOperator mechanic
job Job_54_19_20 60322 30113 45.97 inspector crew
electrician
job Job_28_76_65 60475 40154 40.57 craneOperator
mechanic
job Job_44_61_64 60081 40026 97.21 inspector
electrician
job Job_81_39_80 60084 40030 65.27 driver
job Job_37_71_61 60005 30003 80.02 electrician
job Job_27_32_83 60399 40124 94.12 cleaner engineer
cleaner
job Job_84_38_26 60246 30082 98.88
job Job_29_95_71 60476 40155 115.08
job Job_26_30_85 60272 40080 104.29
job Job_52_89_63 60226 40070 92.02 driver janitor
job Job_36_27_83 60341 40102 71.01 clerk carpenter
crew
job Job_96_43_71 60145 40040 71.90 cleaner captain
engineer
job Job_26_17_80 60336 30119 101.00 mechanic
janitor
job Job_50_72_22 60011 30008 72.67
job Job_86_47_28 60351 40106 60.60
job Job_55_57_96 60058 30023 99.75
job Job_57_53_49 60451 30159 92.57 mechanic painter
job Job_41_37_69 60288 40092 81.61 mate
job Job_13_90_18 60209 40061 56.83 inspector
craneOperator
job Job_85_54_12 60177 40059 117.77
job Job_78_35_84 60348 40105 85.56 mechanic
job Job_43_83_74 60168 40053 24.10 mate crew
job Job_22_16_57 60375 30124 54.83 stevedore
job Job_54_38_25 60087 40030 101.08 engineer crew
job Job_26_16_52 60434 30147 51.42 cleaner inspector
job Job_76_56_51 60459 40144 29.41 inspector captain
job Job_43_16_71 60159 40047 72.50 driver painter
job Job_52_44_40 60257 30091 45.57 carpenter clerk
job Job_62_11_95 60120 30046 71.45 stevedore painter
job Job_57_50_57 60462 40144 70.11 crew
job Job_27_71_94 60439 30150 59.72 electrician
craneOperator
job Job_57_91_50 60237 40077 102.09
job Job_72_89_29 60107 40039 102.95 carpenter
job Job_74_48_35 60285 40090 75.25
job Job_68_69_74 60056 30022 111.27 crew driver
janitor
job Job_56_67_24 60008 30005 80.26 painter cleaner
carpenter
job Job_27_90_71 60174 40058 83.70 janitor
job Job_30_15_52 60219 40066 59.74 mechanic
job Job_91_28_33 60041 40014 84.14 engineer
job Job_13_85_23 60025 30019 39.71 electrician
engineer
job Job_71_68_91 60200 30073 66.08 mate
job Job_98_28_39 60401 40125 100.56 carpenter
electrician
job Job_36_13_26 60427 30143 48.28
job Job_69_77_81 60428 30145 80.03 inspector
job Job_30_10_90 60443 30152 65.31 mechanic
job Job_84_40_41 60458 40143 24.64
job Job_85_66_35 60373 30120 98.57 captain
job Job_42_51_51 60006 30004 30.05 electrician
captain
job Job_17_49_64 60440 30151 74.45
job Job_54_83_57 60220 40066 93.12 inspector
engineer clerk
job Job_19_45_56 60109 40039 101.41 painter
job Job_80_64_85 60310 30103 79.45 mechanic
electrician
job Job_40_82_11 60126 30048 114.27 painter captain
job Job_16_37_95 60300 40098 113.35
job Job_27_55_27 60302 40099 100.75 electrician clerk
painter
job Job_16_52_30 60320 30111 89.94 mate driver
job Job_61_96_85 60480 40156 60.56 clerk
job Job_95_70_37 60262 30092 83.82 engineer
carpenter
job Job_67_90_84 60141 30057 52.12 craneOperator
stevedore
job Job_14_17_79 60378 30127 114.78 painter
job Job_92_58_60 60437 30149 73.71
job Job_25_14_59 60122 30047 56.05 crew crew crew
job Job_22_97_58 60164 40051 73.15
job Job_31_13_64 60047 40017 95.61 cleaner captain
job Job_87_62_59 60314 30105 84.81 mechanic crew
engineer
job Job_49_14_69 60359 40109 64.57
job Job_71_13_72 60452 40140 84.45 mechanic captain
job Job_98_92_77 60472 40152 59.00
job Job_59_42_62 60432 30147 22.22
job Job_21_39_28 60259 30091 77.89 inspector
job Job_41_65_84 60391 30136 53.95 carpenter
job Job_17_34_54 60211 40062 74.04 captain
job Job_93_41_86 60340 40101 102.49
job Job_82_51_53 60112 30042 77.58 driver carpenter
mechanic
job Job_63_33_69 60279 40087 80.75 captain
electrician
job Job_84_88_71 60233 40074 77.91 carpenter
job Job_42_27_35 60218 40066 43.65 captain
job Job_81_73_64 60299 40098 105.00
job Job_16_29_82 60170 40057 89.87 captain
job Job_47_26_91 60069 30031 49.98 mechanic
mechanic
job Job_80_87_39 60204 30076 72.92 inspector
job Job_87_78_46 60447 30158 75.59
job Job_66_13_15 60230 40073 46.16 inspector clerk
job Job_88_68_37 60474 40153 101.36
job Job_51_20_14 60376 30124 43.36
job Job_42_50_92 60103 40037 117.05
job Job_92_84_82 60418 40138 38.95
job Job_15_67_95 60161 40049 72.23 crew driver clerk
job Job_24_50_73 60387 30131 80.92 engineer engineer
job Job_85_17_47 60133 30053 76.42
job Job_71_29_65 60132 30053 60.65 carpenter
job Job_48_75_15 60394 30139 92.52 electrician
job Job_77_83_41 60408 40132 54.34 painter
job Job_50_85_73 60208 30079 55.63
job Job_61_66_28 60049 30020 33.22 driver clerk
cleaner
job Job_57_16_22 60210 40062 99.18 driver cleaner
inspector
job Job_87_27_76 60079 40020 87.17 mechanic
engineer janitor
job Job_78_37_86 60435 30148 62.60 janitor mate
inspector
job Job_61_71_93 60094 40034 97.09
job Job_22_42_95 60402 40126 25.39 driver
job Job_86_36_15 60034 40006 30.47 mechanic captain
job Job_61_37_95 60144 30059 46.07
job Job_52_81_98 60316 30106 104.20
job Job_13_93_24 60241 40078 102.81 captain
inspector electrician
job Job_91_48_29 60076 30038 55.31 mechanic cleaner
engineer
job Job_94_42_56 60278 40083 89.06
job Job_74_71_59 60243 30080 66.32 cleaner
job Job_19_11_89 60165 40051 87.26 electrician
captain painter
job Job_78_87_28 60329 30115 80.09
job Job_42_51_10 60330 30116 90.24 painter engineer
crew
job Job_17_97_19 60115 30045 26.01 crew
job Job_20_52_87 60031 40005 30.06 cleaner driver
job Job_46_25_36 60150 40041 28.75 craneOperator
clerk stevedore
job Job_98_35_92 60365 40113 60.36
job Job_35_50_36 60061 30028 63.81 painter painter
stevedore
job Job_55_80_12 60106 40038 96.92 mate painter
job Job_44_60_40 60169 40055 89.29 cleaner engineer
driver
job Job_61_17_44 60372 30120 108.03 driver
job Job_71_70_59 60242 40079 69.57 captain
job Job_92_95_20 60110 30041 107.63 crew driver
job Job_45_42_95 60297 40097 114.12
job Job_26_73_65 60098 40035 45.50
job Job_42_76_12 60383 30129 86.64
job Job_31_88_75 60012 30008 79.36 engineer
mechanic
job Job_15_20_84 60342 40102 60.33 inspector
job Job_97_37_29 60175 40058 104.08 mechanic driver
cleaner
aSPad.txt
// File: aSPad.txt
// Data file for SeaPort projects
// Date: Sun Jul 10 10:33:24 EDT 2016
// parameters: 3 4 5 6 7 8
// ports, docks, pships, cships, jobs, persons
// port name index parent(null)
// port <string> <int> <int>
port Sialkot 10000 0
port Kandahar 10002 0
port Vainikkala 10001 0
// dock name index parent(port)
// dock <string> <int> <int>
dock Pier_5 20005 10001 30005
dock Pier_2 20002 10000 30002
dock Pier_12 20012 10002 30010
dock Pier_15 20015 10002 30013
dock Pier_17 20017 10002 40012
dock Pier_6 20006 10001 30006
dock Pier_10 20010 10001 40006
dock Pier_1 20001 10000 30001
dock Pier_13 20013 10002 30011
dock Pier_3 20003 10000 30003
dock Pier_7 20007 10001 30007
dock Pier_18 20018 10002 40013
dock Pier_4 20004 10000 30004
dock Pier_9 20009 10001 30009
dock Pier_14 20014 10002 30012
dock Pier_0 20000 10000 30000
dock Pier_16 20016 10002 30014
dock Pier_11 20011 10001 40007
dock Pier_8 20008 10001 30008
// pship name index parent(dock/port) weight length width draft
numPassengers numRooms numOccupied
// pship <string> <int> <int> <double> <double> <double>
<double> <int> <int> <int>
pship "ZZZ_Hysterics" 30002 20002 103.71 327.92 56.43
30.23 3212 917 917
pship Tieclasp 30012 20014 110.03 256.90 32.12
27.33 1951 1010 975
pship Glory 30000 20000 137.28 399.53 128.71
39.37 1059 670 529
pship Bittern 30007 20007 86.97 124.82 122.03
15.32 378 256 189
pship Floridians 30009 20009 64.24 190.15 95.83
15.70 897 741 448
pship Normatively 30001 20001 141.52 229.97 40.76
31.65 166 500 83
pship Revocability 30010 20012 157.37 433.24 73.43
25.90 290 323 145
pship Yeah 30004 20004 200.98 446.92 95.29
25.08 210 723 105
pship Haviour 30014 20016 122.92 281.69 43.79
41.02 635 874 317
pship Subplot 30006 20006 106.28 314.41 116.32
43.39 405 608 202
pship Insigne 30005 20005 123.07 211.20 83.67
19.05 1799 1008 899
pship Antisocially 30008 20008 161.94 370.17 81.84
19.40 501 176 176
pship Centrifuged 30011 20013 67.69 251.06 85.60
36.50 3248 955 955
pship Blare 30003 20003 228.31 264.15 114.17
39.85 798 500 399
pship Xanthic 30013 20015 203.06 358.19 69.97
41.07 422 443 211
// cship name index parent(dock/port) weight length width draft
cargoWeight cargoVolume cargoValue
// cship <string> <int> <int> <double> <double> <double>
<double> <double> <double> <double>
cship Suites 40003 10000 165.91 447.15 85.83
27.07 125.09 176.80 857.43
cship Hypodermatically 40009 10001 165.90 106.64
103.17 25.87 64.32 192.65 177.78
cship Learned 40016 10002 199.49 388.49 93.41
16.72 49.79 126.62 538.08
cship Vomiter 40004 10000 136.79 491.46 106.72
18.97 216.16 189.62 688.14
cship Abscissions 40017 10002 177.25 203.16 101.09
41.84 101.98 157.04 500.69
cship Outlawry 40002 10000 159.34 464.02 102.60
26.08 70.91 182.31 725.76
cship Sunnier 40012 20017 161.48 226.97 46.07
24.54 199.93 135.03 988.18
cship Ragouts 40001 10000 89.37 450.62 80.62
30.90 147.58 152.89 438.61
cship Magical 40013 20018 71.56 338.11 93.91
43.12 97.33 121.55 560.90
cship Subgum 40011 10001 50.82 168.10 56.84
27.20 203.76 190.44 457.92
cship Apostrophize 40008 10001 115.21 460.70 44.60
37.33 199.29 170.63 810.54
cship Fecundation 40005 10000 137.79 197.96 39.03
44.99 157.24 148.62 236.23
cship Employer 40015 10002 215.31 244.05 86.23
36.64 57.49 107.78 941.42
cship Revisit 40014 10002 81.54 424.95 89.79 39.26
202.98 123.98 129.07
cship Welcoming 40007 20011 164.87 341.16 50.31
25.63 151.89 168.18 303.53
cship Sphere 40000 10000 221.17 204.53 39.71
27.28 151.63 159.88 978.54
cship Autopsied 40010 10001 171.13 386.36 62.45
42.10 62.03 172.15 441.30
cship Latticing 40006 20010 135.79 411.89 78.08
44.62 120.86 163.45 390.62
// person name index parent skill
// person <string> <int> <int> <string>
person Tracey 50010 10001 carpenter
person Tina 50008 10000 painter
person Phil 50020 10002 mechanic
person Willie 50014 10001 clerk
person Cody 50002 10000 electrician
person Oliver 50000 10000 clerk
person Alberto 50013 10001 cleaner
person Debbie 50017 10002 painter
person Marty 50006 10000 electrician
person Jean 50022 10002 crew
person Terri 50001 10000 driver
person Otis 50003 10000 mate
person Jimmie 50007 10000 mate
person Camille 50016 10002 inspector
person Phillip 50023 10002 inspector
person Stacey 50021 10002 clerk
person Jacqueline 50015 10001 driver
person Jacquelyn 50011 10001 inspector
person Lucy 50012 10001 driver
person Jean 50018 10002 mechanic
person Patty 50019 10002 mechanic
person Colin 50009 10001 stevedore
person Charlotte 50004 10000 carpenter
person Eileen 50005 10000 captain
// job name index parent duration [skill]+ (one or more,
matches skill in person, may repeat)
// job <string> <int> <int> <double> [<string>]+
job Job_97_35_88 60030 40007 42.13 craneOperator
job Job_72_62_40 60028 40007 106.93 captain
job Job_93_67_52 60019 30006 60.09 mate
job Job_50_35_84 60011 40000 41.00 janitor driver
captain
job Job_64_63_99 60022 30009 21.73 painter
job Job_24_68_12 60016 40005 43.07 mate cleaner
job Job_66_52_86 60015 40004 76.84 crew
job Job_99_51_86 60002 30002 92.69 driver
job Job_10_94_27 60020 30007 77.78 carpenter cleaner
clerk
job Job_93_37_24 60012 40000 118.88 engineer crew
inspector
job Job_56_27_90 60056 40015 96.48 stevedore captain
carpenter
job Job_56_22_75 60038 30010 83.16 engineer
electrician
job Job_43_31_12 60018 30006 105.86 inspector
job Job_48_45_31 60047 40012 58.52
job Job_41_30_21 60040 30012 58.19 cleaner
job Job_20_50_30 60057 40017 56.16 mate
job Job_35_26_63 60049 40013 107.27 painter
job Job_57_62_56 60055 40015 68.07 electrician
carpenter
job Job_88_82_13 60054 40015 81.39 cleaner
electrician
job Job_47_78_83 60036 40010 37.87 mate
craneOperator
job Job_97_75_28 60009 30004 102.80 cleaner painter
janitor
job Job_73_11_66 60004 30002 79.02
job Job_49_14_65 60027 40007 44.56 inspector
electrician electrician
job Job_55_66_47 60045 30014 60.81 carpenter captain
cleaner
job Job_64_40_53 60034 40009 54.42 janitor
job Job_78_32_64 60014 40004 33.43 mate clerk
stevedore carpenter
job Job_56_59_17 60029 40007 111.91 cleaner
job Job_23_91_73 60039 30012 50.51 painter
electrician painter craneOperator
job Job_82_27_25 60041 30013 54.32 craneOperator
job Job_98_48_78 60043 30013 30.91 driver clerk mate
job Job_67_51_68 60037 30010 55.50 captain
job Job_20_37_21 60021 30007 64.53
job Job_53_22_78 60032 40008 58.99 captain stevedore
job Job_64_50_19 60048 40012 37.06 painter cleaner
job Job_82_11_72 60026 40006 24.82 captain
job Job_28_11_75 60024 40006 38.64 craneOperator
inspector engineer stevedore
job Job_51_14_13 60008 30004 24.52 stevedore
job Job_36_65_73 60006 30003 106.58 driver driver
job Job_48_89_46 60000 30000 80.34 janitor
job Job_79_64_23 60046 30014 31.42 inspector driver
job Job_35_34_33 60031 40007 49.13 craneOperator
job Job_12_40_46 60033 40008 110.68 electrician
carpenter captain
job Job_97_15_76 60001 30000 112.83 driver
job Job_69_42_40 60010 40000 102.22 clerk
job Job_87_38_77 60035 40009 46.20 crew carpenter
job Job_61_35_13 60017 30005 116.22
job Job_71_95_64 60052 40014 72.22
job Job_46_56_48 60005 30003 56.60 engineer
job Job_68_62_61 60053 40014 34.02 mate captain
stevedore
job Job_80_20_52 60042 30013 107.16 crew
job Job_52_46_64 60044 30014 20.55 clerk inspector
cleaner
job Job_29_28_74 60050 40013 53.99
job Job_39_56_39 60023 40006 53.26
job Job_48_65_77 60003 30002 39.86 electrician driver
job Job_29_12_70 60007 30003 32.75 painter
job Job_93_34_80 60051 40014 29.70 mechanic
craneOperator
job Job_78_36_10 60025 40006 89.49 mate clerk
job Job_77_43_75 60013 40001 107.11 electrician
inspector
__MACOSX/._aSPad.txt
aSPae.txt
// File: aSPae.txt
// Data file for SeaPort projects
// Date: Sun Jul 10 12:50:43 EDT 2016
// parameters: 8 15 20 20 5 30
// ports, docks, pships, cships, jobs, persons
// port name index parent(null)
// port <string> <int> <int>
port Mucuripe 10006 0
port Djen_Djen 10001 0
port Dampier 10000 0
port Montoir 10005 0
port Dalta_Port 10003 0
port Pago_Pago 10007 0
port Onahama 10002 0
port Laem_Chabang 10004 0
// dock name index parent(port)
// dock <string> <int> <int>
dock Pier_67 20067 10006 30134
dock Pier_19 20019 10002 30040
dock Pier_5 20005 10000 30005
dock Pier_31 20031 10003 30063
dock Pier_15 20015 10001 30028
dock Pier_41 20041 10004 30081
dock Pier_2 20002 10000 30002
dock Pier_11 20011 10001 30024
dock Pier_32 20032 10003 30064
dock Pier_48 20048 10005 30103
dock Pier_23 20023 10002 30044
dock Pier_8 20008 10001 30021
dock Pier_58 20058 10006 30125
dock Pier_49 20049 10005 30104
dock Pier_29 20029 10003 30061
dock Pier_53 20053 10006 30120
dock Pier_76 20076 10007 30144
dock Pier_51 20051 10005 30106
dock Pier_18 20018 10001 30031
dock Pier_70 20070 10006 30137
dock Pier_47 20047 10005 30102
dock Pier_44 20044 10004 30084
dock Pier_13 20013 10001 30026
dock Pier_30 20030 10003 30062
dock Pier_6 20006 10000 30006
dock Pier_45 20045 10005 30100
dock Pier_26 20026 10002 30047
dock Pier_40 20040 10004 30080
dock Pier_65 20065 10006 30132
dock Pier_73 20073 10007 30141
dock Pier_59 20059 10006 30126
dock Pier_0 20000 10000 30000
dock Pier_17 20017 10001 30030
dock Pier_24 20024 10002 30045
dock Pier_60 20060 10006 30127
dock Pier_22 20022 10002 30043
dock Pier_25 20025 10002 30046
dock Pier_33 20033 10003 30065
dock Pier_66 20066 10006 30133
dock Pier_37 20037 10003 30069
dock Pier_69 20069 10006 30136
dock Pier_35 20035 10003 30067
dock Pier_50 20050 10005 30105
dock Pier_3 20003 10000 30003
dock Pier_56 20056 10006 30123
dock Pier_52 20052 10005 30107
dock Pier_39 20039 10003 30071
dock Pier_72 20072 10007 30140
dock Pier_7 20007 10001 30020
dock Pier_63 20063 10006 30130
dock Pier_74 20074 10007 30142
dock Pier_28 20028 10003 30060
dock Pier_27 20027 10002 30048
dock Pier_43 20043 10004 30083
dock Pier_38 20038 10003 30070
dock Pier_14 20014 10001 30027
dock Pier_77 20077 10007 30145
dock Pier_16 20016 10001 30029
dock Pier_1 20001 10000 30001
dock Pier_21 20021 10002 30042
dock Pier_46 20046 10005 30101
dock Pier_64 20064 10006 30131
dock Pier_12 20012 10001 30025
dock Pier_71 20071 10006 30138
dock Pier_20 20020 10002 30041
dock Pier_9 20009 10001 30022
dock Pier_62 20062 10006 30129
dock Pier_36 20036 10003 30068
dock Pier_55 20055 10006 30122
dock Pier_34 20034 10003 30066
dock Pier_10 20010 10001 30023
dock Pier_57 20057 10006 30124
dock Pier_4 20004 10000 30004
dock Pier_42 20042 10004 30082
dock Pier_61 20061 10006 30128
dock Pier_54 20054 10006 30121
dock Pier_68 20068 10006 30135
dock Pier_75 20075 10007 30143
// pship name index parent(dock/port) weight length width draft
numPassengers numRooms numOccupied
// pship <string> <int> <int> <double> <double> <double>
<double> <int> <int> <int>
pship Fretfulness 30014 10000 132.97 187.74 116.30
19.70 3276 879 879
pship Comparability 30029 20016 131.06 413.54 67.42
41.91 1791 879 879
pship Forestalls 30012 10000 116.20 421.00 86.16
20.88 1344 871 672
pship Fusion 30114 10005 179.17 329.29 111.66
17.24 22 359 11
pship Tobogganed 30116 10005 77.37 127.50 36.53
32.91 317 199 158
pship Directorships 30077 10003 81.91 162.48 94.07
25.90 645 1031 322
pship Hardihood 30088 10004 202.81 427.00 98.31
17.91 421 669 210
pship Newcastle 30053 10002 213.66 372.95 122.04
30.15 1310 336 336
pship Isobaric 30132 20065 128.67 418.95 59.09
32.69 2160 782 782
pship Moxibustion 30120 20053 127.37 323.01 88.63
18.73 496 237 237
pship Gunsmith 30068 20036 86.97 461.26 84.28
32.30 374 103 103
pship Advocatory 30105 20050 100.19 185.64 110.07
44.83 1461 882 730
pship Roentgens 30145 20077 201.15 387.79 88.34
19.06 957 843 478
pship Reinfect 30087 10004 118.22 379.22 66.67
32.74 254 393 127
pship Slums 30135 20068 144.54 253.54 67.08
19.78 1966 721 721
pship Nomadism 30000 20000 162.27 120.59 38.57
26.87 826 683 413
pship Subroutines 30079 10003 104.73 121.81 85.80
39.02 2234 1029 1029
pship Anchoress 30041 20020 227.35 334.57 74.91
29.76 30 436 15
pship Pillaring 30130 20063 102.69 298.89 81.58
29.23 1374 702 687
pship Valour 30112 10005 129.20 484.60 123.86
34.22 2187 621 621
pship Oxyhydrogen 30151 10007 152.97 351.70 95.65
33.64 1448 383 383
pship Pharisaic 30154 10007 188.67 374.96 70.55
23.80 158 804 79
pship Journal 30067 20035 63.78 165.25 89.73 24.06
1225 453 453
pship Ginners 30032 10001 132.80 269.00 102.53
23.28 3003 757 757
pship Masked 30103 20048 125.94 407.60 126.30
22.41 828 363 363
pship Tetherball 30143 20075 167.10 162.10 129.98
26.28 1654 624 624
pship Spinosely 30138 20071 82.59 109.87 37.42
31.50 690 618 345
pship Physiological 30002 20002 248.73 432.05 101.80
37.82 568 398 284
pship Leathering 30121 20054 71.79 332.92 33.86
29.58 1583 585 585
pship Guzzlers 30055 10002 63.29 302.94 121.66
34.09 1633 537 537
pship Beaching 30149 10007 182.44 111.41 47.07
19.00 2183 862 862
pship Longer 30153 10007 239.27 375.28 89.89
36.43 367 109 109
pship Reopener 30157 10007 94.27 287.88 87.11
28.20 2955 888 888
pship Hallowed 30091 10004 129.18 395.25 36.52
41.56 3332 882 882
pship Rescript 30158 10007 216.65 289.83 80.05
26.83 634 660 317
pship Ungratifying 30148 10007 148.48 437.63 58.65
30.17 1184 348 348
pship Punker 30102 20047 239.96 164.40 36.83
15.78 2766 1000 1000
pship Haoles 30047 20026 143.11 281.46 47.85
17.72 686 944 343
pship Corresponded 30107 20052 227.22 319.67 91.51
44.94 144 128 72
pship Portraitists 30048 20027 90.97 412.26 102.80
22.64 2021 742 742
pship Uneventfully 30109 10005 189.85 414.76 65.03
25.05 396 141 141
pship Seral 30155 10007 215.21 201.78 59.10
22.28 1783 687 687
pship Viperine 30098 10004 192.92 458.29 34.13
38.36 288 1056 144
pship Lutists 30064 20032 55.79 206.74 64.78 41.38
1147 311 311
pship Milk 30108 10005 74.90 445.99 57.09 24.02
945 551 472
pship Bodied 30113 10005 215.09 483.43 86.22
40.54 1950 821 821
pship Muggiest 30031 20018 173.30 193.33 103.16
29.20 413 213 206
pship Finagle 30003 20003 174.28 329.65 76.16
27.74 3089 971 971
pship Careers 30051 10002 152.80 398.64 47.30
29.75 2495 636 636
pship Gonadal 30062 20030 155.46 260.52 98.86
32.30 84 403 42
pship Titians 30011 10000 189.96 394.44 82.63
16.69 2664 756 756
pship Catling 30071 20039 80.01 222.65 117.67
17.66 965 577 482
pship Cricks 30128 20061 113.98 479.88 85.99
25.93 2164 965 965
pship Accuser 30124 20057 246.05 347.60 79.35
40.66 1890 1091 945
pship Pillager 30006 20006 100.79 404.76 37.09
41.65 710 415 355
pship Shillelagh 30147 10007 148.37 274.19 92.85
40.27 2083 710 710
pship Cabbies 30146 10007 112.38 413.37 79.94
43.37 946 431 431
pship Henpecks 30095 10004 73.50 319.40 95.12
28.77 1680 724 724
pship Floating 30111 10005 85.17 118.64 63.84
30.98 3196 921 921
pship Podium 30038 10001 245.14 199.83 75.04
34.58 591 1005 295
pship Tucked 30001 20001 196.97 497.06 42.89
41.98 212 138 106
pship Bustards 30023 20010 127.12 152.85 54.10
33.67 1175 501 501
pship Suspenders 30080 20040 164.94 244.79 64.55
28.06 2072 916 916
pship Diluent 30044 20023 92.42 339.90 85.65
17.20 912 304 304
pship Heeltaps 30069 20037 242.86 447.84 119.57
27.87 455 144 144
pship Vegetates 30061 20029 177.35 281.56 58.77
16.40 144 696 72
pship Cognates 30134 20067 106.23 458.98 49.41
24.23 138 124 69
pship Expatriated 30082 20042 190.88 441.68 103.39
35.13 852 781 426
pship Recliner 30131 20064 139.90 124.52 36.49
25.23 1974 515 515
pship Describing 30097 10004 68.16 491.33 115.02
38.46 712 534 356
pship Phosphates 30057 10002 208.93 404.86 111.94
36.85 2808 1072 1072
pship Posthypnotically 30036 10001 51.08 246.25 113.11
23.40 1094 653 547
pship Surrender 30115 10005 168.00 407.02 111.83
22.59 972 429 429
pship Gentled 30076 10003 185.01 113.94 97.67
24.48 36 109 18
pship Rabbles 30093 10004 229.81 487.04 108.29
42.88 383 209 191
pship Seriation 30073 10003 183.80 325.10 124.51
24.40 1717 1019 858
pship Implorer 30139 10006 62.57 238.08 57.25
19.53 1494 879 747
pship Empurpling 30084 20044 78.70 321.24 42.18
27.62 802 684 401
pship Handbooks 30117 10005 68.68 175.90 34.84
32.50 973 331 331
pship Bear 30016 10000 138.51 119.33 120.19
21.32 562 365 281
pship Chromosomal 30049 10002 119.08 224.26 42.36
26.19 749 345 345
pship Onenesses 30085 10004 84.72 396.05 94.05
18.71 11 259 5
pship Adaptometer 30075 10003 134.10 367.40 48.98
43.77 1105 279 279
pship Wordings 30070 20038 191.35 225.45 47.43
21.27 438 161 161
pship Viceroy 30054 10002 237.67 175.17 57.90
39.02 1131 556 556
pship Superstitious 30004 20004 247.22 276.35 96.06
18.18 221 101 101
pship Magniloquence 30123 20056 187.59 438.63 82.47
43.79 2182 775 775
pship Whiteheads 30104 20049 129.50 153.89 65.36
25.91 1415 863 707
pship Botched 30090 10004 150.85 413.99 34.21
19.44 595 174 174
pship Diagnosing 30052 10002 204.81 453.41 107.95
27.25 818 449 409
pship Religiosity 30024 20011 155.85 177.66 104.14
31.93 533 307 266
pship Licentiates 30129 20062 129.61 359.58 37.59
29.66 282 170 141
pship Peepshows 30009 10000 96.71 288.20 56.91
19.94 680 604 340
pship Revolves 30094 10004 82.66 181.46 53.96
26.43 536 636 268
pship Unholiest 30106 20051 116.08 230.18 42.86
16.19 1503 407 407
pship Jimmies 30065 20033 141.02 183.33 111.90
38.31 2164 1060 1060
pship Guile 30072 10003 178.18 450.47 93.33
18.71 1094 503 503
pship Inconclusive 30010 10000 166.14 165.92 96.90
44.04 1053 281 281
pship Assiduity 30125 20058 97.38 347.03 124.00
41.45 1687 522 522
pship Reboot 30017 10000 78.97 271.81 112.55
31.98 2093 858 858
pship Eikon 30013 10000 154.04 216.85 110.89
26.62 2989 850 850
pship Sumptuousness 30020 20007 76.84 250.94 68.86
30.88 2080 539 539
pship Expatiators 30050 10002 219.63 499.53 129.80
40.70 2604 859 859
pship Squintier 30042 20021 77.26 241.83 94.63
36.19 1085 571 542
pship Dysfunctional 30092 10004 88.94 453.79 39.83
19.92 1562 930 781
pship Polar 30096 10004 52.56 163.51 118.75
31.30 752 1006 376
pship Vibrational 30056 10002 176.42 328.81 96.76
19.71 1532 866 766
pship Attest 30018 10000 165.84 201.33 30.24
17.84 1089 628 544
pship Aureately 30150 10007 88.88 302.31 83.77
28.95 1395 649 649
pship Perorations 30133 20066 178.97 190.50 95.46
43.33 504 419 252
pship Overjoying 30058 10002 158.12 398.78 46.43
20.00 114 157 57
pship Pommel 30060 20028 68.09 428.33 66.28
35.24 1412 361 361
pship Ninepins 30127 20060 160.97 193.97 90.34
15.58 557 198 198
pship Diseasing 30122 20055 62.54 394.85 99.03
16.06 2342 756 756
pship Censers 30040 20019 63.53 401.65 124.86
15.45 2535 1021 1021
pship Capacitated 30025 20012 109.09 102.99 128.02
40.23 1502 1050 751
pship Overvaluing 30033 10001 85.38 136.57 93.15
37.25 430 179 179
pship Honey 30089 10004 85.11 143.12 60.24
44.32 2102 688 688
pship Storehouse 30099 10004 141.90 216.90 90.89
26.90 236 517 118
pship Workingman 30140 20072 210.84 264.38 124.54
39.58 697 352 348
pship Kakogenic 30152 10007 188.06 220.13 82.99
18.27 53 143 26
pship Diallers 30035 10001 235.80 458.57 118.37
42.08 878 348 348
pship Spates 30136 20069 184.00 227.31 66.51
24.63 511 147 147
pship Vituperate 30142 20074 78.85 422.10 73.78
16.93 674 462 337
pship Permeable 30083 20043 217.01 134.92 85.33
20.63 1018 957 509
pship Eucalyptus 30039 10001 63.29 390.28 45.32
17.36 401 180 180
pship Victim 30137 20070 50.02 400.34 71.11
25.46 602 325 301
pship Avenue 30005 20005 77.99 323.98 87.63
34.32 55 381 27
pship Opiates 30059 10002 63.42 376.63 30.48
36.96 103 179 51
pship Microstate 30046 20025 98.73 275.96 54.33
38.36 1278 340 340
pship Snowcaps 30126 20059 234.63 400.94 111.51
35.81 1289 443 443
pship Immobilizing 30015 10000 215.90 365.65 118.21
24.75 411 890 205
pship Reinstall 30043 20022 169.19 347.31 121.80
37.21 267 639 133
pship Grantsmanship 30119 10005 54.26 235.49 104.99
18.62 2148 982 982
pship Artwork 30007 10000 119.89 175.76 43.26
25.81 988 562 494
pship Creepage 30100 20045 156.45 208.68 64.56
28.80 1977 633 633
pship Reship 30034 10001 67.05 373.72 112.93
21.55 3269 842 842
pship Nonsupport 30156 10007 168.34 167.63 44.71
17.24 354 1055 177
pship Reputation 30030 20017 179.62 246.03 55.29
31.33 1656 811 811
pship Meshes 30022 20009 238.96 490.17 106.71
23.61 426 149 149
pship Unhonored 30118 10005 67.40 280.84 102.58
40.89 110 420 55
pship Clunked 30074 10003 129.81 141.92 121.15
26.23 2737 854 854
pship Finites 30063 20031 242.45 236.18 104.04
32.10 1959 505 505
pship Cunnings 30144 20076 78.31 454.83 111.09
34.36 940 287 287
pship Imbed 30066 20034 84.19 173.20 58.87
39.05 121 281 60
pship Radiator 30141 20073 138.49 449.59 44.10
27.55 857 260 260
pship Firemen 30021 20008 230.26 326.33 77.34
17.46 365 262 182
pship Conservable 30026 20013 172.87 367.40 68.32
28.17 3069 1080 1080
pship Lectured 30027 20014 248.46 252.76 31.23
20.74 420 435 210
pship Clutchy 30019 10000 181.84 165.90 42.49
42.33 1046 951 523
pship Compensatively 30078 10003 184.16 269.59 30.51
17.00 562 519 281
pship Peckers 30159 10007 108.75 144.00 98.04
30.49 673 327 327
pship Monad 30086 10004 156.59 217.54 49.35
15.68 3414 919 919
pship Vanadiums 30110 10005 57.92 165.86 101.13
44.16 231 127 115
pship Snowily 30045 20024 163.08 355.68 75.13
29.52 1298 618 618
pship Vegetates 30037 10001 241.75 135.23 42.30
23.38 461 787 230
pship Fancies 30101 20046 77.47 321.55 96.50
37.66 3530 1071 1071
pship Hangers 30081 20041 71.99 302.09 97.89
34.00 2277 973 973
pship Cypresses 30008 10000 104.89 427.23 69.21
21.77 2548 662 662
pship Cementer 30028 20015 190.04 402.17 95.90
40.33 59 112 29
// cship name index parent(dock/port) weight length width draft
cargoWeight cargoVolume cargoValue
// cship <string> <int> <int> <double> <double> <double>
<double> <double> <double> <double>
cship Exacts 40006 10000 204.28 155.31 90.92
29.90 129.42 162.66 526.76
cship Tackiest 40122 10006 62.29 421.14 82.77
31.36 106.65 113.21 794.24
cship Exposes 40047 10002 208.21 125.68 48.40
21.84 103.46 140.42 844.18
cship Rednesses 40053 10002 125.23 165.55 70.81
30.62 31.11 175.15 697.92
cship Potteries 40101 10005 162.82 447.76 69.33
43.58 183.77 120.96 155.60
cship Grantsmen 40151 10007 202.11 351.90 92.85
19.87 101.00 178.25 578.57
cship Nightcaps 40060 10003 92.38 329.50 42.79
15.75 193.14 106.71 540.26
cship Mahjongg 40086 10004 82.15 215.62 36.86
29.29 141.09 183.48 512.73
cship Infinite 40085 10004 172.14 449.21 78.07
25.29 208.41 173.72 893.75
cship Cuprous 40129 10006 98.48 238.72 48.93
27.60 40.97 135.78 64.45
cship Caviars 40026 10001 168.25 402.36 49.96
28.00 139.98 191.39 891.63
cship Maybushes 40098 10004 119.99 379.10 38.77
43.81 173.05 145.49 579.97
cship Heptarchs 40100 10005 137.79 314.32 77.97
44.54 92.10 117.94 372.28
cship Bowlegs 40003 10000 188.92 312.94 46.37
41.67 149.39 175.56 757.07
cship Subcivilizations 40130 10006 145.98 145.37 84.44
35.74 207.61 196.25 659.30
cship Backslaps 40104 10005 212.55 163.77 34.00
23.31 110.02 117.49 859.40
cship Comics 40088 10004 196.52 127.67 46.10
40.28 81.62 170.62 536.63
cship Absenters 40156 10007 136.12 116.29 114.55
31.46 179.41 183.56 522.19
cship Gurgling 40004 10000 135.74 408.20 111.60
19.40 38.39 169.32 457.82
cship Mensurative 40152 10007 90.81 159.87 71.84
16.57 219.20 163.44 222.24
cship Wolfers 40019 10000 142.76 140.05 46.76
32.88 66.14 128.23 744.87
cship Gymnastic 40032 10001 204.95 241.19 69.91
37.34 111.95 165.31 91.65
cship Poller 40043 10002 237.55 313.76 127.73
25.35 143.03 152.70 1003.48
cship Prophylactics 40068 10003 76.31 182.99 102.82
18.46 20.63 107.31 828.78
cship Thready 40134 10006 87.66 403.75 34.86
37.99 189.90 190.33 387.33
cship Civvy 40113 10005 56.65 481.22 53.61 27.75
75.41 142.48 804.60
cship At 40083 10004 193.29 123.22 103.48
17.40 21.56 125.24 35.00
cship Changed 40044 10002 144.77 299.94 67.20
36.03 88.45 101.71 391.33
cship Yachtsmanship 40029 10001 174.16 125.15 118.85
41.31 80.57 155.71 695.64
cship Playtimes 40159 10007 209.89 320.01 91.04
33.73 186.87 146.19 117.54
cship Terminatory 40105 10005 106.88 286.41 59.76
22.27 179.25 199.82 668.70
cship Coordinates 40017 10000 201.17 270.51 49.88
20.09 35.27 134.70 39.92
cship Toothpicks 40153 10007 193.39 346.14 66.46
42.61 169.91 182.51 645.11
cship Sigmoidal 40107 10005 182.33 360.89 86.68
30.70 128.33 145.07 276.50
cship Refashion 40002 10000 147.05 227.77 95.16
34.84 46.51 135.85 272.39
cship Titbit 40090 10004 142.98 410.47 73.53
29.46 80.65 175.02 112.38
cship Banged 40121 10006 173.26 103.52 69.74
26.31 218.28 161.63 532.59
cship Druidisms 40077 10003 162.41 205.20 121.78
38.40 81.54 100.68 184.04
cship Reencounter 40138 10006 107.72 344.40 123.10
24.21 120.58 188.60 503.87
cship Sinusoids 40066 10003 94.38 363.07 100.98
33.86 97.95 122.69 684.70
cship Reconcilable 40076 10003 109.64 437.70 84.14
27.02 124.12 115.89 960.17
cship Peacefulness 40056 10002 90.98 101.85 90.40
28.71 73.53 143.02 635.32
cship Safeguarding 40148 10007 245.76 199.94 112.26
36.15 176.00 161.11 823.24
cship Disinfestation 40048 10002 126.84 403.20 129.31
38.79 164.82 142.23 79.10
cship Oversees 40137 10006 172.42 349.71 55.97
33.97 109.56 137.00 286.30
cship Lithias 40099 10004 101.21 340.47 82.45
38.00 127.26 177.08 742.86
cship Cardholder 40063 10003 86.93 374.32 84.39
24.17 195.28 106.48 823.14
cship Quieters 40123 10006 183.76 497.61 90.99
33.95 160.06 104.34 370.31
cship Rankness 40119 10005 118.05 374.52 40.92
43.02 194.21 187.14 366.67
cship Sonorous 40000 10000 105.71 381.88 121.16
25.87 172.05 104.34 946.22
cship Persuades 40011 10000 150.02 255.24 122.29
26.37 72.66 172.84 171.29
cship Devolves 40155 10007 230.99 285.02 34.86
41.75 179.08 163.58 850.64
cship Hierophant 40132 10006 210.83 207.83 96.47
36.09 143.03 135.42 80.27
cship Spouter 40135 10006 175.39 268.53 95.89
29.91 107.50 118.46 86.82
cship Nomenclatures 40024 10001 81.45 452.03 82.50
23.87 29.47 160.85 60.44
cship Briefcases 40115 10005 212.77 327.84 125.69
26.93 151.61 111.27 173.00
cship Bioclimatology 40067 10003 183.45 127.48 105.61
17.33 61.48 111.35 327.71
cship Psychologies 40142 10007 157.06 382.77 50.53
23.47 159.09 142.57 327.31
cship Onomatopoetic 40092 10004 225.19 463.74 62.26
36.02 209.03 178.12 278.16
cship Debugged 40028 10001 222.07 455.95 92.64
41.47 123.75 176.58 251.91
cship Classifiable 40126 10006 99.44 308.06 37.88
31.55 189.80 177.19 911.49
cship Casks 40034 10001 125.83 198.57 113.07
21.84 66.76 183.55 683.57
cship Germanies 40128 10006 82.37 272.13 39.91
19.65 180.10 185.85 99.53
cship Popularizing 40082 10004 50.97 226.27 91.83
36.32 67.61 164.45 786.41
cship Monochromes 40030 10001 150.20 430.95 62.52
30.25 78.82 123.32 998.23
cship Replayed 40139 10006 210.84 328.84 62.47
23.96 173.89 184.20 499.73
cship Fingering 40046 10002 227.85 362.79 42.90
39.33 33.57 133.21 884.15
cship Knowing 40009 10000 196.30 104.33 80.78
25.18 95.59 136.57 638.63
cship Crotchets 40064 10003 138.75 413.77 41.11
37.13 36.06 157.54 153.39
cship Biotical 40001 10000 84.62 414.56 113.63
41.03 38.11 120.02 225.05
cship Halving 40052 10002 230.02 439.22 99.79
27.13 128.10 115.42 766.98
cship Phlegmy 40120 10006 237.29 458.68 119.69
36.52 91.37 111.39 801.36
cship Currycombs 40147 10007 193.26 208.56 48.89
24.96 92.50 134.17 327.19
cship Overstepped 40093 10004 190.81 334.12 35.37
40.39 30.95 148.93 992.81
cship Reimposing 40070 10003 219.19 230.30 58.36
32.91 161.17 177.81 913.18
cship Brutes 40069 10003 219.16 107.10 53.82
21.66 23.80 154.23 608.25
cship Piecemeal 40075 10003 199.66 374.37 126.59
33.34 131.51 121.84 609.94
cship Botany 40145 10007 169.16 257.35 53.60
19.23 198.53 133.19 376.07
cship Selfhoods 40140 10007 248.36 194.41 118.81
20.58 190.24 118.54 345.49
cship Ladykin 40111 10005 160.16 179.87 45.89
17.89 174.86 133.18 267.16
cship Skirmishers 40072 10003 243.07 477.38 98.01
21.87 76.79 114.11 472.53
cship Unpriced 40106 10005 205.06 296.87 33.95
36.73 45.08 122.26 327.62
cship Sorties 40124 10006 190.46 120.08 95.42
21.03 79.69 122.29 275.37
cship Segno 40103 10005 245.25 210.66 59.94
15.14 184.29 100.03 817.91
cship Ostensibility 40005 10000 167.00 153.16 109.42
33.92 112.15 106.89 320.20
cship Fantod 40049 10002 161.72 389.62 105.12
24.58 112.31 106.05 658.33
cship Lacings 40018 10000 179.29 276.78 107.75
38.31 27.46 182.56 818.39
cship Resumes 40059 10002 79.23 285.48 66.70
40.50 183.45 175.74 952.46
cship Reb 40054 10002 213.23 192.21 111.85
19.80 175.81 102.51 98.05
cship Dixieland 40133 10006 144.07 320.60 35.38
20.95 129.05 107.65 999.24
cship Doubtless 40039 10001 193.02 232.48 70.27
30.05 29.70 148.31 671.48
cship Mouldier 40125 10006 84.77 419.56 35.32
25.09 109.84 127.40 121.98
cship Bismuths 40071 10003 76.28 453.66 60.43
24.52 99.13 193.80 68.43
cship Partridges 40150 10007 106.18 178.74 104.28
32.68 83.60 173.72 105.15
cship Superconductors 40045 10002 104.40 265.26 125.59
17.42 74.55 105.43 815.88
cship Antiparticles 40015 10000 83.46 102.54 50.65
39.96 140.71 115.22 179.84
cship Suicide 40149 10007 70.89 464.07 121.70
40.75 36.79 196.47 614.66
cship Landslip 40016 10000 59.36 299.05 103.05
34.93 65.26 150.58 108.04
cship Medico 40041 10002 158.47 404.56 69.05
29.07 194.62 172.98 304.61
cship Thirteenths 40108 10005 181.63 485.93 125.28
37.52 172.52 122.12 386.52
cship Uglifying 40010 10000 124.54 270.72 67.40
16.20 175.14 116.08 596.39
cship Emphysema 40013 10000 214.54 120.52 48.96
22.03 130.62 142.53 695.18
cship Blasts 40127 10006 203.70 320.83 63.78
28.96 172.55 115.96 280.31
cship Wyverns 40080 10004 116.72 157.57 80.01
29.99 92.56 110.20 469.90
cship Blossomed 40027 10001 133.06 174.62 83.58
15.05 61.19 104.52 655.23
cship Dreadnoughts 40014 10000 200.50 267.25 33.17
29.69 173.51 138.35 477.20
cship Endorsements 40116 10005 209.83 463.52 106.80
19.94 53.87 112.67 31.79
cship Tattooing 40087 10004 90.01 289.64 68.23
26.14 173.09 181.04 372.75
cship Annul 40089 10004 231.88 385.12 90.66
42.99 126.59 152.23 673.70
cship Endeavor 40012 10000 179.42 407.28 91.53
38.02 69.86 113.39 981.89
cship Northeasterly 40036 10001 215.98 417.74 57.99
37.11 40.76 155.39 325.76
cship Lushed 40158 10007 238.51 345.53 37.23
32.35 161.05 149.41 114.42
cship Vestees 40025 10001 182.12 467.92 96.98
26.30 102.94 163.25 192.35
cship Avouching 40057 10002 152.60 122.20 107.05
19.35 172.37 188.13 784.84
cship Oculi 40031 10001 142.41 417.18 46.27
31.48 64.32 109.85 117.89
cship Retraction 40038 10001 78.56 152.52 70.92
27.65 152.77 126.76 81.74
cship Overexpose 40102 10005 126.98 134.16 83.13
24.64 109.33 107.20 852.04
cship Dishonorable 40061 10003 229.01 457.04 95.93
18.68 148.62 130.53 143.05
cship Desalt 40084 10004 188.60 217.03 106.30
36.32 136.14 171.68 822.82
cship Mercuries 40074 10003 80.83 499.08 80.19
31.82 107.59 147.25 178.46
cship Priorates 40109 10005 174.88 337.57 85.62
43.86 81.87 124.66 26.10
cship Arbitration 40079 10003 109.14 225.30 43.23
19.85 141.35 141.58 975.17
cship Untranscendentally 40023 10001 225.86 339.56 42.38
23.96 169.69 111.73 964.98
cship Empresses 40110 10005 151.24 235.23 83.63
35.22 137.44 198.94 364.63
cship Eyesight 40035 10001 168.48 442.64 70.64
20.97 218.88 127.48 29.20
cship Steamships 40050 10002 145.51 172.45 75.20
25.49 141.02 145.37 521.56
cship Graspingness 40154 10007 131.60 176.57 110.11
30.05 104.33 193.03 503.13
cship Morn 40078 10003 220.16 135.84 56.94
35.95 219.70 106.36 429.19
cship Baptizes 40065 10003 76.93 306.06 114.11
31.95 75.07 193.68 698.17
cship Garish 40095 10004 207.88 174.05 74.40
22.52 128.99 164.10 956.22
cship Purulence 40097 10004 64.44 192.60 93.98
30.40 87.55 107.18 80.95
cship Deputed 40007 10000 234.02 290.28 92.17
25.65 196.36 199.55 891.46
cship Overspecializes 40081 10004 175.39 442.91 95.07
19.04 137.93 188.05 745.93
cship Novelties 40055 10002 105.93 221.93 119.40
22.98 74.79 171.48 303.41
cship Messes 40051 10002 81.74 150.04 36.78
27.46 194.84 179.69 392.01
cship Overscrupulousness 40020 10001 225.37 275.02 32.06
25.92 52.46 175.81 331.25
cship Hotchpotch 40143 10007 230.79 158.44 46.63
34.19 40.98 112.01 396.04
cship Incongruity 40118 10005 53.77 358.48 100.94
17.49 197.60 131.13 657.48
cship Subletting 40096 10004 208.06 335.92 35.58
25.31 127.55 142.37 619.08
cship Feared 40073 10003 142.46 324.16 122.80
44.24 103.00 100.02 697.91
cship Wilding 40136 10006 240.80 103.77 128.45
34.06 33.58 176.80 889.35
cship Flatcars 40114 10005 241.66 320.95 86.65
32.42 201.96 177.38 243.88
cship Bedazzle 40117 10005 71.71 474.53 114.32
43.79 42.05 163.87 36.13
cship Eulogise 40033 10001 81.16 471.54 35.23
22.10 218.43 109.58 44.85
cship Alloy 40062 10003 101.13 354.22 96.37
36.99 174.73 174.33 420.02
cship Maligns 40042 10002 57.98 175.24 45.37
32.54 195.49 111.61 329.30
cship Defacer 40022 10001 118.28 103.65 121.15
26.26 57.32 158.22 976.87
cship Weensiest 40131 10006 53.81 306.62 74.52
21.02 69.41 102.63 36.14
cship Approves 40058 10002 67.73 347.43 85.31
16.94 204.51 188.86 837.81
cship Ophthalmologies 40037 10001 134.76 320.91 37.24
19.12 131.68 184.80 505.80
cship Streptococcal 40008 10000 235.83 387.87 103.99
36.40 21.29 152.86 50.90
cship Vanitied 40094 10004 118.19 462.90 92.19
26.85 178.82 167.23 295.00
cship Unexpressed 40040 10002 101.10 398.20 95.79
23.43 137.23 163.08 313.50
cship Indoctrinating 40091 10004 135.73 352.42 115.86
42.46 168.53 146.79 63.89
cship Overgeneralization 40157 10007 156.42 315.02 54.53
43.65 33.00 134.94 1007.99
cship Eons 40141 10007 153.44 127.65 115.95
38.00 29.51 156.04 356.89
cship Anemometer 40021 10001 58.69 492.47 92.97
22.32 132.32 111.58 20.49
cship Preachier 40112 10005 108.99 348.85 121.66
28.19 218.89 182.93 404.52
cship Implacably 40146 10007 176.41 206.01 55.47
28.37 195.73 183.07 839.66
cship Rotguts 40144 10007 144.82 167.41 78.34
15.09 170.10 104.26 107.96
// person name index parent skill
// person <string> <int> <int> <string>
person Eddie 50035 10004 clerk
person Margie 50040 10004 captain
person Eva 50029 10003 driver
person Jared 50023 10003 cleaner
person Darrel 50076 10007 inspector
person Andre 50073 10007 inspector
person Ellen 50017 10002 crew
person Angelina 50074 10007 driver
person Kristy 50001 10000 inspector
person Estelle 50048 10005 mate
person Meghan 50047 10005 stevedore
person Johnny 50072 10007 carpenter
person Lance 50059 10006 craneOperator
person Lewis 50043 10005 janitor
person Rudolph 50056 10006 mate
person Marguerite 50010 10001 engineer
person Sam 50051 10005 craneOperator
person Lewis 50060 10006 mechanic
person Cassandra 50050 10005 painter
person Gloria 50045 10005 clerk
person Minnie 50041 10004 craneOperator
person Conrad 50006 10001 electrician
person Kendra 50028 10003 carpenter
person Jerald 50009 10001 electrician
person Jay 50002 10000 crew
person Doreen 50000 10000 janitor
person Laurie 50020 10002 janitor
person Trevor 50025 10003 stevedore
person Kim 50042 10004 mechanic
person Melanie 50011 10001 painter
person Juana 50003 10000 engineer
person Brittany 50066 10007 janitor
person Eva 50030 10003 inspector
person Sammy 50013 10001 clerk
person Taylor 50036 10004 captain
person Lynette 50021 10002 cleaner
person Pam 50005 10000 cleaner
person Julia 50024 10003 stevedore
person Sheldon 50052 10006 stevedore
person Sonya 50015 10002 crew
person Ed 50067 10007 mate
person Ray 50071 10007 clerk
person Clyde 50037 10004 painter
person Marcia 50044 10005 painter
person Cameron 50004 10000 carpenter
person Christine 50026 10003 clerk
person Joan 50007 10001 mate
person Bruce 50038 10004 craneOperator
person Darlene 50077 10007 mechanic
person Wendy 50062 10006 driver
person Grace 50053 10006 crew
person Camille 50046 10005 captain
person Theodore 50022 10002 engineer
person Moses 50065 10006 engineer
person Molly 50064 10006 electrician
person Cassandra 50054 10006 carpenter
person Preston 50075 10007 craneOperator
person Krista 50012 10001 painter
person Pat 50033 10004 cleaner
person Alvin 50069 10007 electrician
person Monica 50057 10006 crew
person Nadine 50058 10006 janitor
person Lucia 50078 10007 carpenter
person Marion 50055 10006 driver
person Rosemary 50032 10003 stevedore
person Scott 50031 10003 carpenter
person Martin 50034 10004 janitor
person Michele 50019 10002 craneOperator
person Wendy 50049 10005 captain
person Conrad 50070 10007 mate
person Nicholas 50027 10003 mate
person Donnie 50039 10004 painter
person Cedric 50061 10006 cleaner
person George 50068 10007 electrician
person Keith 50008 10001 crew
person Phyllis 50063 10006 mechanic
person Francis 50018 10002 janitor
person Wilbert 50016 10002 craneOperator
person Ronnie 50014 10002 clerk
// job name index parent duration [skill]* (zero or more,
matches skill in person, may repeat)
// job <string> <int> <int> <double> [<string>]*
job Job_90_29_24 60017 30009 20.02 engineer
carpenter
job Job_11_45_73 60214 30070 58.24 driver
job Job_83_87_25 60068 30021 103.62 driver captain
cleaner
job Job_16_90_60 60294 40082 105.40 clerk stevedore
cleaner
job Job_86_15_87 60443 30154 102.39 electrician
inspector
job Job_81_67_20 60117 40025 24.46 engineer
stevedore janitor
job Job_90_41_62 60000 30000 105.45 mate
job Job_96_32_37 60079 30024 61.82 electrician driver
stevedore
job Job_77_71_86 60171 40043 89.79 driver
craneOperator stevedore engineer
job Job_43_56_61 60123 40029 89.06 inspector janitor
job Job_32_31_18 60241 40071 75.90 electrician
job Job_71_18_35 60118 40027 36.85 crew
job Job_65_20_54 60394 30128 117.57 driver cleaner
job Job_63_27_19 60222 30079 36.57 mechanic cleaner
job Job_82_99_75 60065 40018 85.28
job Job_97_49_40 60480 40156 49.81 cleaner
job Job_38_15_74 60437 30148 26.45 clerk
job Job_73_72_58 60396 30135 57.95 mate
job Job_62_92_52 60131 40033 85.44
job Job_28_33_73 60261 30084 87.37
job Job_59_11_67 60052 40010 103.18 craneOperator
job Job_37_66_66 60475 40154 41.44
job Job_85_33_94 60043 40002 63.63
job Job_10_12_64 60039 40000 72.16 cleaner clerk
job Job_53_73_49 60361 40105 25.55 craneOperator
job Job_83_76_26 60386 30122 92.88
job Job_63_28_78 60004 30002 110.54
job Job_90_69_27 60232 40066 98.26 clerk
job Job_70_48_71 60207 30066 35.85
job Job_77_90_52 60273 30090 63.70
job Job_85_34_13 60212 30068 107.64 painter
job Job_24_45_88 60418 40133 43.07 clerk
job Job_23_82_51 60462 40144 67.48 engineer
job Job_29_41_13 60215 30072 109.01 engineer
mechanic
job Job_27_69_92 60270 30089 35.22
job Job_20_29_30 60110 40022 119.64 painter painter
clerk
job Job_77_26_45 60272 30090 73.35 stevedore
job Job_51_27_26 60166 40042 74.00 engineer driver
mate
job Job_20_69_96 60146 30048 32.44 stevedore clerk
job Job_52_88_43 60094 30033 35.50 driver
job Job_27_94_62 60113 40024 101.12 carpenter
inspector
job Job_98_70_18 60190 40054 60.50 painter
job Job_66_74_78 60080 30025 59.60
job Job_43_24_64 60265 30086 33.74 carpenter
craneOperator mechanic
job Job_88_88_86 60378 40117 110.75 mechanic
job Job_25_18_44 60061 40017 81.17 driver
job Job_77_85_32 60398 30136 38.20
job Job_23_38_71 60072 30022 67.52 stevedore
craneOperator driver
job Job_48_54_86 60293 40082 89.28 mate
job Job_62_56_47 60162 30057 34.86 painter
job Job_69_74_83 60430 30140 67.72 janitor clerk
engineer
job Job_47_26_28 60313 40094 60.16
job Job_23_50_92 60271 30089 118.78 crew mechanic
electrician craneOperator
job Job_34_72_22 60041 40002 118.65 captain engineer
job Job_18_18_34 60434 30146 69.15 painter
electrician
job Job_14_34_75 60026 30013 43.58
job Job_86_49_93 60135 40037 41.78
job Job_69_83_89 60097 30036 34.04 cleaner
job Job_29_62_57 60432 30145 38.57
job Job_71_63_43 60134 40037 39.40 janitor mechanic
craneOperator
job Job_33_10_32 60126 40030 21.32 electrician
job Job_59_20_32 60370 40112 64.49 janitor cleaner
captain
job Job_40_36_41 60205 30062 30.62
job Job_80_19_30 60174 40046 111.56 janitor janitor
janitor
job Job_46_58_41 60463 40144 112.04 clerk
job Job_13_27_62 60156 30055 55.38 cleaner
job Job_31_59_17 60138 40039 79.16 engineer
job Job_73_36_31 60225 40061 32.47 cleaner
job Job_72_75_80 60346 30118 85.60
job Job_97_54_81 60413 40129 96.77 cleaner
craneOperator
job Job_29_18_55 60172 40045 80.98 captain painter
job Job_72_23_75 60157 30055 44.69 inspector
craneOperator
job Job_70_63_71 60287 30099 48.20 engineer
job Job_61_36_28 60216 30073 23.42 clerk carpenter
carpenter
job Job_81_86_65 60237 40068 106.02 janitor
electrician
job Job_43_29_56 60074 30023 110.28 inspector
stevedore
job Job_90_25_49 60299 40087 111.31 mechanic driver
job Job_29_26_44 60439 30149 73.11 mate
job Job_70_39_88 60105 30039 97.83 captain
job Job_56_38_95 60179 40048 47.55 driver inspector
job Job_27_65_34 60306 40091 101.07 stevedore
job Job_10_51_36 60469 40149 47.86 carpenter
job Job_79_65_24 60184 40049 23.27 captain carpenter
craneOperator
job Job_41_96_49 60005 30004 65.21 mate driver
job Job_43_19_35 60063 40018 25.06 painter crew
driver
job Job_57_58_17 60021 30012 56.12 painter inspector
job Job_23_19_57 60472 40150 23.76 electrician
electrician mate
job Job_57_11_81 60478 40155 44.89 crew
job Job_99_80_82 60431 30142 96.35 inspector driver
job Job_95_13_11 60436 30147 50.33
job Job_67_88_52 60415 40130 104.77 electrician
job Job_55_12_21 60165 40042 68.35 inspector
job Job_60_12_11 60116 40025 95.37 inspector
job Job_94_25_60 60128 40031 113.54
job Job_27_51_52 60417 40132 33.93 mate cleaner
cleaner
job Job_39_86_31 60320 30100 99.66 stevedore
job Job_98_45_58 60014 30008 111.61 cleaner
stevedore
job Job_84_55_56 60111 40023 100.12 carpenter
job Job_99_18_73 60204 30062 99.72 clerk
job Job_86_78_39 60268 30087 101.77
job Job_11_31_95 60003 30001 64.05
job Job_35_94_19 60274 30091 35.61 craneOperator
engineer
job Job_99_25_87 60132 40035 83.62
job Job_90_73_73 60086 30029 106.48 cleaner
job Job_91_41_92 60192 40054 33.80 carpenter crew
painter
job Job_11_75_88 60412 40129 86.46 craneOperator
mate inspector engineer
job Job_73_72_93 60484 40159 113.02
job Job_49_64_13 60053 40012 40.98 craneOperator
cleaner
job Job_88_32_95 60049 40008 28.63 crew mechanic
job Job_59_44_98 60093 30033 56.90
job Job_98_15_20 60211 30067 92.00 stevedore
job Job_66_68_90 60067 40019 96.67
job Job_22_61_18 60317 40099 118.40
job Job_11_54_30 60185 40051 64.82
job Job_66_19_93 60479 40155 34.14
job Job_57_71_19 60373 40114 96.36 driver
job Job_28_48_22 60009 30006 92.53 carpenter
job Job_98_54_95 60103 30038 111.76 inspector
job Job_48_10_77 60022 30012 38.62 mate
job Job_97_71_59 60178 40047 98.07
job Job_33_87_58 60305 40091 116.21
job Job_22_54_15 60064 40018 53.59
job Job_20_33_36 60083 30027 94.12
job Job_66_50_47 60298 40085 48.63 crew
job Job_56_38_54 60340 30115 49.53
job Job_78_12_15 60375 40115 61.77 clerk captain
job Job_49_68_95 60319 30100 25.42 driver captain
job Job_95_79_80 60127 40031 58.48 clerk
job Job_58_75_58 60252 40078 47.46 painter
craneOperator
job Job_28_16_31 60175 40046 33.96
job Job_12_86_96 60302 40089 98.13
job Job_49_30_43 60034 30016 107.56 crew
job Job_57_81_73 60029 30014 71.11 electrician
mechanic janitor stevedore
job Job_94_77_56 60385 30121 43.72 mechanic
inspector
job Job_81_84_80 60410 40126 110.57
job Job_63_94_18 60180 40048 63.59
job Job_59_67_97 60112 40023 20.52 electrician
job Job_55_91_89 60048 40007 72.30 inspector
job Job_70_69_24 60433 30145 34.14 craneOperator
job Job_57_28_22 60342 30116 91.01 stevedore
job Job_28_38_68 60038 40000 112.61 carpenter
job Job_57_21_89 60350 30119 115.68 driver engineer
stevedore
job Job_74_67_45 60380 40119 108.34 captain
job Job_10_49_69 60202 30060 47.95 engineer cleaner
driver
job Job_96_55_60 60016 30009 33.83 mechanic captain
job Job_28_13_40 60372 40113 103.93 cleaner
mechanic
job Job_95_49_54 60331 30107 46.14 stevedore
job Job_10_21_32 60256 30081 47.32 cleaner
job Job_62_60_21 60481 40156 115.94 janitor
electrician
job Job_96_36_96 60206 30063 72.82 painter captain
job Job_51_33_38 60077 30023 111.54 clerk
job Job_63_38_67 60210 30067 54.74 crew captain
job Job_71_77_79 60235 40068 102.49
job Job_42_98_50 60030 30014 81.20 electrician
job Job_26_67_62 60101 30037 112.07 engineer
job Job_63_58_45 60467 40149 109.11 inspector clerk
stevedore
job Job_82_70_67 60236 40068 108.78 driver painter
job Job_39_51_12 60334 30110 59.77
job Job_32_30_79 60147 30048 115.94 carpenter
job Job_42_33_22 60260 30083 20.44 painter clerk
driver
job Job_61_54_70 60335 30111 97.28 crew carpenter
mechanic
job Job_49_50_29 60364 40108 119.41 cleaner
job Job_84_27_87 60001 30000 62.50 janitor engineer
job Job_11_63_23 60452 40140 41.25 stevedore
job Job_88_47_38 60482 40157 34.21
job Job_21_16_13 60137 40038 32.07
job Job_95_20_45 60081 30025 24.14 mate driver
craneOperator
job Job_42_42_62 60194 40055 106.07 stevedore
job Job_45_17_19 60229 40064 103.35 inspector clerk
captain
job Job_59_72_25 60343 30116 82.75 crew mechanic
job Job_12_24_90 60476 40154 89.32 captain
job Job_53_26_90 60230 40064 59.24
job Job_51_45_61 60450 30159 89.10 clerk janitor mate
job Job_25_29_58 60124 40029 24.85 electrician
carpenter driver
job Job_44_58_23 60181 40049 116.18 electrician
job Job_70_23_75 60082 30027 42.63 driver janitor
captain
job Job_71_40_52 60253 40079 59.43 painter
job Job_50_39_85 60084 30028 20.71 janitor stevedore
job Job_30_37_79 60448 30158 48.08 captain clerk
job Job_66_97_27 60442 30153 44.86 stevedore
job Job_83_10_17 60141 30041 75.43 mate
job Job_68_51_95 60050 40009 51.17 craneOperator
mate cleaner
job Job_61_22_89 60035 30017 108.93 janitor
job Job_67_45_11 60057 40014 43.79 stevedore
electrician captain
job Job_20_97_42 60218 30075 35.03 janitor
job Job_47_74_80 60269 30088 98.78 crew
job Job_58_23_56 60051 40010 60.82 painter painter
job Job_51_11_53 60027 30014 34.81 electrician
job Job_54_66_24 60338 30114 74.55 stevedore
job Job_65_30_72 60321 30100 114.49 crew crew
mechanic
job Job_46_68_47 60059 40016 112.55 driver mechanic
job Job_42_88_68 60139 40039 117.60 inspector
inspector carpenter
job Job_60_91_85 60145 30046 115.87 captain janitor
job Job_79_73_28 60217 30074 84.86 crew janitor clerk
job Job_17_88_69 60325 30103 83.13 inspector
job Job_33_95_33 60169 40043 37.52 mate
job Job_30_36_22 60008 30006 68.43 engineer
job Job_75_16_77 60154 30054 71.59 mate clerk driver
job Job_54_47_72 60144 30043 38.90 janitor
job Job_15_89_41 60136 40038 82.83 driver cleaner
job Job_52_75_34 60033 30016 112.45 mate driver
job Job_17_24_80 60367 40109 84.74 driver
craneOperator painter
job Job_96_96_21 60301 40088 70.46 crew
craneOperator janitor
job Job_97_37_80 60389 30125 75.44
job Job_63_72_78 60073 30022 115.95
job Job_11_38_60 60428 40139 88.55
job Job_52_33_24 60006 30004 48.39 craneOperator
inspector
job Job_84_44_44 60012 30007 20.66
job Job_93_15_19 60405 40123 57.10 janitor
job Job_74_50_33 60078 30024 34.96 driver
job Job_42_23_59 60149 30051 82.55 carpenter
carpenter
job Job_93_57_54 60465 40146 34.02 painter
job Job_21_71_76 60283 30098 90.49 craneOperator
job Job_55_92_53 60327 30104 103.98
job Job_10_53_21 60336 30111 61.32 clerk driver
job Job_39_53_43 60091 30032 92.83 mechanic driver
driver
job Job_80_19_64 60435 30147 62.56 crew painter
painter
job Job_39_79_37 60076 30023 56.99 captain cleaner
job Job_20_59_98 60390 30126 42.01 engineer
job Job_67_80_99 60173 40045 96.97
job Job_25_16_92 60170 40043 98.03 stevedore
stevedore
job Job_86_82_23 60459 40142 43.95
job Job_72_18_61 60129 40031 86.11 engineer
mechanic
job Job_98_92_69 60458 40142 80.46 engineer
job Job_20_48_98 60363 40106 116.24 painter
job Job_88_94_91 60382 30120 81.13 crew
job Job_66_41_31 60278 30095 28.69 carpenter driver
job Job_23_80_95 60421 40134 62.52 craneOperator
janitor
job Job_89_78_63 60249 40077 49.63 captain carpenter
inspector
job Job_50_14_47 60193 40054 104.85 crew driver
job Job_44_99_52 60040 40001 33.01
job Job_45_85_40 60254 40079 89.52 crew
job Job_86_30_39 60186 40051 52.13 craneOperator
engineer
job Job_23_46_52 60100 30036 53.36 painter painter
job Job_35_23_79 60011 30007 88.57 mate electrician
carpenter captain
job Job_59_75_33 60308 40092 94.29
job Job_62_72_37 60046 40007 43.61 painter mechanic
electrician
job Job_90_98_68 60423 40137 59.03 painter crew
craneOperator
job Job_86_53_34 60010 30006 100.87 driver
job Job_12_73_50 60290 40081 81.41 stevedore
job Job_99_81_45 60198 40058 118.17
job Job_27_22_96 60420 40133 89.25 stevedore
job Job_60_57_92 60088 30031 87.07 craneOperator
job Job_29_13_11 60047 40007 73.16 captain clerk
job Job_83_78_23 60167 40042 24.82 captain mechanic
job Job_66_19_51 60140 30040 117.81
job Job_71_90_34 60339 30115 68.18 inspector
job Job_60_48_51 60297 40085 53.91 clerk inspector
job Job_10_66_32 60208 30066 31.11 driver cleaner
electrician painter
job Job_27_10_65 60164 40041 67.93 engineer
electrician cleaner
job Job_94_71_53 60326 30103 46.62 craneOperator
job Job_20_16_33 60098 30036 109.85 stevedore crew
engineer
job Job_44_40_52 60397 30136 118.39 mate clerk
job Job_76_84_83 60060 40016 35.45 janitor stevedore
driver
job Job_52_65_58 60304 40090 56.58 carpenter
job Job_49_22_71 60143 30043 59.55 painter
job Job_51_76_72 60120 40028 66.34
job Job_82_14_99 60085 30029 25.17
job Job_49_48_17 60125 40029 86.72 craneOperator
driver electrician electrician
job Job_90_34_61 60403 30139 51.72
job Job_19_46_46 60250 40077 81.20 captain engineer
job Job_41_95_70 60238 40069 67.43 captain captain
job Job_75_45_50 60318 40099 32.16 janitor
job Job_98_12_20 60341 30116 49.99 inspector
job Job_67_23_35 60468 40149 62.75 mechanic
job Job_10_70_32 60330 30107 52.50 inspector
job Job_28_68_67 60285 30099 87.77 mate crew
electrician
job Job_87_89_89 60224 40060 90.37 janitor
job Job_16_65_20 60447 30156 85.21 electrician
cleaner captain cleaner
job Job_84_49_28 60213 30068 69.62 janitor painter
inspector
job Job_71_82_47 60401 30138 35.06 captain crew
job Job_19_97_93 60329 30105 87.27 janitor
craneOperator
job Job_47_88_46 60189 40053 33.57 electrician
electrician
job Job_16_77_78 60474 40153 68.96 carpenter painter
job Job_43_16_65 60444 30154 38.30 captain
job Job_72_18_43 60177 40047 105.10 clerk
job Job_53_29_54 60441 30151 64.04 mate
job Job_70_22_33 60355 40101 72.82
job Job_27_41_83 60121 40028 36.12 mechanic crew
job Job_94_69_34 60024 30013 21.91
job Job_28_48_34 60424 40138 118.60 electrician mate
job Job_17_12_56 60392 30128 43.60
job Job_52_49_78 60351 30119 67.17 electrician
carpenter
job Job_38_79_92 60407 40126 63.20
job Job_80_28_84 60279 30096 39.49
job Job_25_98_83 60300 40087 69.15 painter
job Job_95_14_65 60353 40100 115.35 stevedore
job Job_25_80_38 60359 40103 55.64 crew engineer
job Job_99_38_52 60122 40028 117.86 janitor clerk
electrician inspector
job Job_77_62_23 60483 40158 60.92 electrician
painter
job Job_21_34_92 60188 40052 54.76 electrician
job Job_55_69_89 60328 30105 40.00 mate painter
job Job_45_29_52 60258 30083 59.78 mechanic painter
captain clerk
job Job_60_37_70 60257 30082 68.77 cleaner
job Job_31_44_66 60393 30128 105.25 captain
inspector
job Job_25_22_88 60311 40094 76.19 janitor
job Job_33_68_60 60102 30038 24.79 mechanic
job Job_89_41_30 60368 40112 101.02 cleaner
carpenter
job Job_67_88_95 60032 30015 44.07
job Job_62_72_35 60282 30098 51.51 mate crew
carpenter crew
job Job_17_64_73 60251 40078 22.32 driver
job Job_12_30_55 60115 40025 85.61 carpenter
job Job_91_57_52 60277 30093 113.01
job Job_69_98_39 60160 30056 62.17 mate cleaner
painter
job Job_89_35_85 60416 40132 52.22 clerk driver
driver
job Job_98_89_96 60295 40083 33.06 captain janitor
job Job_30_30_28 60322 30100 78.61 electrician
janitor
job Job_95_37_71 60168 40043 108.87 inspector mate
clerk
job Job_32_81_28 60187 40052 59.49 driver janitor
job Job_79_28_76 60019 30011 34.50 cleaner clerk
job Job_65_65_62 60240 40069 88.34 inspector janitor
janitor
job Job_75_21_11 60155 30055 108.17
job Job_32_94_85 60259 30083 52.46 crew janitor clerk
job Job_92_56_74 60201 40059 112.34 inspector
captain
job Job_83_19_77 60383 30120 57.33 crew electrician
painter
job Job_15_50_38 60352 40100 85.04 craneOperator
painter
job Job_76_91_48 60267 30087 105.60 painter
job Job_76_58_63 60427 40139 46.59
job Job_73_27_41 60477 40155 51.27 driver crew
painter
job Job_86_29_25 60395 30132 88.71 inspector
job Job_71_21_66 60150 30051 73.02 driver
job Job_96_56_17 60248 40077 84.39
job Job_67_61_14 60062 40017 27.67 captain
job Job_15_88_81 60020 30011 56.15
job Job_12_24_20 60058 40015 77.76 electrician
janitor
job Job_50_93_17 60209 30066 73.35
job Job_29_22_49 60161 30057 73.95 mechanic cleaner
job Job_18_57_74 60075 30023 105.05 carpenter
inspector
job Job_99_90_53 60227 40062 53.22
job Job_90_39_40 60419 40133 22.03 driver engineer
job Job_29_59_39 60449 30158 96.03 craneOperator
job Job_47_10_43 60018 30010 91.08
job Job_73_52_19 60220 30077 70.90 driver captain
janitor
job Job_82_86_63 60323 30102 107.92 mechanic
carpenter
job Job_44_41_60 60381 40119 106.96 janitor cleaner
janitor captain
job Job_10_13_95 60409 40126 91.60
job Job_52_22_16 60470 40150 87.65 electrician
cleaner
job Job_40_68_36 60369 40112 100.36 carpenter
painter
job Job_12_81_42 60275 30092 22.11 stevedore cleaner
job Job_75_45_93 60226 40061 75.69 mechanic
inspector
job Job_80_92_57 60332 30107 24.42 painter inspector
job Job_88_11_37 60360 40104 37.09
job Job_78_62_81 60357 40103 106.93 janitor
job Job_25_84_99 60108 40021 59.99 electrician
electrician cleaner cleaner
job Job_66_32_61 60429 30140 93.51
job Job_44_37_65 60466 40148 35.22 stevedore
job Job_91_25_17 60182 40049 101.09 engineer driver
job Job_96_34_14 60096 30035 31.66 cleaner driver
driver
job Job_72_89_32 60453 40140 77.54 painter
electrician
job Job_89_68_18 60133 40036 106.17 engineer
job Job_38_21_94 60426 40139 23.94 driver mate
craneOperator mate
job Job_85_57_18 60106 40020 96.74
job Job_98_60_12 60314 40095 96.90
job Job_70_25_25 60266 30086 47.73
job Job_42_95_45 60333 30109 49.52 mechanic
electrician painter
job Job_85_65_22 60296 40083 88.51 stevedore
mechanic clerk
job Job_45_85_32 60456 40141 45.86 electrician
job Job_18_17_26 60002 30000 118.89 carpenter mate
job Job_18_86_48 60291 40081 110.85 clerk
job Job_40_85_67 60239 40069 70.89 inspector
job Job_94_23_13 60440 30151 97.43 stevedore
job Job_72_23_32 60414 40129 22.95 driver stevedore
crew captain
job Job_69_24_67 60384 30121 112.81 carpenter
job Job_63_69_16 60315 40095 116.16 mate
job Job_93_11_29 60223 40060 116.24
job Job_55_35_38 60142 30043 51.21 electrician
job Job_69_10_74 60099 30036 43.41
job Job_84_63_97 60377 40116 113.56 stevedore
job Job_81_18_96 60408 40126 62.23 carpenter
job Job_33_45_12 60303 40089 71.58 carpenter
job Job_72_45_65 60451 30159 36.09 cleaner
job Job_80_95_79 60089 30031 103.68 mate mate mate
painter
job Job_49_39_76 60391 30126 110.88 mechanic
carpenter craneOperator
job Job_14_51_22 60015 30009 119.44 engineer
job Job_80_49_72 60247 40075 69.27 captain
job Job_60_12_92 60358 40103 88.61 crew
job Job_41_53_62 60464 40144 57.19 craneOperator
stevedore
job Job_89_12_57 60159 30056 91.87 mechanic
mechanic
job Job_55_96_82 60158 30056 25.06 crew painter
job Job_66_89_38 60354 40100 96.57 clerk
job Job_33_70_63 60243 40072 58.74 mate engineer
job Job_19_42_22 60242 40071 82.45
job Job_97_79_58 60280 30096 43.16 electrician
job Job_51_34_22 60028 30014 66.21 inspector painter
clerk
job Job_81_34_70 60070 30021 62.46
job Job_70_92_53 60151 30053 70.97 mate
job Job_65_76_40 60114 40024 71.89
job Job_21_58_18 60245 40074 104.62
job Job_52_62_78 60457 40141 23.76 cleaner captain
carpenter driver
job Job_93_16_41 60399 30137 33.01 clerk
job Job_84_95_90 60054 40012 67.74 engineer
job Job_66_16_82 60066 40019 85.26
job Job_31_73_17 60362 40106 82.80 carpenter
inspector janitor
job Job_66_94_36 60348 30118 84.99
job Job_53_21_44 60071 30022 57.09 stevedore driver
job Job_88_46_24 60244 40073 22.69 carpenter
job Job_66_11_46 60454 40140 58.04 electrician clerk
job Job_85_41_25 60055 40013 111.98
job Job_29_47_56 60056 40013 69.16 mechanic
job Job_57_15_79 60276 30092 107.69 clerk
job Job_18_85_65 60203 30062 116.26 mate painter
janitor
job Job_10_13_51 60013 30008 72.99 craneOperator
craneOperator janitor
job Job_80_99_95 60356 40101 73.16 driver janitor
inspector
job Job_42_12_17 60036 30017 24.09
job Job_34_30_94 60366 40109 37.47 janitor clerk
job Job_98_70_20 60316 40097 87.89 captain
job Job_26_27_87 60130 40032 105.42 inspector
job Job_76_81_52 60286 30099 31.01 mate
job Job_83_68_62 60183 40049 112.65 engineer cleaner
job Job_74_32_37 60092 30032 70.67 cleaner
electrician carpenter
job Job_74_43_13 60246 40074 70.90 engineer
job Job_27_67_83 60195 40055 106.65 electrician
engineer stevedore
job Job_92_40_19 60471 40150 33.79
job Job_95_95_48 60196 40056 32.60 janitor mechanic
job Job_29_70_96 60200 40059 81.55 craneOperator
engineer
job Job_51_44_27 60119 40027 42.17
job Job_71_13_10 60349 30119 84.23 crew
job Job_97_18_35 60312 40094 85.59 carpenter
craneOperator
job Job_12_62_59 60376 40115 96.74
job Job_94_75_57 60365 40108 118.51 engineer captain
mechanic mate
job Job_66_46_41 60104 30039 64.83 carpenter
engineer painter
job Job_25_78_84 60095 30034 37.26 mate
job Job_71_22_53 60109 40022 44.68 mechanic janitor
crew
job Job_56_68_94 60455 40141 89.04 clerk driver crew
job Job_87_72_95 60379 40118 70.45
job Job_79_88_92 60090 30031 115.42 janitor mate
job Job_36_12_90 60337 30111 26.98
job Job_74_30_21 60347 30118 54.50 carpenter
job Job_62_24_21 60007 30004 48.04
job Job_19_15_13 60310 40092 75.15 craneOperator
job Job_23_44_55 60176 40046 76.27 mechanic
job Job_67_90_44 60264 30085 104.00
job Job_18_73_51 60233 40066 32.67 stevedore
mechanic stevedore
job Job_56_32_31 60345 30117 113.35 janitor
electrician
job Job_64_72_30 60438 30148 118.38
job Job_73_49_99 60148 30050 58.78 engineer driver
job Job_93_47_27 60460 40143 35.48
job Job_35_32_94 60107 40021 31.38 mate stevedore
job Job_45_51_25 60400 30138 96.18 clerk painter
driver mechanic
job Job_84_13_93 60255 30080 46.63
job Job_66_77_34 60292 40081 35.27 engineer
stevedore
job Job_13_53_24 60163 30058 68.75 janitor stevedore
job Job_74_66_51 60281 30096 26.75 engineer
craneOperator
job Job_36_33_37 60307 40091 85.75 cleaner mechanic
stevedore
job Job_76_99_33 60228 40063 77.79 painter mechanic
mate
job Job_84_87_25 60197 40057 23.57 mechanic janitor
job Job_48_63_35 60025 30013 101.85 stevedore clerk
job Job_75_31_35 60231 40065 84.59 craneOperator
engineer crew mechanic
job Job_21_78_97 60191 40054 88.85 inspector
carpenter electrician
job Job_50_82_20 60309 40092 49.18 captain clerk
electrician
job Job_26_75_61 60262 30085 31.29 painter
job Job_27_95_38 60402 30139 22.85
job Job_51_26_10 60284 30098 99.72
job Job_43_95_75 60411 40128 86.49
job Job_76_32_48 60371 40113 24.08 mate
job Job_64_98_44 60425 40139 37.33 driver mechanic
engineer
job Job_20_53_91 60044 40004 80.62 mate engineer
job Job_57_24_24 60087 30030 110.12 mechanic
inspector
job Job_76_93_50 60344 30117 31.30 engineer captain
electrician
job Job_15_63_71 60288 40080 33.02 mechanic
job Job_73_58_39 60037 30019 112.85 mate janitor
clerk
job Job_75_20_72 60234 40067 70.05 captain carpenter
driver crew
job Job_59_89_57 60289 40080 57.16 mechanic
job Job_50_24_68 60199 40058 29.85 painter mate
engineer
job Job_48_49_10 60221 30078 94.57 mate
job Job_46_87_24 60069 30021 32.35
job Job_44_55_47 60404 40123 96.65 carpenter
carpenter
job Job_48_71_26 60219 30076 103.82
job Job_96_15_79 60445 30154 27.99 electrician
stevedore craneOperator electrician
job Job_24_82_65 60045 40005 103.34 clerk mate
driver janitor
job Job_81_38_89 60422 40136 54.16
job Job_90_96_73 60031 30015 111.70 mechanic
janitor carpenter
job Job_21_13_68 60324 30102 65.56 captain captain
cleaner
job Job_67_65_20 60263 30085 100.71 painter captain
mate
job Job_11_51_16 60042 40002 110.27 carpenter
captain
job Job_50_90_63 60406 40125 106.28 electrician
job Job_76_43_56 60388 30124 100.28 stevedore
cleaner
job Job_56_36_36 60387 30123 31.87 painter engineer
job Job_49_22_27 60473 40153 61.88 electrician driver
job Job_40_11_91 60152 30053 109.08
job Job_27_58_29 60461 40143 76.14
job Job_54_10_47 60153 30053 70.73
job Job_16_46_93 60023 30013 65.20 captain mate
job Job_69_38_34 60374 40114 25.83
job Job_51_50_23 60446 30156 79.68 stevedore
carpenter
CreateSeaPortDataFile.javaCreateSeaPortDataFile.java// File: C
reateSeaPortDataFile.java
// Date: Jul 8, 2016
// Author: Nicholas Duchon
// Purpose: CMSC 335 new project
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
import java.io.File;
publicclassCreateSeaPortDataFile{
staticint nt =8;// number of ports
staticint nd =15;// number of docks per port + 5 (>0)
staticint np =20;// number of passenger ships per port
staticint nc =20;// number of cargo ships per port
staticint nj =5;// number of jobs per dock (>0)
staticint nn =30;// number of persons per port + 5
staticString filename ="aSPad.txt";
staticString portSpec =
"// port name index parent(null)n"+
"// port <string> <int> <int>n";
staticString dockSpec =
"// dock name index parent(port)n"+
"// dock <string> <int> <int>n";
staticString shipSpec =
"// ship name index parent(dock/port) weight length width draf
tn"+
"// ship <string> <int> <int> <double> <double> <double> <
double>n";
staticString cshipSpec =
"// cship name index parent(dock/port) weight length width draf
t cargoWeight cargoVolume cargoValuen"+
"// cship <string> <int> <int> <double> <double> <double>
<double> <double> <double> <double>n";
staticString pshipSpec =
"// pship name index parent(dock/port) weight length width dra
ft numPassengers numRooms numOccupiedn"+
"// pship <string> <int> <int> <double> <double> <double>
<double> <int> <int> <int>n";
staticString personSpec =
"// person name index parent skilln"+
"// person <string> <int> <int> <string>n";
staticString jobSpec =
"// job name index parent duration [skill]+ (one or more, matc
hes skill in person, may repeat)n"+
"// job <string> <int> <int> <double> [<string>]+n";
publicstaticvoid main (String[] args){
if(args.length >0) nt =Integer.parseInt (args [0]);
if(args.length >1) nd =Integer.parseInt (args [1]);
if(args.length >2) np =Integer.parseInt (args [2]);
if(args.length >3) nc =Integer.parseInt (args [3]);
if(args.length >4) nj =Integer.parseInt (args [4]);
if(args.length >5) nn =Integer.parseInt (args [5]);
MyWorld mw;
mw =newMyWorld();
// number of port, docks per port, num pass ships, num cargo shi
ps, jobs per dock, persons per port
mw.createRandomPorts (nt, nd, np, nc, nj, nn);
// System.out.println ("nn>>>>> Random world:n" + mw.t
oFileString());
ArrayList<MyThing> mwa =newArrayList<>();
mw.toArray (mwa);
java.util.Collections.sort(mwa);
try{
int type =0;
java.io.PrintStream pw =System.out;// comment out next l
ine to send output to console
pw =new java.io.PrintStream(newFile(filename));
pw.println ("// File: "+ filename);
pw.println ("// Data file for SeaPort projects");
java.util.Date date =new java.util.Date();
pw.printf ("// Date: %tcn", date);
pw.printf ("// parameters: %d %d %d %d %d %dn", nt, n
d, np, nc, nj, nn);
pw.printf ("// ports, docks, pships, cships, jobs, persons
n");
// shuffle within category
int start =0;
int end =0;
ArrayList<MyThing> sub =newArrayList<>();
ArrayList<MyThing> mta =newArrayList<>();
for(int i =1; i <7; i++){
sub.clear ();
while(start < mwa.size()&& mwa.get (start).index/10000< i) sta
rt ++;
end = start;
if(end >= mwa.size ())
continue;
while(end < mwa.size()&& mwa.get (end).index/10000== i){
sub.add (mwa.get(end));
end ++;
}
java.util.Collections.shuffle (sub);
mta.addAll (sub);
System.out.printf ("index: %d Sub: %sn", i,"sub?");
}// end for each category
mwa = mta;
for(MyThing mt: mwa){
if(mt.index/10000!= type){
pw.print ("n");
switch(mt.index/10000){
case1: pw.print (portSpec);
break;
case2: pw.print (dockSpec);
break;
case3: pw.print (pshipSpec);
break;
case4: pw.print (cshipSpec);
break;
case5: pw.print (personSpec);
break;
case6: pw.print (jobSpec);
break;
}// end switch
type = mt.index/10000;
}// end if changing type
pw.print (mt.toFileString());
}// end writing data file
}
catch(java.io.FileNotFoundException e){
System.out.println ("output file not found");
}
System.out.println ("done");
}// end main
}// end class CreateSeaPortDataFile
classMyWorldextendsMyThing{
ArrayList<MySeaPort> ports =newArrayList<>();
MyTime time =newMyTime(0);
publicvoid createRandomPorts (int n,int numDocks,int numPass,
int numCargo,int numJobs,int numPersons){
for(int i =0; i < n; i++)
ports.add (newMySeaPort(numDocks, numPass, numCarg
o, numJobs, numPersons));
}// end method createRandomPorts
publicvoid toArray (List<MyThing> ma){
for(MySeaPort mp: ports) mp.toArray (ma);
}// end toArray
}// end class MyWorld
classMyThingimplementsComparable<MyThing>{
static java.util.Random rn =new java.util.Random();
staticArrayList<String> skillNames =null;// to read file only on
ce
String name =null;
int index =0;
int parent =0;
publicMyThing(){}
void readSkillsFile (){
try{
skillNames =newArrayList<>();
Scanner sp =newScanner(newFile("skillNames.txt"));
while(sp.hasNext()) skillNames.add (sp.next());
System.out.println ("Skills File size: "+ skillNames.size());
}
catch(java.io.FileNotFoundException e){System.out.println ("ba
d file");}
}// end readWordsFile
void toArray (List<MyThing> mta){
mta.add (this);
}// end method toList
publicint compareTo (MyThing m){
return index - m.index;
}// end method compareTo > Comparable
publicString toFileString (){
return"";
}// default toFileString method in MyThing
}// end class MyThing
classMySeaPortextendsMyThing{
staticint indexNew =10000;
staticArrayList<String> portNames =null;
double latitude =0;
double longitude =0;
ArrayList<MyDock> docks =newArrayList<>();
ArrayList<MyShip> que =newArrayList<>();
ArrayList<MyShip> ships =newArrayList<>();
ArrayList<MyPerson> persons =newArrayList<>();
publicMySeaPort(int numDocks,int numPass,int numCargo,int n
umJobs,int numPersons){
if(portNames ==null) readPortsFile ();
name = portNames.get (rn.nextInt (portNames.size()));
index = indexNew++;
parent =0;
int remainingDocks = rn.nextInt (numDocks)+5;
while(remainingDocks >0&& numPass >0){
MyPassengerShip mps =newMyPassengerShip(true, numJobs);//
random ship
ships.add (mps);
MyDock md =newMyDock(true);// random dock
docks.add (md);
md.ship = mps;
md.parent = index;
mps.parent = md.index;
numPass --;
remainingDocks--;
}// end adding passenger ships first
while(numPass >0){
MyPassengerShip mps =newMyPassengerShip(true, numJobs);//
random ship
ships.add (mps);
que.add (mps);
mps.parent = index;
numPass --;
}// end remaining passenger ships
while(remainingDocks >0&& numCargo >0){
MyCargoShip mpc =newMyCargoShip(true, numJobs);// random
ship
ships.add (mpc);
MyDock md =newMyDock(true);// random dock
docks.add (md);
md.ship = mpc;
md.parent = index;
mpc.parent = md.index;
numCargo --;
remainingDocks--;
}// end adding passenger ships first
while(numCargo >0){
MyCargoShip mpc =newMyCargoShip(true, numJobs);// random
ship
ships.add (mpc);
que.add (mpc);
mpc.parent = index;
numCargo --;
}// end remaining passenger ships
for(int i =0; i < rn.nextInt (numPersons)+5; i++){
persons.add (newMyPerson(this));
}
}// end list of port names constructor - creates a random port
void readPortsFile (){
try{
portNames =newArrayList<>();
Scanner sp =newScanner(newFile("portNames.txt"));
while(sp.hasNext()) portNames.add (sp.next());
System.out.println ("Ports file size: "+ portNames.size());
}
catch(java.io.FileNotFoundException e){System.out.println ("ba
d file");}
}// end method readPortsFile
void toArray (List<MyThing> ma){
ma.add (this);
for(MyDock md: docks ) md.toArray (ma);
for(MyShip ms: ships ) ms.toArray (ma);
for(MyPerson mp: persons) mp.toArray (ma);
}// end toArray in MySeaPort
publicString toFileString (){
returnString.format ("port %s %d %dn", name, index,0);
}// end method toFileString
}// end class MySeaPort
classMyDockextendsMyThing{
staticint indexNew =20000;
MyShip ship =null;
publicMyDock(boolean f){
index = indexNew++;
name ="Pier_"+ index%2000;
}// end random ship constructor
publicString toFileString (){
String st ="";
st +=String.format (" dock %s %d %d %dn", name, index,
parent, ship.index);
return st;
}// end method toFileString
}// end class MyDock
classMyShipextendsMyThing{
staticArrayList<String> words =null;
double weight =0;
double length =0;
double width =0;
double draft =0;
MyTime arrivalTime =null;
MyTime dockTime =null;
ArrayList<MyJob> jobs =newArrayList<>();
publicMyShip(){}// end no-parameter constructor
publicMyShip(boolean t,int n){
if(words ==null) readWordsFile ();
name = words.get (rn.nextInt (words.size()));
weight =50+ rn.nextDouble ()*200;
length =100+ rn.nextDouble ()*400;
width =30+ rn.nextDouble ()*100;
draft =15+ rn.nextDouble ()*30;
}// create a random ship
void readWordsFile (){
try{
words =newArrayList<>();
Scanner sp =newScanner(newFile("shipNames.txt"));
while(sp.hasNext()) words.add (sp.next());
System.out.println ("Words File size: "+ words.size());
}
catch(java.io.FileNotFoundException e){System.out.println ("ba
d file");}
}// end readWordsFile
void toArray (List<MyThing> mta){
mta.add (this);
for(MyJob mj: jobs) mj.toArray (mta);
}// end method toList
publicString toFileString (){
String st ="";
st +=String.format (" ship %20s %d %d %.2f %.2f %.2f %
.2fn",
name, index, parent, weight, length, width, draft);
return st;
}// end method toFileString
}// end class MyShip
classMyCargoShipextendsMyShip{
staticint indexNew =40000;
double cargoWeight =0;
double cargoVolume =0;
double cargoValue =0;
publicMyCargoShip(boolean f,int n){
super(f, n);
index = indexNew++;
cargoWeight =20+ rn.nextDouble()*200;
cargoVolume =100+ rn.nextDouble()*100;
cargoValue =10+ rn.nextDouble()*1000;
for(int i =0; i < rn.nextInt (n); i++)
jobs.add (newMyJob(this));
}// end random ship constructor
publicString toFileString (){
String st ="";
st +=String.format (" cship %20s %d %d %.2f %.2f %.2f
%.2f %.2f %.2f %.2fn",
name, index, parent, weight, length, width, draft,
cargoWeight, cargoVolume, cargoValue);
return st;
}// end method toFileString
}// end class MyCargoShip
classMyPassengerShipextendsMyShip{
staticint indexNew =30000;
int numberOfPassengers =0;
int numberOfRooms =0;
int numberOfOccupiedRooms =0;
publicMyPassengerShip(boolean f,int n){
Project 1 CMSC 335
5
Project 1
Student’s Name
University of Maryland University College
CMSC 335
Prof:Name
Design
Design is an important part of development. This project is
a big project so it’s require lots of analysis. In analysis, We
need to find out the design of project.
In Design, Complete project can be divided into 10 classes. A
SeaPortProgram class is a main class which will provide the
GUI interface which will manipulate the data. A Complete GUI
interface has include Read File and Display option in which
user can read any file and display that data whenever it’s
require.
User Guide
Open the project in the IDE of your choice. The home
screen will show the GUI with appropriate buttons and a text
field. The lower part of the GUI is where the results will be
displayed.
You will first need to choose the appropriate file. In this
instance, we will chose the following text file: aSPad.txt . This
will load the file into the program. Additionally, you may create
your own txt file by using the format that is provided. You are
now ready to interact with the GUI. You can choose the option
to display the cave.
Test Plan
Test 1 (Open the file correctly)
Expected output: the file will be loaded, and a message will
appear in the scroll pane saying the file was loaded.
Actual output: Here’s the screen shot when the file is chosen:
Test 2 (Perform Read)
Expected output: Data will shown.
Actual output: Here’s the screen shot when the file is chosen:
Comments
In this, Project we need to focus that how can we make out code
more usable like in this project are 4 phase. So, we need make
our GUI expandable.
Lessons Learned
I have learned about following things:
How to use Arraylist
How to use File chooser
What are the benefit to use class in java project.
Improvements Possible
There are lots for improvements we can made are following:
GUI can be improved.
Job class can be implement
We can use Multi threading so the operation will be perform
parallel.
SeaPorts/.classpath
SeaPorts/.project
SeaPorts
org.eclipse.jdt.core.javabuilder
org.eclipse.jdt.core.javanature
SeaPorts/.settings/org.eclipse.jdt.core.prefs
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enable
d
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
SeaPorts/bin/edu/umuc/cmsc335/beans/CargoShip.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass CargoShip extends Ship {
private double cargoValue;
private double cargoVolume;
private double cargoWeight;
public void CargoShip(java.util.Scanner);
public String toString();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/Dock.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass Dock extends Thing {
protected Ship ship;
public void Dock(java.util.Scanner);
public String toString();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/Job.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass Job extends Thing {
private double duration;
protected java.util.ArrayList requirements;
public void Job(java.util.Scanner);
public String toString();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/PassengerShip.classpack
age edu.umuc.cmsc335.beans;
publicsynchronizedclass PassengerShip extends Ship {
private int numberOfOccupiedRooms;
private int numberOfPassengers;
private int numberOfRooms;
public void PassengerShip(java.util.Scanner);
public String toString();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/Person.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass Person extends Thing {
protected String skill;
public void Person(java.util.Scanner);
public String toString();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/PortTime.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass PortTime {
private int time;
public void PortTime();
public String toString();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/SeaPort.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass SeaPort extends Thing {
protected java.util.ArrayList docks;
protected java.util.ArrayList queue;
protected java.util.ArrayList ships;
protected java.util.ArrayList persons;
public void SeaPort(java.util.Scanner);
public String toString();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/Ship.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass Ship extends Thing {
private PortTime arrivalTime;
private PortTime dockTime;
private double draft;
private double length;
private double weight;
private double width;
protected java.util.ArrayList jobs;
public void Ship(java.util.Scanner);
public String toString();
public double getDraft();
public double getLength();
public double getWeight();
public double getWidth();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/Thing.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass Thing implements Comparable {
protected int index;
protected String name;
protected int parent;
public void Thing(java.util.Scanner);
public void Thing(String, int, int);
public int compareTo(Thing);
public String toString();
public String getName();
}
SeaPorts/bin/edu/umuc/cmsc335/beans/World.classpackage
edu.umuc.cmsc335.beans;
publicsynchronizedclass World extends Thing {
private java.util.ArrayList ports;
private PortTime time;
private java.util.HashMap hms;
public void World(java.util.Scanner);
public void World(String, int, int);
public String toString();
public String searchByName(String);
private String className(Thing);
public String searchByIndex(String);
public String searchBySkill(String);
public void process(String);
private Job getJobByIndex(int);
private Person getPersonByIndex(int);
private Ship getShipByIndex(int);
private Dock getDockByIndex(int);
public SeaPort getSeaPortByIndex(int);
private void addJob(java.util.Scanner);
private void addPerson(java.util.Scanner);
private void addCargoShip(java.util.Scanner);
private void addPassengerShip(java.util.Scanner);
private void addDock(java.util.Scanner);
private void addPort(java.util.Scanner);
public void sortByName();
public void sortShipsByWeight();
public void sortShipsByLength();
public void sortShipsByWidth();
public void sortShipsByDraft();
}
SeaPorts/bin/edu/umuc/cmsc335/comparator/ShipDraftComparat
or.classpackage edu.umuc.cmsc335.comparator;
publicsynchronizedclass ShipDraftComparator implements
java.util.Comparator {
public void ShipDraftComparator();
public int compare(edu.umuc.cmsc335.beans.Ship,
edu.umuc.cmsc335.beans.Ship);
}
SeaPorts/bin/edu/umuc/cmsc335/comparator/ShipLengthCompar
ator.classpackage edu.umuc.cmsc335.comparator;
publicsynchronizedclass ShipLengthComparator implements
java.util.Comparator {
public void ShipLengthComparator();
public int compare(edu.umuc.cmsc335.beans.Ship,
edu.umuc.cmsc335.beans.Ship);
}
SeaPorts/bin/edu/umuc/cmsc335/comparator/ShipWeightCompar
ator.classpackage edu.umuc.cmsc335.comparator;
publicsynchronizedclass ShipWeightComparator implements
java.util.Comparator {
public void ShipWeightComparator();
public int compare(edu.umuc.cmsc335.beans.Ship,
edu.umuc.cmsc335.beans.Ship);
}
SeaPorts/bin/edu/umuc/cmsc335/comparator/ShipWidthCompara
tor.classpackage edu.umuc.cmsc335.comparator;
publicsynchronizedclass ShipWidthComparator implements
java.util.Comparator {
public void ShipWidthComparator();
public int compare(edu.umuc.cmsc335.beans.Ship,
edu.umuc.cmsc335.beans.Ship);
}
SeaPorts/bin/edu/umuc/cmsc335/comparator/ThingNameCompar
ator.classpackage edu.umuc.cmsc335.comparator;
publicsynchronizedclass ThingNameComparator implements
java.util.Comparator {
public void ThingNameComparator();
public int compare(edu.umuc.cmsc335.beans.Thing,
edu.umuc.cmsc335.beans.Thing);
}
SeaPorts/bin/edu/umuc/cmsc335/ui/SeaPortListener.classpackag
e edu.umuc.cmsc335.ui;
publicsynchronizedclass SeaPortListener implements
java.awt.event.ActionListener {
static SeaPortProgram seaPortProgram;
static void <clinit>();
public void SeaPortListener(SeaPortProgram);
public void actionPerformed(java.awt.event.ActionEvent);
private void
sortActionPerformed(java.awt.event.ActionEvent);
private void
openFileActionPerformed(java.awt.event.ActionEvent);
private void
searchActionPerformed(java.awt.event.ActionEvent);
}
SeaPorts/bin/edu/umuc/cmsc335/ui/SeaPortProgram.classpackag
e edu.umuc.cmsc335.ui;
publicsynchronizedclass SeaPortProgram extends
javax.swing.JFrame {
public edu.umuc.cmsc335.beans.World world;
privatestaticfinal String TITLE = Sea Port Program;
publicstaticfinal String OPEN_FILE = Open File;
publicstaticfinal String SEARCH = Search;
publicstaticfinal String SORT = Sort;
publicstaticfinal String[] SORT_OPTION;
javax.swing.JButton openFileButton;
javax.swing.JButton searchButton;
javax.swing.ButtonGroup group;
javax.swing.JRadioButton rbName;
javax.swing.JRadioButton rbIndex;
javax.swing.JRadioButton rbSkill;
javax.swing.JTextArea outPutArea;
javax.swing.JScrollPane scrollPane;
javax.swing.JPanel buttonsPanel;
javax.swing.JPanel comboButtonPanel;
javax.swing.JTextField searchField;
javax.swing.JComboBox sortComboBox;
static void <clinit>();
public void SeaPortProgram();
public javax.swing.JTextArea getOutPutArea();
private javax.swing.JScrollPane
getScrollPane(javax.swing.JTextArea);
private javax.swing.JTextField getSearchField();
private javax.swing.JPanel getComboButtonPanel();
private javax.swing.JPanel getButtonspanel();
private javax.swing.JButton getSearchButton();
private javax.swing.JButton getOpenFileButton();
public javax.swing.JComboBox getSortComboBox();
publicstatic void main(String[]);
}
SeaPorts/src/edu/umuc/cmsc335/beans/CargoShip.javaSeaPorts/
src/edu/umuc/cmsc335/beans/CargoShip.javapackage edu.umuc.
cmsc335.beans;
import java.util.Scanner;
publicclassCargoShipextendsShip{
privatedouble cargoValue;
privatedouble cargoVolume;
privatedouble cargoWeight;
publicCargoShip(Scanner sc){
super(sc);
if(sc.hasNextDouble()){
cargoWeight = sc.nextDouble();
}
if(sc.hasNextDouble()){
cargoVolume = sc.nextDouble();
}
if(sc.hasNextDouble()){
cargoValue = sc.nextDouble();
}
}
@Override
publicString toString(){
return" Ship: Cargo Ship: "+super.toString();
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/Dock.javaSeaPorts/src/ed
u/umuc/cmsc335/beans/Dock.javapackage edu.umuc.cmsc335.be
ans;
import java.util.Scanner;
publicclassDockextendsThing{
publicDock(Scanner sc){
super(sc);
}
protectedShip ship;
@Override
publicString toString(){
return" Dock: "+ name +" "+ index +"n"+ ship.toString();
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/Job.javaSeaPorts/src/edu
/umuc/cmsc335/beans/Job.javapackage edu.umuc.cmsc335.bean
s;
import java.util.ArrayList;
import java.util.Scanner;
publicclassJobextendsThing{
privatedouble duration;
protectedArrayList<String> requirements;// should be some of t
he skills of the persons
publicJob(Scanner sc){
super(sc);
if(sc.hasNextDouble()){
duration = sc.nextDouble();
}
if(sc.hasNext()){
requirements =newArrayList<String>();
while(sc.hasNext()){
this.requirements.add(sc.next());
}
}
}
@Override
publicString toString(){
// If the requirements aren't there don't try to output them
if(requirements ==null){
return name +" "+ index +" ";
}
// Return requirements as well.
return name +" "+ index +" "+"Requirements: "+ requirements.t
oString();
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/PassengerShip.javaSeaPo
rts/src/edu/umuc/cmsc335/beans/PassengerShip.javapackage edu
.umuc.cmsc335.beans;
import java.util.Scanner;
publicclassPassengerShipextendsShip{
privateint numberOfOccupiedRooms;
privateint numberOfPassengers;
privateint numberOfRooms;
publicPassengerShip(Scanner sc){
super(sc);
if(sc.hasNextInt()){
numberOfPassengers = sc.nextInt();
}
if(sc.hasNextInt()){
numberOfRooms = sc.nextInt();
}
if(sc.hasNextInt()){
numberOfOccupiedRooms = sc.nextInt();
}
}
@Override
publicString toString(){
String st =" Ship: Passenger ship: "+super.toString();
if(jobs.size()==0)
return st;
for(Job mj: jobs) st +="n - "+ mj;
return st;
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/Person.javaSeaPorts/src/
edu/umuc/cmsc335/beans/Person.javapackage edu.umuc.cmsc33
5.beans;
import java.util.Scanner;
publicclassPersonextendsThing{
protectedString skill;
publicPerson(Scanner sc){
super(sc);
if(sc.hasNext()){
this.skill = sc.next();
}
}
@Override
publicString toString(){
return"Person: "+super.toString()+" "+ skill;
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/PortTime.javaSeaPorts/sr
c/edu/umuc/cmsc335/beans/PortTime.javapackage edu.umuc.cm
sc335.beans;
publicclassPortTime{
privateint time;
@Override
publicString toString(){
return"Port Time is: "+ time;
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/SeaPort.javaSeaPorts/src
/edu/umuc/cmsc335/beans/SeaPort.javapackage edu.umuc.cmsc3
35.beans;
import java.util.ArrayList;
import java.util.Scanner;
publicclassSeaPortextendsThing{
protectedArrayList<Dock> docks;
protectedArrayList<Ship> queue;// the list of ships waiting to d
ock
protectedArrayList<Ship> ships;// a list of all the ships at this p
ort
protectedArrayList<Person> persons;// people with skills at this
port
publicSeaPort(Scanner sc){
super(sc);
docks =newArrayList<Dock>();
queue =newArrayList<Ship>();
ships =newArrayList<Ship>();
persons =newArrayList<Person>();
}
@Override
publicString toString(){
String st ="nnSeaPort: "+super.toString();
for(Dock md: docks) st +="n"+ md;
st +="nn --- List of all ships in queue:";
for(Ship ms: queue ) st +="n > "+ ms;
st +="nn --- List of all ships:";
for(Ship ms: ships) st +="n > "+ ms;
st +="nn --- List of all persons:";
for(Person mp: persons) st +="n > "+ mp;
return st;
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/Ship.javaSeaPorts/src/ed
u/umuc/cmsc335/beans/Ship.javapackage edu.umuc.cmsc335.be
ans;
import java.util.ArrayList;
import java.util.Scanner;
publicclassShipextendsThing{
privatePortTime arrivalTime;
privatePortTime dockTime;
privatedouble draft;
privatedouble length;
privatedouble weight;
privatedouble width;
protectedArrayList<Job> jobs;
publicShip(Scanner sc){
super(sc);
if(sc.hasNextDouble()){
weight = sc.nextDouble();
}
if(sc.hasNextDouble()){
length = sc.nextDouble();
}
if(sc.hasNextDouble()){
width = sc.nextDouble();
}
if(sc.hasNextDouble()){
draft = sc.nextDouble();
}
jobs =newArrayList<Job>();
}
@Override
publicString toString(){
return"t"+ name +" "+ index +"t"+"Weight: "+ weight +"t"+"l
ength: "+ length +"t"+"width: "+ width +"t"+"draft: "+ draft;
// TODO Print out all jobs?
/* String st = "nnSeaPort: " + super.toString();
for (Dock md: docks) st += "n" + md;
st += "nn --- List of all ships in queue:";
for (Ship ms: queue ) st += "n > " + ms;
st += "nn --- List of all ships:";
for (Ship ms: ships) st += "n > " + ms;
st += "nn --- List of all persons:";
for (Person mp: persons) st += "n > " + mp;
return st; */
}
publicdouble getDraft(){
return draft;
}
publicdouble getLength(){
return length;
}
publicdouble getWeight(){
return weight;
}
publicdouble getWidth(){
return width;
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/Thing.javaSeaPorts/src/e
du/umuc/cmsc335/beans/Thing.javapackage edu.umuc.cmsc335.
beans;
import java.util.Scanner;
publicclassThingimplementsComparable<Thing>{
protectedint index;
protectedString name;
protectedint parent;
publicThing(Scanner sc){
if(sc.hasNext()){
this.name = sc.next();
}
if(sc.hasNextInt()){
this.index = sc.nextInt();
}
if(sc.hasNextInt()){
this.parent = sc.nextInt();
}
}
publicThing(String name,int index,int parent){
this.name = name;
this.index = index;
this.parent = parent;
}
@Override
publicint compareTo(Thing arg0){
// TODO Auto-generated method stub
return0;
}
/* public int compareTo(Thing t) {
int lastCmp = name.compareTo(n.name);
return (lastCmp != 0 ? lastCmp : firstName.compareTo(n.fi
rstName));
}*/
@Override
publicString toString(){
return name +" "+ index;
}
publicString getName(){
return name;
}
}
SeaPorts/src/edu/umuc/cmsc335/beans/World.javaSeaPorts/src/e
du/umuc/cmsc335/beans/World.javapackage edu.umuc.cmsc335.
beans;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Scanner;
import edu.umuc.cmsc335.comparator.ShipDraftComparator;
import edu.umuc.cmsc335.comparator.ShipLengthComparator;
import edu.umuc.cmsc335.comparator.ShipWeightComparator;
import edu.umuc.cmsc335.comparator.ShipWidthComparator;
import edu.umuc.cmsc335.comparator.ThingNameComparator;
publicclassWorldextendsThing{
privateArrayList<SeaPort> ports;
privatePortTime time;
privateHashMap<Integer,Thing> hms;
publicWorld(Scanner sc){
super(sc);
}
publicWorld(String name,int index,int parent){
super(name, index, parent);
ports =newArrayList<>();
time =newPortTime();
hms =newHashMap<Integer,Thing>();
hms.put(this.index,this);
}
@Override
publicString toString(){
return ports.toString();
}
publicString searchByName(String search){
String results ="";
if(this.name.toLowerCase().equals(search))
results += className(this);
for(SeaPort port : ports){
if(port.name.toLowerCase().equals(search))
results += className(port);
for(Dock dock : port.docks){
if(dock.name.toLowerCase().equals(search))
results += className(dock);
}
for(Person person : port.persons){
if(person.name.toLowerCase().equals(search))
results += className(person);
}
for(Ship ship : port.ships){
if(ship.name.toLowerCase().equals(search))
results += className(ship);
for(Job job : ship.jobs){
if(job.name.toLowerCase().equals(search))
results += className(job);
}
}
}
if(results.isEmpty())
results ="No results found.";
return results;
}
privateString className(Thing thing){
// Helper method for searchByName()
return thing.getClass().getName().substring(thing.getClass().get
Name().lastIndexOf('.')+1)+": "+ thing.name +"n";
}
publicString searchByIndex(String search){
String results ="No results found.";
Thing thing;
try{
int sIndex =Integer.parseInt(search);
thing = hms.get(sIndex);
if(thing !=null){
results = className(thing);
}
}catch(NumberFormatException e){
results ="Search by index must be an integer";
}
return results;
}
publicString searchBySkill(String search){
String results ="";
for(SeaPort port : ports){
for(Person person : port.persons){
if(person.skill.toLowerCase().equals(search))
results += className(person);
}
for(Ship ship : port.ships){
for(Job job : ship.jobs){
if(job.toString().toLowerCase().contains(search))
results += className(job);
}
}
}
if(results.isEmpty())
results ="No results found.";
return results;
}
publicvoid process (String st){
System.out.println ("Processing >"+ st +"<");
Scanner sc =newScanner(st);
if(!sc.hasNext()){
sc.close();
return;
}
switch(sc.next()){
case"port": addPort (sc);
break;
case"dock": addDock (sc);
break;
case"pship": addPassengerShip (sc);
break;
case"cship": addCargoShip (sc);
break;
case"person": addPerson(sc);
break;
case"job": addJob(sc);
break;
}
}
privateJob getJobByIndex(int parent){
for(SeaPort port : ports){
for(Ship ship : port.ships){
for(Job job : ship.jobs){
if(job.index == parent){
return job;
}
}
}
}
returnnull;
}
privatePerson getPersonByIndex(int parent){
for(SeaPort port : ports){
for(Person person : port.persons){
if(person.index == parent){
return person;
}
}
}
returnnull;
}
privateShip getShipByIndex(int parent){
for(SeaPort port : ports){
for(Ship ship : port.ships){
if(ship.index == parent){
return ship;
}
}
}
returnnull;
}
privateDock getDockByIndex(int parent){
for(SeaPort port : ports){
for(Dock dock : port.docks){
if(dock.index == parent){
return dock;
}
}
}
returnnull;
}
publicSeaPort getSeaPortByIndex(int parent){
for(SeaPort port : ports){
if(port.index == parent){
return port;
}
}
returnnull;
}
privatevoid addJob(Scanner sc){
Job job =newJob(sc);
Dock dock = getDockByIndex(job.parent);
if(dock !=null){
if(dock.ship !=null){
dock.ship.jobs.add(job);
hms.put(job.index, job);
}
}
}
privatevoid addPerson(Scanner sc){
Person person =newPerson(sc);
SeaPort port = getSeaPortByIndex(person.parent);
if(port !=null){
port.persons.add(person);
hms.put(person.index, person);
}
}
privatevoid addCargoShip(Scanner sc){
CargoShip cShip =newCargoShip(sc);
Dock dock = getDockByIndex(cShip.parent);
if(dock ==null){
getSeaPortByIndex(cShip.parent).ships.add(cShip);
getSeaPortByIndex(cShip.parent).queue.add(cShip);
return;
}
dock.ship = cShip;
getSeaPortByIndex(dock.parent).ships.add(cShip);
hms.put(cShip.index, cShip);
}
privatevoid addPassengerShip(Scanner sc){
PassengerShip pShip =newPassengerShip(sc);
Dock dock = getDockByIndex(pShip.parent);
if(dock ==null){
getSeaPortByIndex(pShip.parent).ships.add(pShip);
Ad

More Related Content

Similar to srcArtifact.javasrcArtifact.javaclassArtifactextendsCave{pub.docx (20)

ES6 Overview
ES6 OverviewES6 Overview
ES6 Overview
Bruno Scopelliti
 
VISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEVISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLE
Darwin Durand
 
Web Optimization Summit: Coding for Performance
Web Optimization Summit: Coding for PerformanceWeb Optimization Summit: Coding for Performance
Web Optimization Summit: Coding for Performance
johndaviddalton
 
jQuery Data Manipulate API - A source code dissecting journey
jQuery Data Manipulate API - A source code dissecting journeyjQuery Data Manipulate API - A source code dissecting journey
jQuery Data Manipulate API - A source code dissecting journey
Huiyi Yan
 
Student management system
Student management systemStudent management system
Student management system
geetika goyal
 
Soundreader.classpathSoundreader.project Soundre.docx
Soundreader.classpathSoundreader.project  Soundre.docxSoundreader.classpathSoundreader.project  Soundre.docx
Soundreader.classpathSoundreader.project Soundre.docx
whitneyleman54422
 
Logic Equations Resolver J Script
Logic Equations Resolver   J ScriptLogic Equations Resolver   J Script
Logic Equations Resolver J Script
Roman Agaev
 
Event recvr ss
Event recvr ssEvent recvr ss
Event recvr ss
Gayathri Narayanan
 
code for quiz in my sql
code for quiz  in my sql code for quiz  in my sql
code for quiz in my sql
JOYITAKUNDU1
 
Say It With Javascript
Say It With JavascriptSay It With Javascript
Say It With Javascript
Giovanni Scerra ☃
 
2012 JDays Bad Tests Good Tests
2012 JDays Bad Tests Good Tests2012 JDays Bad Tests Good Tests
2012 JDays Bad Tests Good Tests
Tomek Kaczanowski
 
Implement threads and a GUI interface using advanced Java Swing clas.pdf
Implement threads and a GUI interface using advanced Java Swing clas.pdfImplement threads and a GUI interface using advanced Java Swing clas.pdf
Implement threads and a GUI interface using advanced Java Swing clas.pdf
amrishinda
 
Improving android experience for both users and developers
Improving android experience for both users and developersImproving android experience for both users and developers
Improving android experience for both users and developers
Pavel Lahoda
 
Droidcon2013 android experience lahoda
Droidcon2013 android experience lahodaDroidcon2013 android experience lahoda
Droidcon2013 android experience lahoda
Droidcon Berlin
 
AST Transformations at JFokus
AST Transformations at JFokusAST Transformations at JFokus
AST Transformations at JFokus
HamletDRC
 
Js 单元测试框架介绍
Js 单元测试框架介绍Js 单元测试框架介绍
Js 单元测试框架介绍
louieuser
 
Ian 20150116 java script oop
Ian 20150116 java script oopIan 20150116 java script oop
Ian 20150116 java script oop
LearningTech
 
HELP IN JAVACreate a main method and use these input files to tes.pdf
HELP IN JAVACreate a main method and use these input files to tes.pdfHELP IN JAVACreate a main method and use these input files to tes.pdf
HELP IN JAVACreate a main method and use these input files to tes.pdf
fatoryoutlets
 
連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」
matuura_core
 
Stop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScriptStop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScript
Ryan Anklam
 
VISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEVISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLE
Darwin Durand
 
Web Optimization Summit: Coding for Performance
Web Optimization Summit: Coding for PerformanceWeb Optimization Summit: Coding for Performance
Web Optimization Summit: Coding for Performance
johndaviddalton
 
jQuery Data Manipulate API - A source code dissecting journey
jQuery Data Manipulate API - A source code dissecting journeyjQuery Data Manipulate API - A source code dissecting journey
jQuery Data Manipulate API - A source code dissecting journey
Huiyi Yan
 
Student management system
Student management systemStudent management system
Student management system
geetika goyal
 
Soundreader.classpathSoundreader.project Soundre.docx
Soundreader.classpathSoundreader.project  Soundre.docxSoundreader.classpathSoundreader.project  Soundre.docx
Soundreader.classpathSoundreader.project Soundre.docx
whitneyleman54422
 
Logic Equations Resolver J Script
Logic Equations Resolver   J ScriptLogic Equations Resolver   J Script
Logic Equations Resolver J Script
Roman Agaev
 
code for quiz in my sql
code for quiz  in my sql code for quiz  in my sql
code for quiz in my sql
JOYITAKUNDU1
 
2012 JDays Bad Tests Good Tests
2012 JDays Bad Tests Good Tests2012 JDays Bad Tests Good Tests
2012 JDays Bad Tests Good Tests
Tomek Kaczanowski
 
Implement threads and a GUI interface using advanced Java Swing clas.pdf
Implement threads and a GUI interface using advanced Java Swing clas.pdfImplement threads and a GUI interface using advanced Java Swing clas.pdf
Implement threads and a GUI interface using advanced Java Swing clas.pdf
amrishinda
 
Improving android experience for both users and developers
Improving android experience for both users and developersImproving android experience for both users and developers
Improving android experience for both users and developers
Pavel Lahoda
 
Droidcon2013 android experience lahoda
Droidcon2013 android experience lahodaDroidcon2013 android experience lahoda
Droidcon2013 android experience lahoda
Droidcon Berlin
 
AST Transformations at JFokus
AST Transformations at JFokusAST Transformations at JFokus
AST Transformations at JFokus
HamletDRC
 
Js 单元测试框架介绍
Js 单元测试框架介绍Js 单元测试框架介绍
Js 单元测试框架介绍
louieuser
 
Ian 20150116 java script oop
Ian 20150116 java script oopIan 20150116 java script oop
Ian 20150116 java script oop
LearningTech
 
HELP IN JAVACreate a main method and use these input files to tes.pdf
HELP IN JAVACreate a main method and use these input files to tes.pdfHELP IN JAVACreate a main method and use these input files to tes.pdf
HELP IN JAVACreate a main method and use these input files to tes.pdf
fatoryoutlets
 
連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」
matuura_core
 
Stop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScriptStop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScript
Ryan Anklam
 

More from whitneyleman54422 (20)

In this unit, you will experience the powerful impact communication .docx
In this unit, you will experience the powerful impact communication .docxIn this unit, you will experience the powerful impact communication .docx
In this unit, you will experience the powerful impact communication .docx
whitneyleman54422
 
In this task, you will write an analysis (suggested length of 3–5 .docx
In this task, you will write an analysis (suggested length of 3–5 .docxIn this task, you will write an analysis (suggested length of 3–5 .docx
In this task, you will write an analysis (suggested length of 3–5 .docx
whitneyleman54422
 
In this SLP you will identify where the major transportation modes a.docx
In this SLP you will identify where the major transportation modes a.docxIn this SLP you will identify where the major transportation modes a.docx
In this SLP you will identify where the major transportation modes a.docx
whitneyleman54422
 
In this module the student will present writing which focuses attent.docx
In this module the student will present writing which focuses attent.docxIn this module the student will present writing which focuses attent.docx
In this module the student will present writing which focuses attent.docx
whitneyleman54422
 
In this module, we looked at a variety of styles in the Renaissa.docx
In this module, we looked at a variety of styles in the Renaissa.docxIn this module, we looked at a variety of styles in the Renaissa.docx
In this module, we looked at a variety of styles in the Renaissa.docx
whitneyleman54422
 
In this experiential learning experience, you will evaluate a health.docx
In this experiential learning experience, you will evaluate a health.docxIn this experiential learning experience, you will evaluate a health.docx
In this experiential learning experience, you will evaluate a health.docx
whitneyleman54422
 
In this essay you should combine your practice responding and analyz.docx
In this essay you should combine your practice responding and analyz.docxIn this essay you should combine your practice responding and analyz.docx
In this essay you should combine your practice responding and analyz.docx
whitneyleman54422
 
In this Discussion, pick one film to write about and answer ques.docx
In this Discussion, pick one film to write about and answer ques.docxIn this Discussion, pick one film to write about and answer ques.docx
In this Discussion, pick one film to write about and answer ques.docx
whitneyleman54422
 
In this assignment, you will identify and interview a family who.docx
In this assignment, you will identify and interview a family who.docxIn this assignment, you will identify and interview a family who.docx
In this assignment, you will identify and interview a family who.docx
whitneyleman54422
 
In this assignment, you will assess the impact of health legisla.docx
In this assignment, you will assess the impact of health legisla.docxIn this assignment, you will assess the impact of health legisla.docx
In this assignment, you will assess the impact of health legisla.docx
whitneyleman54422
 
In this assignment, you will create a presentation. Select a topic o.docx
In this assignment, you will create a presentation. Select a topic o.docxIn this assignment, you will create a presentation. Select a topic o.docx
In this assignment, you will create a presentation. Select a topic o.docx
whitneyleman54422
 
In this assignment, the student will understand the growth and devel.docx
In this assignment, the student will understand the growth and devel.docxIn this assignment, the student will understand the growth and devel.docx
In this assignment, the student will understand the growth and devel.docx
whitneyleman54422
 
In this assignment, I want you to locate two pieces of news detailin.docx
In this assignment, I want you to locate two pieces of news detailin.docxIn this assignment, I want you to locate two pieces of news detailin.docx
In this assignment, I want you to locate two pieces of news detailin.docx
whitneyleman54422
 
In this assignment worth 150 points, you will consider the present-d.docx
In this assignment worth 150 points, you will consider the present-d.docxIn this assignment worth 150 points, you will consider the present-d.docx
In this assignment worth 150 points, you will consider the present-d.docx
whitneyleman54422
 
In the readings thus far, the text identified many early American in.docx
In the readings thus far, the text identified many early American in.docxIn the readings thus far, the text identified many early American in.docx
In the readings thus far, the text identified many early American in.docx
whitneyleman54422
 
In the Roman Colony, leaders, or members of the court, were to be.docx
In the Roman Colony, leaders, or members of the court, were to be.docxIn the Roman Colony, leaders, or members of the court, were to be.docx
In the Roman Colony, leaders, or members of the court, were to be.docx
whitneyleman54422
 
In the provided scenario there are a few different crimes being .docx
In the provided scenario there are a few different crimes being .docxIn the provided scenario there are a few different crimes being .docx
In the provided scenario there are a few different crimes being .docx
whitneyleman54422
 
Stoichiometry Lab – The Chemistry Behind Carbonates reacting with .docx
Stoichiometry Lab – The Chemistry Behind Carbonates reacting with .docxStoichiometry Lab – The Chemistry Behind Carbonates reacting with .docx
Stoichiometry Lab – The Chemistry Behind Carbonates reacting with .docx
whitneyleman54422
 
Stock-Trak Portfolio Report Write-Up GuidelinesYou may want to.docx
Stock-Trak Portfolio Report Write-Up GuidelinesYou may want to.docxStock-Trak Portfolio Report Write-Up GuidelinesYou may want to.docx
Stock-Trak Portfolio Report Write-Up GuidelinesYou may want to.docx
whitneyleman54422
 
Stewart Guthrie, Faces in the Clouds Oxford UP, 1993.docx
Stewart Guthrie,  Faces in the Clouds  Oxford UP, 1993.docxStewart Guthrie,  Faces in the Clouds  Oxford UP, 1993.docx
Stewart Guthrie, Faces in the Clouds Oxford UP, 1993.docx
whitneyleman54422
 
In this unit, you will experience the powerful impact communication .docx
In this unit, you will experience the powerful impact communication .docxIn this unit, you will experience the powerful impact communication .docx
In this unit, you will experience the powerful impact communication .docx
whitneyleman54422
 
In this task, you will write an analysis (suggested length of 3–5 .docx
In this task, you will write an analysis (suggested length of 3–5 .docxIn this task, you will write an analysis (suggested length of 3–5 .docx
In this task, you will write an analysis (suggested length of 3–5 .docx
whitneyleman54422
 
In this SLP you will identify where the major transportation modes a.docx
In this SLP you will identify where the major transportation modes a.docxIn this SLP you will identify where the major transportation modes a.docx
In this SLP you will identify where the major transportation modes a.docx
whitneyleman54422
 
In this module the student will present writing which focuses attent.docx
In this module the student will present writing which focuses attent.docxIn this module the student will present writing which focuses attent.docx
In this module the student will present writing which focuses attent.docx
whitneyleman54422
 
In this module, we looked at a variety of styles in the Renaissa.docx
In this module, we looked at a variety of styles in the Renaissa.docxIn this module, we looked at a variety of styles in the Renaissa.docx
In this module, we looked at a variety of styles in the Renaissa.docx
whitneyleman54422
 
In this experiential learning experience, you will evaluate a health.docx
In this experiential learning experience, you will evaluate a health.docxIn this experiential learning experience, you will evaluate a health.docx
In this experiential learning experience, you will evaluate a health.docx
whitneyleman54422
 
In this essay you should combine your practice responding and analyz.docx
In this essay you should combine your practice responding and analyz.docxIn this essay you should combine your practice responding and analyz.docx
In this essay you should combine your practice responding and analyz.docx
whitneyleman54422
 
In this Discussion, pick one film to write about and answer ques.docx
In this Discussion, pick one film to write about and answer ques.docxIn this Discussion, pick one film to write about and answer ques.docx
In this Discussion, pick one film to write about and answer ques.docx
whitneyleman54422
 
In this assignment, you will identify and interview a family who.docx
In this assignment, you will identify and interview a family who.docxIn this assignment, you will identify and interview a family who.docx
In this assignment, you will identify and interview a family who.docx
whitneyleman54422
 
In this assignment, you will assess the impact of health legisla.docx
In this assignment, you will assess the impact of health legisla.docxIn this assignment, you will assess the impact of health legisla.docx
In this assignment, you will assess the impact of health legisla.docx
whitneyleman54422
 
In this assignment, you will create a presentation. Select a topic o.docx
In this assignment, you will create a presentation. Select a topic o.docxIn this assignment, you will create a presentation. Select a topic o.docx
In this assignment, you will create a presentation. Select a topic o.docx
whitneyleman54422
 
In this assignment, the student will understand the growth and devel.docx
In this assignment, the student will understand the growth and devel.docxIn this assignment, the student will understand the growth and devel.docx
In this assignment, the student will understand the growth and devel.docx
whitneyleman54422
 
In this assignment, I want you to locate two pieces of news detailin.docx
In this assignment, I want you to locate two pieces of news detailin.docxIn this assignment, I want you to locate two pieces of news detailin.docx
In this assignment, I want you to locate two pieces of news detailin.docx
whitneyleman54422
 
In this assignment worth 150 points, you will consider the present-d.docx
In this assignment worth 150 points, you will consider the present-d.docxIn this assignment worth 150 points, you will consider the present-d.docx
In this assignment worth 150 points, you will consider the present-d.docx
whitneyleman54422
 
In the readings thus far, the text identified many early American in.docx
In the readings thus far, the text identified many early American in.docxIn the readings thus far, the text identified many early American in.docx
In the readings thus far, the text identified many early American in.docx
whitneyleman54422
 
In the Roman Colony, leaders, or members of the court, were to be.docx
In the Roman Colony, leaders, or members of the court, were to be.docxIn the Roman Colony, leaders, or members of the court, were to be.docx
In the Roman Colony, leaders, or members of the court, were to be.docx
whitneyleman54422
 
In the provided scenario there are a few different crimes being .docx
In the provided scenario there are a few different crimes being .docxIn the provided scenario there are a few different crimes being .docx
In the provided scenario there are a few different crimes being .docx
whitneyleman54422
 
Stoichiometry Lab – The Chemistry Behind Carbonates reacting with .docx
Stoichiometry Lab – The Chemistry Behind Carbonates reacting with .docxStoichiometry Lab – The Chemistry Behind Carbonates reacting with .docx
Stoichiometry Lab – The Chemistry Behind Carbonates reacting with .docx
whitneyleman54422
 
Stock-Trak Portfolio Report Write-Up GuidelinesYou may want to.docx
Stock-Trak Portfolio Report Write-Up GuidelinesYou may want to.docxStock-Trak Portfolio Report Write-Up GuidelinesYou may want to.docx
Stock-Trak Portfolio Report Write-Up GuidelinesYou may want to.docx
whitneyleman54422
 
Stewart Guthrie, Faces in the Clouds Oxford UP, 1993.docx
Stewart Guthrie,  Faces in the Clouds  Oxford UP, 1993.docxStewart Guthrie,  Faces in the Clouds  Oxford UP, 1993.docx
Stewart Guthrie, Faces in the Clouds Oxford UP, 1993.docx
whitneyleman54422
 
Ad

Recently uploaded (20)

All About the 990 Unlocking Its Mysteries and Its Power.pdf
All About the 990 Unlocking Its Mysteries and Its Power.pdfAll About the 990 Unlocking Its Mysteries and Its Power.pdf
All About the 990 Unlocking Its Mysteries and Its Power.pdf
TechSoup
 
Botany Assignment Help Guide - Academic Excellence
Botany Assignment Help Guide - Academic ExcellenceBotany Assignment Help Guide - Academic Excellence
Botany Assignment Help Guide - Academic Excellence
online college homework help
 
The role of wall art in interior designing
The role of wall art in interior designingThe role of wall art in interior designing
The role of wall art in interior designing
meghaark2110
 
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
parmarjuli1412
 
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFAMEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
Dr. Nasir Mustafa
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx
mansk2
 
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Leonel Morgado
 
TERMINOLOGIES,GRIEF PROCESS AND LOSS AMD ITS TYPES .pptx
TERMINOLOGIES,GRIEF PROCESS AND LOSS AMD ITS TYPES .pptxTERMINOLOGIES,GRIEF PROCESS AND LOSS AMD ITS TYPES .pptx
TERMINOLOGIES,GRIEF PROCESS AND LOSS AMD ITS TYPES .pptx
PoojaSen20
 
Form View Attributes in Odoo 18 - Odoo Slides
Form View Attributes in Odoo 18 - Odoo SlidesForm View Attributes in Odoo 18 - Odoo Slides
Form View Attributes in Odoo 18 - Odoo Slides
Celine George
 
spinal cord disorders (Myelopathies and radiculoapthies)
spinal cord disorders (Myelopathies and radiculoapthies)spinal cord disorders (Myelopathies and radiculoapthies)
spinal cord disorders (Myelopathies and radiculoapthies)
Mohamed Rizk Khodair
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
*"Sensing the World: Insect Sensory Systems"*
*"Sensing the World: Insect Sensory Systems"**"Sensing the World: Insect Sensory Systems"*
*"Sensing the World: Insect Sensory Systems"*
Arshad Shaikh
 
Module 1: Foundations of Research
Module 1: Foundations of ResearchModule 1: Foundations of Research
Module 1: Foundations of Research
drroxannekemp
 
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon DolabaniHistory Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
fruinkamel7m
 
Transform tomorrow: Master benefits analysis with Gen AI today webinar, 30 A...
Transform tomorrow: Master benefits analysis with Gen AI today webinar,  30 A...Transform tomorrow: Master benefits analysis with Gen AI today webinar,  30 A...
Transform tomorrow: Master benefits analysis with Gen AI today webinar, 30 A...
Association for Project Management
 
antiquity of writing in ancient India- literary & archaeological evidence
antiquity of writing in ancient India- literary & archaeological evidenceantiquity of writing in ancient India- literary & archaeological evidence
antiquity of writing in ancient India- literary & archaeological evidence
PrachiSontakke5
 
How To Maximize Sales Performance using Odoo 18 Diverse views in sales module
How To Maximize Sales Performance using Odoo 18 Diverse views in sales moduleHow To Maximize Sales Performance using Odoo 18 Diverse views in sales module
How To Maximize Sales Performance using Odoo 18 Diverse views in sales module
Celine George
 
Rock Art As a Source of Ancient Indian History
Rock Art As a Source of Ancient Indian HistoryRock Art As a Source of Ancient Indian History
Rock Art As a Source of Ancient Indian History
Virag Sontakke
 
All About the 990 Unlocking Its Mysteries and Its Power.pdf
All About the 990 Unlocking Its Mysteries and Its Power.pdfAll About the 990 Unlocking Its Mysteries and Its Power.pdf
All About the 990 Unlocking Its Mysteries and Its Power.pdf
TechSoup
 
Botany Assignment Help Guide - Academic Excellence
Botany Assignment Help Guide - Academic ExcellenceBotany Assignment Help Guide - Academic Excellence
Botany Assignment Help Guide - Academic Excellence
online college homework help
 
The role of wall art in interior designing
The role of wall art in interior designingThe role of wall art in interior designing
The role of wall art in interior designing
meghaark2110
 
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
parmarjuli1412
 
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFAMEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
Dr. Nasir Mustafa
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx
mansk2
 
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Leonel Morgado
 
TERMINOLOGIES,GRIEF PROCESS AND LOSS AMD ITS TYPES .pptx
TERMINOLOGIES,GRIEF PROCESS AND LOSS AMD ITS TYPES .pptxTERMINOLOGIES,GRIEF PROCESS AND LOSS AMD ITS TYPES .pptx
TERMINOLOGIES,GRIEF PROCESS AND LOSS AMD ITS TYPES .pptx
PoojaSen20
 
Form View Attributes in Odoo 18 - Odoo Slides
Form View Attributes in Odoo 18 - Odoo SlidesForm View Attributes in Odoo 18 - Odoo Slides
Form View Attributes in Odoo 18 - Odoo Slides
Celine George
 
spinal cord disorders (Myelopathies and radiculoapthies)
spinal cord disorders (Myelopathies and radiculoapthies)spinal cord disorders (Myelopathies and radiculoapthies)
spinal cord disorders (Myelopathies and radiculoapthies)
Mohamed Rizk Khodair
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
*"Sensing the World: Insect Sensory Systems"*
*"Sensing the World: Insect Sensory Systems"**"Sensing the World: Insect Sensory Systems"*
*"Sensing the World: Insect Sensory Systems"*
Arshad Shaikh
 
Module 1: Foundations of Research
Module 1: Foundations of ResearchModule 1: Foundations of Research
Module 1: Foundations of Research
drroxannekemp
 
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon DolabaniHistory Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
fruinkamel7m
 
Transform tomorrow: Master benefits analysis with Gen AI today webinar, 30 A...
Transform tomorrow: Master benefits analysis with Gen AI today webinar,  30 A...Transform tomorrow: Master benefits analysis with Gen AI today webinar,  30 A...
Transform tomorrow: Master benefits analysis with Gen AI today webinar, 30 A...
Association for Project Management
 
antiquity of writing in ancient India- literary & archaeological evidence
antiquity of writing in ancient India- literary & archaeological evidenceantiquity of writing in ancient India- literary & archaeological evidence
antiquity of writing in ancient India- literary & archaeological evidence
PrachiSontakke5
 
How To Maximize Sales Performance using Odoo 18 Diverse views in sales module
How To Maximize Sales Performance using Odoo 18 Diverse views in sales moduleHow To Maximize Sales Performance using Odoo 18 Diverse views in sales module
How To Maximize Sales Performance using Odoo 18 Diverse views in sales module
Celine George
 
Rock Art As a Source of Ancient Indian History
Rock Art As a Source of Ancient Indian HistoryRock Art As a Source of Ancient Indian History
Rock Art As a Source of Ancient Indian History
Virag Sontakke
 
Ad

srcArtifact.javasrcArtifact.javaclassArtifactextendsCave{pub.docx

  • 1. src/Artifact.javasrc/Artifact.javaclassArtifactextendsCave{ publicint creatureIndex =0; publicArtifact(int index,String type,int creatureIndex){ super(type, index); this.creatureIndex = creatureIndex; } @Override publicString toString(){ // Return neater output of the class data return"[Artifact]: ntOwner Index = " +Integer.toString(this.creatureIndex) +" ntArtifact Type = "+this.type; } } src/Cave.javasrc/Cave.javapublicclassCave{ publicint index =0; publicString type =null; publicString name =null; /*** * Constructor * @param index */ publicCave(int index){ this.index = index; } publicCave(int index,String type,String name){ this.index = index;
  • 2. this.type = type; this.name = name; } publicCave(int index,String name){ this.index = index; this.name = name; } publicCave(String type,int index){ this.index = index; this.type = type; } } src/Creature.javasrc/Creature.javaimport java.awt.BorderLayout ; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JProgressBar; classCreatureextendsCaveimplementsActionListener,Runnable{ publicint partyIndex =0; publicint empathyValue; publicint fearValue; publicdouble carryingCapacity; publicint age;
  • 3. publicint weight; publicdouble height; publicArrayList<Treasure> treasures =newArrayList<Treasure> (); publicArrayList<Artifact> artifacts =newArrayList<Artifact>(); publicArrayList<Jobs> jobs =newArrayList<Jobs>(); publiclong jobTime =0; publicJobs currentJob =null; publicvolatileboolean runJob =false; publicvolatileboolean cancelJob =false; JButton cancelButton =newJButton("Cancel Job"); JButton startButton =newJButton("Start Job"); publicCreature(int index,String type,String name,int partyIndex, int empathyValue,int fearValue,double carryingCapacity){ super(index, type, name); this.partyIndex = partyIndex; this.empathyValue = empathyValue; this.fearValue = fearValue; this.carryingCapacity = carryingCapacity; } publicCreature(int index,String type,String name,int partyIndex, int empathyValue,int fearValue,double carryingCapacity,int age , int weight,double height){ super(index, type, name); this.partyIndex = partyIndex; this.empathyValue = empathyValue; this.fearValue = fearValue; this.carryingCapacity = carryingCapacity; this.age = age; this.weight = weight; this.height = height; }
  • 4. publicvoid addTreature(Treasure t){ if(t !=null&& t instanceofTreasure&& t.creatureIndex !=0){ this.treasures.add(t); } } publicvoid addArtifact(Artifact a){ if(a !=null&& a instanceofArtifact&& a.creatureIndex !=0){ this.artifacts.add(a); } } @Override publicString toString(){ String output =""; output +="[Creature]: ntType = "+this.type +" ntName = " +this.name +" ntParty Index = " +Integer.toString(this.partyIndex)+" ntEmpathy Value = " +Integer.toString(this.empathyValue)+" ntFear Value = " +Integer.toString(this.fearValue) +" ntCarrying Capacity = " +Double.toString(this.carryingCapacity); output +="nt------Owned Items------n"; for(Treasure t :this.treasures) output +="nt"+ t.toString(); for(Artifact a :this.artifacts) output +="nt"+ a.toString(); output +="nt-----------------------n"; return output; } publicvoid addJob(long time,Jobs j){ this.jobTime = time; this.currentJob = j;
  • 5. this.jobs.add(j); } publicvoid run(){ JProgressBar progressBar =newJProgressBar(); progressBar.setStringPainted(true); cancelButton.addActionListener(this); startButton.addActionListener(this); JFrame jf =newJFrame("Creature "+this.name +"'s Job"); jf.add(newJLabel(" Performing Job: "+this.currentJob.nam e), BorderLayout.PAGE_START); jf.add(progressBar,BorderLayout.CENTER); JPanel btnPanel =newJPanel(); btnPanel.add(startButton); btnPanel.add(cancelButton); jf.add(btnPanel,BorderLayout.SOUTH); jf.pack(); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOS E); jf.setLocationRelativeTo(null); System.out.println("Starting Job: "+this.currentJob.name); System.out.println("Job Duration: "+this.jobTime); Thread jobThread =Thread.currentThread(); while(!this.runJob){ jobThread.yield(); } long currentTime =System.currentTimeMillis(); long startTime = currentTime; long stopTime = currentTime +1000* jobTime; System.out.println("Stop time: "+ stopTime); double duration = stopTime - currentTime;
  • 6. while(currentTime < stopTime){ if(this.cancelJob ==true&& jobThread !=null){ jobThread.interrupt(); JOptionPane.showMessageDialog(null,"Job Cancelled!"); jf.dispose(); break; }else{ try{ jobThread.sleep(100); }catch(InterruptedException e){ } progressBar .setValue((int)(((currentTime - startTime)/ duration)*100)); currentTime =System.currentTimeMillis(); } } if(!this.cancelJob){ progressBar.setValue(100); } jf.dispose(); } @Override publicvoid actionPerformed(ActionEvent e){ if(e.getSource()== cancelButton){ this.cancelJob =true; this.runJob =false; }elseif(e.getSource()== startButton){ this.runJob =true; this.cancelJob =false; } } } src/CreatureComp.javasrc/CreatureComp.javaimport java.util.C
  • 7. omparator; publicclassCreatureCompimplementsComparator<Creature>{ privateString attribute; publicCreatureComp(String attribute){ this.attribute = attribute; } publicint compare(Creature c1,Creature c2){ int result =-1; switch(attribute.charAt(0)){ case'e': if(c1.empathyValue == c2.empathyValue){ result =0; }elseif(c1.empathyValue > c2.empathyValue){ result =1; }else{ result =-1; } break; case'f': if(c1.fearValue == c2.fearValue){ result =0; }elseif(c1.fearValue > c2.fearValue){ result =1; }else{ result =-1; } break; case'c': if(c1.carryingCapacity == c2.carryingCapacity){ result =0; }elseif(c1.carryingCapacity > c2.carryingCapacity){ result =1;
  • 8. }else{ result =-1; } break; case'a': if(c1.age == c2.age){ result =0; }elseif(c1.age > c2.age){ result =1; }else{ result =-1; } break; case'h': if(c1.height == c2.height){ result =0; }elseif(c1.height > c2.height){ result =1; }else{ result =-1; } break; case'w': if(c1.weight == c2.weight){ result =0; }elseif(c1.weight > c2.weight){ result =1; }else{ result =-1; } break; default: if(c1.carryingCapacity == c2.carryingCapacity){ result =0;
  • 9. }elseif(c1.carryingCapacity > c2.carryingCapacity){ result =1; }else{ result =-1; } break; } return result; } } src/Game.javasrc/Game.java import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Set; publicclassGame{ privateString fileName; privateHashMap<Integer,Cave> caveElements =newHashMap<I nteger,Cave>(); publicArrayList<Cave> loners =newArrayList<Cave>(); publicArrayList<Party> parties =newArrayList<Party>(); Party party; Creature creature; Treasure treasure; Artifact artifact;
  • 10. publicGame(){ } publicGame(String dataFileName)throwsIOException{ this.fileName = dataFileName; this.loadFileData(dataFileName); } //searches the game elements for the input criteria publicString searchGame(String searchInput){ String result =""; ArrayList<Cave> printElements =newArrayList<Cave>(); printElements.addAll(caveElements.values()); printElements.addAll(loners); for(Cave ge : printElements){ if(ge.index !=0&& searchInput !=null&&Integer.toString(ge.ind ex).equals(searchInput)){ result += ge.toString()+"n"; }elseif(ge.type !=null&& searchInput !=null&& ge.type.toLowe rCase().equals(searchInput.toLowerCase())){ result += ge.toString()+"n"; }elseif(ge.name !=null&& searchInput !=null&& ge.name.toLo werCase().equals(searchInput.toLowerCase())){ result += ge.toString()+"n"; } } return result; } publicString printAll(){ String output =""; ArrayList<Cave> printElements =newArrayList<Cave>(); printElements.addAll(caveElements.values()); for(Cave ge : printElements){ if(ge instanceofParty){
  • 11. Party p =(Party) ge; output += p.toString(); } } output +="n-----------------nLonersn-----------------n"; for(Cave ge : loners){ output +="n"+ ge.toString(); } return output; } publicvoid setGameElements(String fileName)throwsIOExcepti on{ this.loadFileData(fileName); } publicvoid setFileName(String fileName){ this.fileName = fileName; } publicString getFileName(){ returnthis.fileName; } //Prints the elements, sorted by the critera and the object they b elong to publicString printSortedElements(String object){ String result =""; Set elementSet = caveElements.entrySet(); Iterator i = elementSet.iterator(); while(i.hasNext()){ Map.Entry g =(Map.Entry)i.next(); Cave ge =(Cave)g.getValue(); if(ge instanceofParty){
  • 12. Party p =(Party)ge; if("empathy".equals(object)||"carrying".equals(object)||"fear".eq uals(object)||"name".equals(object)||"age".equals(object)||"heigh t".equals(object)||"weight".equals(object)){ Collections.sort(p.creatures,newCreatureComp(object)); } if("value".equals(object)){ for(Creature c : p.creatures){ Collections.sort(c.treasures,newTreasureComp(object)); } } result += p.toString(); } } result +="n---------------------nLonersn------------------ -n"; for(Cave geLoner : loners){ result += geLoner.toString(); } return result; } publicvoid addJob(int index,String name,int creatureIndex,long time){ Jobs j =newJobs(index, name, creatureIndex, time); caveElements.put(index, j); Creature c =(Creature)caveElements.get(creatureIndex); c.addJob(time, j); Thread t =newThread(c); t.start(); } privatevoid loadFileData(String fileName)throwsIOException{ List<String> lines =newArrayList<String>();
  • 13. File file =newFile(fileName); Scanner scanner=newScanner(file); while(scanner.hasNext()){ lines.add(scanner.nextLine()); } for(String line : lines){ line = line.replaceAll("s",""); if(!line.startsWith("//")&& line.length()>0){ String[] lineparts = line.split(":"); switch(lineparts[0].charAt(0)){ case'p': party =newParty(Integer.parseInt(lineparts[1]), lin eparts[2]); this.caveElements.put(party.index, party); parties.add(party); break; case'c': creature =newCreature(Integer.parseInt(lineparts[1 ]), lineparts[2], lineparts[3], Integer.parseInt(lineparts[4]), Integer.parseInt(lineparts[5]), Integer.parseInt(lineparts[6]), Double.parseDouble(lineparts[7])); if(lineparts.length >8&& lineparts[8]!=null){ creature.age =Integer.parseInt(lineparts[8]); } if(lineparts.length >9&& lineparts[9]!=null){ creature.height =Double.parseDouble(lineparts[ 9]); } if(lineparts.length >10&& lineparts[10]!=null){ creature.weight =Integer.parseInt(lineparts[10]) ;
  • 14. } Party creatureParty =(Party) caveElements .get(creature.partyIndex); if(creatureParty ==null|| creature.partyIndex ==0){ this.loners.add(creature); }else{ creatureParty.addCreature(creature); } this.caveElements.put(creature.index, creature); break; case't': treasure =newTreasure(Integer.parseInt(lineparts[1 ]), lineparts[2],Integer.parseInt(lineparts[3]), Double.parseDouble(lineparts[4]), Double.parseDouble(lineparts[5])); Creature treasureCreature =(Creature) caveElements .get(treasure.creatureIndex); if(treasureCreature ==null|| treasure.creatureIndex ==0){ this.loners.add(treasure); }else{ treasureCreature.addTreature(treasure); } this.caveElements.put(treasure.index, treasure); break; case'a': artifact =newArtifact(Integer.parseInt(lineparts[1] ), lineparts[2],Integer.parseInt(lineparts[3])); Creature artifactCreature =(Creature) caveElements .get(artifact.creatureIndex); if(artifactCreature ==null|| artifact.creatureIndex ==0){ this.loners.add(artifact); }elseif(artifact.creatureIndex !=0){ artifactCreature.addArtifact(artifact); }
  • 15. this.caveElements.put(artifact.index, artifact); break; case'j': addJob(Integer.parseInt(lineparts[1]), lineparts[2], Integer.parseInt(lineparts[3]),Long.parseLong(lineparts[4])); break; default: break; } } } } } src/input.txt // Jan 23, 2012 // Parties format: // p:<index>:<name> p : 10001 : Unity p : 10002 : Assemblage p : 10003 : Conglomeration // Creatures format: // c:<index>:<type>:<name>:<party>:<empathy>:<fear>:<carrying capacity> c : 20001 : Woman : Lucy :10001 : 17 : 22 : 20 c : 20002 : Woman : Jane :10001 : 22 : 15 : 25 c : 20003 : Woman : Nancy :10003 : 80 : 44 : 20 c : 20004 : Man : James :10002 : 35 : 13 : 50 c : 20005 : Troll : Fred :10002 : 03 : 05 : 150 c : 20006 : Warlock : Harry :10003 : 05 : 06 : 0 c : 20007 : Witch : Morgana:10001 : 10 : 15 : 0 // Treasures format: // t:<index>:<type>:<creature>:<weight>:<value>
  • 16. // creature = 0 means noone is carrying that treasure at the moment t : 30001 : Gold : 20004 : 50 : 2000 t : 30002 : Gold : 0 : 75 : 5000 t : 30003 : Gems : 20002 : 10 : 10000 t : 30004 : Silver : 20005 : 120 : 1000 // Artifacts format: // a:<index>:<type>:<creature>[:<name>] a : 40001 : Wand : 20007 : ElderWand a : 40002 : Wand : 20006 a : 40003 : Potion : 20007 j : 50001 : Heal Troll : 20007 : 10 : Wand : 1 : Stone : 2 : Scroll : 1 src/Jobs.javasrc/Jobs.javapublicclassJobsextendsCave{ publicint creatureIndex =0; publiclong time =0; /** * Costructor * @param index * @param name * @param creatureIndex * @param time */ publicJobs(int index,String name,int creatureIndex,long time){ super(index, name); this.creatureIndex = creatureIndex; this.time = time; } } src/Main.javasrc/Main.javaimport java.awt.BorderLayout; import java.awt.event.ActionEvent;
  • 17. import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.border.EmptyBorder; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; publicclassMainextendsJFrameimplementsActionListener{ /***/ privateJTextArea output; /***/ privateJFileChooser fileChooser; /***/ privateJButton loadButton; /***/ privateJButton showData;
  • 18. /***/ privateJScrollPane completePanel; /***/ privateJPanel panel; /***/ privateGame game; JTextField searchField; JButton searchButton; JButton sortButton; String[] sortStrings ={"empathy","carrying","fear","weight","va lue", "age","height"};; JComboBox sList; JTree gameTree; DefaultMutableTreeNode partyNode =null; DefaultMutableTreeNode creatureNode =null; DefaultMutableTreeNode artifactNode =null; DefaultMutableTreeNode treasureNode =null; DefaultMutableTreeNode lNode =null; publicMain(String title){ searchField =newJTextField(20); sortButton =newJButton("Sort"); searchButton =newJButton("Search"); sList =newJComboBox(sortStrings); game =newGame(); panel =newJPanel(); fileChooser =newJFileChooser(".");
  • 19. output =newJTextArea(); showData =newJButton("Show Data"); loadButton =newJButton("Load File"); this.loadButton.addActionListener(this); this.showData.addActionListener(this); this.searchButton.addActionListener(this); this.sortButton.addActionListener(this); completePanel =newJScrollPane(output); add(completePanel,BorderLayout.CENTER); panel.add(loadButton); panel.add(showData); panel.add(sortButton); panel.add(sList); panel.add(searchButton); panel.add(searchField); add(panel,BorderLayout.PAGE_END); setTitle(title); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setSize(400,400); setVisible(true); } @Override publicvoid actionPerformed(ActionEvent e){ if(e.getSource()== loadButton){ int returnVal = fileChooser.showOpenDialog(this); if(returnVal ==JFileChooser.APPROVE_OPTION){ File file = fileChooser.getSelectedFile(); try{ game.setGameElements(file.getAbsolutePath()); JOptionPane.showMessageDialog(null,
  • 20. "Data Successfully Loaded!"); }catch(IOException ex){ Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } }elseif(e.getSource()== showData){ DefaultTreeCellRenderer render =newDefaultTreeCellRenderer( ); render.setOpenIcon(null); render.setClosedIcon(null); render.setLeafIcon(null); finalDefaultMutableTreeNode rootNode =newDefaultMutableTr eeNode( "Game/Cave",true); gameTree =newJTree(rootNode); gameTree.setCellRenderer(render); JScrollPane sp =newJScrollPane(gameTree); gameTree.addTreeSelectionListener(newTreeSelectionL istener(){ @Override publicvoid valueChanged(TreeSelectionEvent e){ if(rootNode !=null){ for(Party p : game.parties){ partyNode =newDefaultMutableTreeNode(p. name,true); if(!p.creatures.isEmpty()){ for(Creature c : p.creatures){ creatureNode =newDefaultMutableTree Node( c.name,true); if(!c.artifacts.isEmpty()){ for(Artifact a : c.artifacts){ artifactNode =newDefaultMutable
  • 21. TreeNode( a.type,false); creatureNode.add(artifactNode); } } if(!c.treasures.isEmpty()){ for(Treasure t : c.treasures){ treasureNode =newDefaultMutabl eTreeNode( t.type,false); creatureNode.add(treasureNode); } } partyNode.add(creatureNode); } } rootNode.add(partyNode); } lNode =newDefaultMutableTreeNode("Loners", true); for(Cave ge : game.loners){ if(ge instanceofArtifact || ge instanceofTreasure){ DefaultMutableTreeNode geNode =newDefaultMutableTreeNod e( ge.type,false); lNode.add(geNode); }else{ DefaultMutableTreeNode geNode =newDefaultMutableTreeNod e( ge.name,false); lNode.add(geNode); } } rootNode.add(lNode); }
  • 22. } }); JLabel lbl =newJLabel( "Double-click the root node to load and view sub-nodes."); JFrame showFrame =newJFrame("Show Data: Game Tree"); JPanel lblPanel =newJPanel(); lblPanel.setBorder(newEmptyBorder(10,10,10,10)); lblPanel.add(lbl); showFrame.add(lblPanel,BorderLayout.NORTH); sp.setBorder(newEmptyBorder(10,10,10,10)); showFrame.add(sp,BorderLayout.SOUTH); showFrame.pack(); showFrame.setVisible(true); showFrame.setLocationRelativeTo(null); showFrame.setDefaultCloseOperation(JFrame.DISPOSE _ON_CLOSE); }elseif(e.getSource()== searchButton){ output.setText(""); String resultText ="Search Results: n------------n"; String searchInput = searchField.getText(); resultText += game.searchGame(searchInput); output.setText(resultText); }elseif(e.getSource()== sortButton){ output.setText(""); String sortInput = sList.getSelectedItem().toString(); String resultText = game.printSortedElements(sortInput); output.setText(resultText); } } publicstaticvoid main(String[] args){ Main p =newMain("New Game"); } }
  • 23. src/Party.javasrc/Party.javaimport java.util.ArrayList; publicclassPartyextendsCave{ publicString location; publicArrayList<Creature> creatures =newArrayList<Creature> (); /*** * Constructor * @param index * @param name */ publicParty(int index,String name){ super(index, name); } /*** * * @param c */ publicvoid addCreature(Creature c){ if(c !=null&& c instanceofCreature){ this.creatures.add(c); } } @Override publicString toString(){ String output =""; output +="Party: nName = "+this.name +" nIndex = " +Integer.toString(this.index); output +="n---------Member Creatures---------n"; for(Creature c :this.creatures) output +="nt"+ c.toString();
  • 24. output +="n----------------------------------n"; return output; } } src/Treasure.javasrc/Treasure.java classTreasureextendsCave{ publicint creatureIndex =0; publicdouble weight; publicdouble value; /*** * Constructor * @param index * @param type * @param creatureIndex * @param weight * @param value */ publicTreasure(int index,String type,int creatureIndex,double w eight,double value){ super(type, index); this.creatureIndex = creatureIndex; this.weight = weight; this.value = value; } @Override publicString toString(){ return"[Treasure]: ntType = "+this.type +" ntOwner Index = "+Integer.toString(this.creatureIndex)+" ntWeight = "+Double. toString(this.weight)+" ntValue = "+Double.toString(this.valu e); } }
  • 25. src/TreasureComp.javasrc/TreasureComp.javaimport java.util.C omparator; publicclassTreasureCompimplementsComparator<Treasure>{ privateString attribute; publicTreasureComp(String attribute){ // set the member variable for the attribute we will sort by this.attribute = attribute; } @Override publicint compare(Treasure t1,Treasure t2){ int result =-1; // a switch statement for the member variable to handle multiple // criteria in a single class switch(attribute.charAt(0)){ case'w': if(t1.weight == t2.weight){ result =0; }elseif(t1.weight > t2.weight){ result =1; }else{ result =-1; } break; case'v': if(t1.value == t2.value){ result =0; }elseif(t1.value > t2.value){ result =1; }else{ result =-1; }
  • 26. break; default: if(t1.value == t2.value){ result =0; }elseif(t1.value > t2.value){ result =1; }else{ result =-1; } break; } return result; } } aSPaa.txt // File: aSPaa.txt // Data file for SeaPort projects // Date: Sat Jul 09 22:51:16 EDT 2016 // parameters: 1 1 5 5 1 5 // ports, docks, pships, cships, jobs, persons // port name index parent(null) // port <string> <int> <int> port Lanshan 10000 0 // dock name index parent(port) // dock <string> <int> <int> dock Pier_4 20004 10000 30004 dock Pier_0 20000 10000 30000 dock Pier_1 20001 10000 30001 dock Pier_3 20003 10000 30003 dock Pier_2 20002 10000 30002
  • 27. // pship name index parent(dock/port) weight length width draft numPassengers numRooms numOccupied // pship <string> <int> <int> <double> <double> <double> <double> <int> <int> <int> pship Gallinules 30000 20000 125.99 234.70 60.67 37.14 746 246 246 pship Remora 30001 20001 126.38 358.27 74.12 31.54 3768 979 979 pship Absentmindedness 30004 20004 86.74 450.43 33.13 41.67 2143 920 920 pship Preanesthetic 30003 20003 149.85 483.92 125.71 31.21 166 409 83 pship Shoetrees 30002 20002 134.41 156.96 120.31 35.20 1673 633 633 // cship name index parent(dock/port) weight length width draft cargoWeight cargoVolume cargoValue // cship <string> <int> <int> <double> <double> <double> <double> <double> <double> <double> cship Erosional 40001 10000 200.80 242.33 38.31 23.49 172.73 188.54 235.57 cship Kielbasas 40000 10000 120.85 362.55 96.82 19.09 33.08 188.31 261.57 cship Generics 40002 10000 79.90 234.26 73.18 15.71 125.27 179.00 729.95 cship Barcelona 40003 10000 219.92 443.54 104.44 34.16 86.69 139.89 813.72 cship Toluene 40004 10000 189.12 448.99 73.97 37.67 88.90 175.03 1002.63 // person name index parent skill // person <string> <int> <int> <string> person Sara 50000 10000 electrician person Duane 50002 10000 inspector person Betsy 50004 10000 cleaner person Archie 50003 10000 captain
  • 28. person Thomas 50001 10000 clerk aSPab.txt // File: aSPab.txt // Data file for SeaPort projects // Date: Sat Jul 09 17:59:17 EDT 2016 // port name index parent(null) // port <string> <int> <int> port Xiangtan 10003 0 port Port_Des_Galets 10001 0 port Wuchun 10004 0 port Majunga 10002 0 port Bangpakong 10000 0 // dock name index parent(port) // dock <string> <int> <int> dock Pier_30 20030 10003 40048 dock Pier_24 20024 10003 30017 dock Pier_21 20021 10002 30014 dock Pier_31 20031 10003 40049 dock Pier_9 20009 10001 30008 dock Pier_27 20027 10003 40045 dock Pier_3 20003 10000 30003 dock Pier_33 20033 10004 30021 dock Pier_10 20010 10001 30009 dock Pier_26 20026 10003 30019 dock Pier_1 20001 10000 30001 dock Pier_8 20008 10001 30007 dock Pier_5 20005 10000 40000 dock Pier_20 20020 10002 30013 dock Pier_23 20023 10003 30016 dock Pier_35 20035 10004 30023 dock Pier_13 20013 10001 40017 dock Pier_16 20016 10001 40020
  • 29. dock Pier_17 20017 10002 30010 dock Pier_32 20032 10004 30020 dock Pier_11 20011 10001 40015 dock Pier_0 20000 10000 30000 dock Pier_2 20002 10000 30002 dock Pier_19 20019 10002 30012 dock Pier_4 20004 10000 30004 dock Pier_18 20018 10002 30011 dock Pier_36 20036 10004 30024 dock Pier_22 20022 10003 30015 dock Pier_25 20025 10003 30018 dock Pier_37 20037 10004 40060 dock Pier_14 20014 10001 40018 dock Pier_29 20029 10003 40047 dock Pier_12 20012 10001 40016 dock Pier_7 20007 10001 30006 dock Pier_28 20028 10003 40046 dock Pier_15 20015 10001 40019 dock Pier_34 20034 10004 30022 dock Pier_6 20006 10001 30005 // cship name index parent(dock/port) weight length width draft cargoWeight cargoVolume cargoValue // cship <string> <int> <int> <double> <double> <double> <double> <double> <double> <double> pship Shinto 30014 20021 172.82 233.60 106.32 25.42 1492 496 496 pship Poached 30021 20033 96.01 476.75 127.37 23.03 1247 607 607 pship Forbode 30012 20019 57.35 293.08 35.84 33.74 2608 1095 1095 pship Odorant 30024 20036 110.51 185.17 104.05 38.08 710 1030 355 pship Aspheric 30001 20001 232.37 340.63 100.13 16.05 41 723 20 pship Jollity 30020 20032 83.65 285.79 71.84 35.81
  • 30. 3639 949 949 pship Roundly 30005 20006 79.15 400.46 72.59 18.89 1937 532 532 pship Hooky 30013 20020 147.50 287.46 107.15 27.13 1148 827 574 pship Historians 30018 20025 137.12 191.31 100.04 41.54 143 165 71 pship Subdividing 30011 20018 240.08 154.54 94.33 26.29 2044 1068 1022 pship Fussbudgets 30007 20008 234.99 109.73 100.95 38.73 1136 323 323 pship Loathsomely 30010 20017 228.47 150.54 80.27 42.15 782 256 256 pship Metricizes 30022 20034 90.84 178.97 102.97 38.96 1361 579 579 pship Populism 30004 20004 218.81 475.55 72.64 44.56 1014 765 507 pship Cracking 30002 20002 86.41 457.78 63.99 34.70 2198 625 625 pship Paradoxical 30023 20035 222.98 492.00 102.26 18.35 1443 691 691 pship Nonsporting 30008 20009 249.37 191.65 81.57 32.63 2138 578 578 pship Shoemaker 30015 20022 142.37 294.62 97.04 15.80 83 107 41 pship Patchiness 30000 20000 137.89 377.48 95.21 35.45 1499 725 725 pship Recliners 30003 20003 226.17 497.52 50.87 31.20 215 150 107 pship Percept 30019 20026 80.12 388.34 100.06 24.74 219 201 109 pship Isomers 30009 20010 158.08 206.87 40.90 15.24 49 342 24 pship Roiling 30006 20007 191.77 213.50 58.31 43.16 1402 917 701 pship Nattily 30016 20023 102.97 204.58 92.56
  • 31. 32.71 531 615 265 pship Propagator 30017 20024 160.79 236.34 46.87 40.39 869 292 292 // pship name index parent(dock/port) weight length width draft numPassengers numRooms numOccupied // pship <string> <int> <int> <double> <double> <double> <double> <int> <int> <int> cship Untimelier 40017 20013 175.16 300.33 49.89 26.39 35.66 187.27 70.85 cship Cryogens 40067 10004 150.34 138.39 60.20 44.05 67.98 153.38 395.82 cship Fatherless 40049 20031 234.99 395.50 35.12 19.90 183.08 189.54 237.54 cship Asps 40038 10002 71.83 191.71 98.96 31.17 100.02 125.43 811.41 cship Retrofiring 40023 10001 155.86 367.87 40.97 24.23 169.00 187.23 636.90 cship Nodus 40053 10003 202.97 152.40 105.13 22.19 69.52 183.73 945.90 cship Sheaths 40058 10003 177.57 289.14 105.60 19.86 205.22 146.13 866.06 cship Bilberry 40001 10000 153.28 219.77 81.86 40.59 88.39 117.32 795.56 cship Tractional 40056 10003 140.33 156.87 46.12 27.35 101.61 195.72 830.93 cship Precariousness 40040 10002 72.25 140.57 121.65 43.52 125.30 187.16 688.78 cship Cognati 40041 10002 189.25 383.64 101.62 22.28 69.94 153.94 179.96 cship Clips 40027 10001 60.77 130.85 68.69 18.10 97.85 123.80 177.95 cship Preappointing 40021 10001 148.67 198.61 41.04 31.90 95.85 174.97 617.61 cship Varlets 40060 20037 203.82 310.63 102.49 26.93 200.79 101.79 844.02
  • 32. cship Stethoscopically 40032 10002 68.80 269.60 126.76 21.21 146.92 106.31 101.34 cship Hyaenas 40013 10000 229.90 276.48 120.61 42.91 171.73 175.26 459.76 cship Boxiest 40068 10004 110.66 346.47 80.98 22.70 148.88 109.67 873.68 cship Anteroom 40008 10000 244.76 491.56 103.88 31.70 68.64 179.50 497.56 cship Taxing 40016 20012 61.92 300.87 97.35 33.67 110.18 116.20 160.69 cship Prouder 40006 10000 114.63 170.63 85.71 37.50 191.29 176.61 908.68 cship Mishear 40050 10003 182.89 288.74 31.23 30.61 192.55 133.99 700.92 cship Lifted 40074 10004 236.94 140.15 34.50 27.18 172.86 159.53 141.12 cship Bartizans 40024 10001 132.65 252.35 127.95 42.16 163.46 188.28 788.73 cship Sesterces 40054 10003 218.64 324.08 116.30 39.06 67.63 125.01 169.19 cship Filterers 40029 10001 129.83 345.14 50.99 38.79 100.30 136.79 585.19 cship Discording 40061 10004 130.52 256.10 56.28 42.84 154.75 125.88 474.02 cship Dayside 40018 20014 238.47 135.06 55.36 39.71 88.34 141.47 363.42 cship Pecky 40014 10000 81.46 122.90 42.00 19.09 86.26 183.02 552.96 cship Derm 40051 10003 58.30 159.98 55.98 34.72 175.37 122.11 200.11 cship Uprears 40002 10000 181.45 266.47 77.75 16.52 76.28 145.33 881.34 cship Revolters 40003 10000 121.94 480.01 119.33 41.24 50.76 193.72 383.52 cship Brazed 40037 10002 246.05 358.28 52.73 23.19 203.08 116.64 595.87
  • 33. cship Eroticism 40045 20027 104.76 448.89 122.55 25.63 121.42 160.48 987.28 cship Swale 40025 10001 241.79 300.10 113.13 35.06 21.51 160.49 556.49 cship Feedbacks 40043 10002 220.27 103.16 121.23 36.69 47.04 109.18 963.42 cship Lynxes 40057 10003 235.58 205.57 122.20 34.94 117.05 158.97 768.05 cship Squatly 40070 10004 141.18 235.01 89.58 33.06 27.59 151.54 919.71 cship Moronism 40042 10002 87.92 454.21 123.44 35.94 209.25 179.98 104.82 cship Holocene 40069 10004 209.23 182.71 54.44 24.59 176.83 117.74 737.08 cship Feoffment 40028 10001 166.65 256.59 76.30 32.33 131.11 104.63 454.46 cship Tortilla 40066 10004 195.04 108.17 121.38 20.25 184.28 105.29 132.02 cship Undercarriage 40036 10002 147.48 499.22 103.11 25.96 68.73 184.87 168.32 cship Subservience 40010 10000 106.55 316.13 120.34 30.66 57.02 116.13 595.85 cship Pliers 40019 20015 213.43 300.64 65.51 44.50 146.09 166.07 498.48 cship Tiaraed 40026 10001 80.18 413.97 123.25 31.98 160.58 121.93 783.37 cship Machinizing 40064 10004 216.47 207.94 127.61 42.77 97.84 157.77 142.07 cship Tressiest 40052 10003 97.92 134.79 110.75 23.83 138.98 162.35 340.96 cship Vortices 40055 10003 194.15 260.90 77.63 38.98 40.78 184.43 459.07 cship Laughable 40046 20028 138.53 145.07 95.50 28.39 166.46 124.21 450.20 cship Dime 40031 10002 224.94 164.63 119.22 37.82 167.53 197.08 634.05
  • 34. cship Vindicator 40004 10000 132.61 149.09 39.44 37.08 43.57 127.75 141.77 cship Synchrony 40072 10004 216.91 437.29 44.17 23.67 139.66 181.35 629.33 cship Rooms 40059 10003 108.85 153.64 33.58 30.79 119.77 117.49 745.19 cship Nonconclusive 40000 20005 203.79 366.04 75.95 44.06 102.74 191.87 259.46 cship Memorializes 40073 10004 125.11 148.86 124.55 22.83 194.08 112.93 328.14 cship Lateraled 40030 10002 120.10 324.08 54.11 19.76 174.51 139.29 500.00 cship Euphony 40005 10000 80.48 222.75 84.59 43.25 165.39 154.42 939.24 cship Unscrambled 40034 10002 200.20 237.23 117.57 41.69 140.60 165.83 878.67 cship Octopod 40047 20029 198.58 269.20 110.53 37.27 160.77 164.50 326.84 cship Donatives 40044 10002 196.91 288.27 121.27 39.34 154.01 149.14 538.88 cship Enlightening 40009 10000 99.27 267.58 86.55 34.86 28.14 157.02 397.52 cship Ceaselessly 40007 10000 190.73 422.70 82.96 43.82 198.18 173.31 586.02 cship Flushness 40020 20016 56.34 217.46 70.43 38.97 169.32 181.80 826.45 cship Shipments 40012 10000 54.18 189.42 81.00 23.63 154.16 109.70 385.78 cship Fairer 40063 10004 247.31 271.94 117.28 19.43 78.09 171.60 507.42 cship Suppers 40015 20011 83.72 278.40 103.67 44.59 44.76 107.10 574.81 cship Crocus 40011 10000 128.89 450.39 124.86 33.71 124.63 188.38 966.38 cship Rift 40062 10004 174.52 272.51 107.22 36.91 100.12 127.19 608.93
  • 35. cship Wieldier 40022 10001 123.70 446.72 56.99 34.17 141.05 198.03 117.15 cship Nonzero 40033 10002 51.73 208.25 87.22 39.93 185.70 190.90 550.27 cship Repacked 40039 10002 209.01 160.09 74.09 29.42 219.33 180.03 615.80 cship Miscarrying 40048 20030 79.23 163.62 31.78 29.93 186.27 162.43 774.06 cship Commonalities 40071 10004 114.67 166.80 41.67 18.81 214.12 112.13 862.16 cship Epicures 40065 10004 120.66 379.77 42.94 27.71 36.74 111.39 41.66 cship Fencible 40035 10002 108.87 390.89 107.91 16.60 125.25 114.04 876.69 // person name index parent skill // person <string> <int> <int> <string> person Suzanne 50010 10001 electrician person Antonia 50004 10000 cleaner person Lindsay 50000 10000 driver person Phillip 50026 10003 electrician person Raymond 50028 10003 engineer person Melissa 50008 10001 inspector person Roosevelt 50035 10004 stevedore person Jaime 50001 10000 stevedore person Lee 50030 10003 crew person Rene 50011 10001 driver person Jesus 50015 10002 craneOperator person Manuel 50016 10002 inspector person Floyd 50021 10002 clerk person Wilson 50022 10003 driver person Devin 50031 10003 painter person Robert 50029 10003 captain person Dexter 50019 10002 clerk person Phil 50032 10004 inspector person Ruby 50025 10003 cleaner
  • 36. person Louis 50012 10001 driver person Lena 50038 10004 cleaner person Manuel 50003 10000 stevedore person Josefina 50006 10000 electrician person Van 50013 10001 mate person Marc 50018 10002 painter person Terrell 50007 10000 craneOperator person Latoya 50037 10004 driver person Eileen 50023 10003 driver person Kirk 50040 10004 craneOperator person Jeremy 50020 10002 carpenter person Marianne 50005 10000 mate person Sonya 50002 10000 crew person Alma 50027 10003 driver person Gregg 50039 10004 inspector person Maxine 50033 10004 engineer person Jorge 50034 10004 clerk person Gerald 50017 10002 driver person Jared 50036 10004 cleaner person Debbie 50014 10001 crew person Rosemary 50009 10001 painter person Betty 50041 10004 crew person Lula 50024 10003 stevedore // job name index parent duration [skill]+ (one or more, matches skill in person, may repeat) // job <string> <int> <int> <double> [<string>]+ job Job_43_28_99 60017 20008 115.45 crew job Job_21_18_37 60048 20025 28.96 driver mate captain job Job_85_12_67 60010 20006 112.40 captain engineer job Job_93_75_37 60045 20024 113.93 painter mechanic mate job Job_15_12_79 60004 20002 52.23 captain job Job_48_66_14 60050 20026 91.29 janitor painter job Job_72_14_91 60026 20014 36.48 mechanic cleaner
  • 37. engineer job Job_23_72_11 60028 20016 119.37 painter job Job_69_84_69 60022 20011 73.06 job Job_62_54_25 60039 20020 78.45 electrician inspector inspector job Job_17_16_45 60053 20028 101.28 janitor job Job_64_37_30 60060 20030 32.83 cleaner job Job_70_22_33 60016 20008 59.33 captain janitor job Job_87_43_30 60018 20008 54.70 job Job_97_89_59 60040 20020 78.76 driver carpenter clerk job Job_54_59_44 60058 20029 33.94 job Job_34_51_24 60012 20007 56.78 craneOperator job Job_25_22_42 60027 20015 90.27 mate job Job_83_52_34 60020 20011 104.73 craneOperator janitor mate job Job_24_45_53 60006 20005 43.24 job Job_18_60_58 60041 20022 59.21 stevedore stevedore mechanic job Job_56_71_54 60002 20000 94.05 captain mechanic job Job_94_61_26 60052 20027 102.05 job Job_28_37_44 60025 20013 62.07 electrician stevedore electrician mate job Job_44_97_43 60047 20025 76.59 inspector job Job_52_37_12 60034 20018 72.25 stevedore driver electrician job Job_12_98_61 60029 20016 103.52 captain mate job Job_57_78_17 60031 20017 46.86 janitor job Job_72_45_87 60030 20017 32.27 job Job_39_82_51 60007 20005 42.08 craneOperator job Job_23_28_28 60063 20032 40.68 cleaner job Job_95_16_31 60009 20006 33.95 crew electrician job Job_95_93_46 60042 20022 98.93 cleaner job Job_93_67_29 60054 20028 84.01 carpenter job Job_63_27_49 60001 20000 67.52 mate craneOperator janitor
  • 38. job Job_36_58_47 60037 20019 45.17 job Job_87_24_74 60038 20020 82.15 janitor job Job_35_38_99 60062 20031 39.87 electrician captain painter job Job_22_49_79 60023 20012 58.51 mate inspector job Job_25_18_27 60035 20018 83.68 carpenter job Job_43_23_55 60000 20000 63.98 painter job Job_58_74_44 60049 20026 106.57 clerk job Job_41_82_87 60021 20011 41.30 captain electrician job Job_73_37_28 60043 20023 59.33 clerk driver stevedore mechanic job Job_15_75_22 60003 20001 77.07 painter job Job_31_99_72 60011 20007 56.21 crew mate cleaner job Job_46_47_77 60005 20004 34.36 craneOperator captain job Job_45_20_77 60056 20029 92.04 mechanic mechanic painter job Job_84_13_54 60055 20028 30.22 job Job_65_72_80 60051 20027 109.26 cleaner clerk job Job_14_16_95 60046 20024 86.05 cleaner job Job_45_69_80 60008 20006 20.47 electrician electrician craneOperator job Job_85_35_39 60057 20029 20.14 painter job Job_84_47_18 60064 20033 53.13 stevedore job Job_49_35_30 60036 20018 86.21 painter job Job_99_96_22 60066 20035 114.08 mate cleaner driver job Job_59_13_44 60033 20018 106.98 captain mate job Job_75_34_93 60019 20009 102.65 captain job Job_13_46_55 60059 20030 52.58 mate job Job_65_83_46 60065 20035 22.44 job Job_95_63_43 60014 20007 92.76 job Job_62_68_53 60061 20031 62.92 mate captain stevedore
  • 39. job Job_50_56_48 60013 20007 103.32 clerk captain job Job_55_21_13 60015 20008 81.95 mate job Job_82_30_38 60044 20023 79.63 engineer job Job_97_28_54 60024 20013 32.49 captain job Job_38_17_58 60032 20017 50.67 engineer painter aSPac.txt // File: aSPac.txt // Data file for SeaPort projects // Date: Sat Jul 09 23:09:04 EDT 2016 // parameters: 8 15 20 20 5 30 // ports, docks, pships, cships, jobs, persons // port name index parent(null) // port <string> <int> <int> port An_Ping 10004 0 port Chimbote 10006 0 port Norfolk 10007 0 port Damietta 10002 0 port Cologne 10000 0 port Athens 10003 0 port Lubljana 10001 0 port Santiago 10005 0 // dock name index parent(port) // dock <string> <int> <int> dock Pier_80 20080 10006 30121 dock Pier_69 20069 10004 30091 dock Pier_58 20058 10004 30080 dock Pier_44 20044 10003 30063 dock Pier_34 20034 10002 30052 dock Pier_21 20021 10001 30025 dock Pier_32 20032 10002 30050 dock Pier_51 20051 10003 30070 dock Pier_87 20087 10006 30128
  • 40. dock Pier_60 20060 10004 30082 dock Pier_91 20091 10007 30140 dock Pier_81 20081 10006 30122 dock Pier_31 20031 10002 30049 dock Pier_40 20040 10002 30058 dock Pier_73 20073 10005 30103 dock Pier_41 20041 10003 30060 dock Pier_45 20045 10003 30064 dock Pier_17 20017 10001 30021 dock Pier_18 20018 10001 30022 dock Pier_6 20006 10000 30006 dock Pier_64 20064 10004 30086 dock Pier_97 20097 10007 30146 dock Pier_11 20011 10000 30011 dock Pier_56 20056 10003 30075 dock Pier_93 20093 10007 30142 dock Pier_33 20033 10002 30051 dock Pier_12 20012 10000 30012 dock Pier_67 20067 10004 30089 dock Pier_27 20027 10002 30045 dock Pier_8 20008 10000 30008 dock Pier_49 20049 10003 30068 dock Pier_2 20002 10000 30002 dock Pier_43 20043 10003 30062 dock Pier_95 20095 10007 30144 dock Pier_19 20019 10001 30023 dock Pier_42 20042 10003 30061 dock Pier_7 20007 10000 30007 dock Pier_38 20038 10002 30056 dock Pier_92 20092 10007 30141 dock Pier_57 20057 10003 30076 dock Pier_30 20030 10002 30048 dock Pier_99 20099 10007 30148 dock Pier_28 20028 10002 30046 dock Pier_26 20026 10002 30044 dock Pier_88 20088 10006 30129
  • 41. dock Pier_3 20003 10000 30003 dock Pier_0 20000 10000 30000 dock Pier_79 20079 10006 30120 dock Pier_39 20039 10002 30057 dock Pier_10 20010 10000 30010 dock Pier_48 20048 10003 30067 dock Pier_1 20001 10000 30001 dock Pier_85 20085 10006 30126 dock Pier_82 20082 10006 30123 dock Pier_50 20050 10003 30069 dock Pier_74 20074 10005 30104 dock Pier_94 20094 10007 30143 dock Pier_61 20061 10004 30083 dock Pier_100 20100 10007 30149 dock Pier_84 20084 10006 30125 dock Pier_24 20024 10002 30042 dock Pier_23 20023 10002 30041 dock Pier_75 20075 10005 30105 dock Pier_15 20015 10000 30015 dock Pier_25 20025 10002 30043 dock Pier_63 20063 10004 30085 dock Pier_68 20068 10004 30090 dock Pier_98 20098 10007 30147 dock Pier_72 20072 10005 30102 dock Pier_46 20046 10003 30065 dock Pier_90 20090 10006 30131 dock Pier_86 20086 10006 30127 dock Pier_13 20013 10000 30013 dock Pier_66 20066 10004 30088 dock Pier_59 20059 10004 30081 dock Pier_52 20052 10003 30071 dock Pier_54 20054 10003 30073 dock Pier_83 20083 10006 30124 dock Pier_76 20076 10005 30106 dock Pier_22 20022 10002 30040 dock Pier_9 20009 10000 30009
  • 42. dock Pier_70 20070 10005 30100 dock Pier_4 20004 10000 30004 dock Pier_47 20047 10003 30066 dock Pier_5 20005 10000 30005 dock Pier_16 20016 10001 30020 dock Pier_62 20062 10004 30084 dock Pier_53 20053 10003 30072 dock Pier_55 20055 10003 30074 dock Pier_78 20078 10005 30108 dock Pier_77 20077 10005 30107 dock Pier_20 20020 10001 30024 dock Pier_35 20035 10002 30053 dock Pier_36 20036 10002 30054 dock Pier_103 20103 10007 30152 dock Pier_104 20104 10007 30153 dock Pier_96 20096 10007 30145 dock Pier_14 20014 10000 30014 dock Pier_29 20029 10002 30047 dock Pier_71 20071 10005 30101 dock Pier_101 20101 10007 30150 dock Pier_37 20037 10002 30055 dock Pier_89 20089 10006 30130 dock Pier_102 20102 10007 30151 dock Pier_65 20065 10004 30087 // pship name index parent(dock/port) weight length width draft numPassengers numRooms numOccupied // pship <string> <int> <int> <double> <double> <double> <double> <int> <int> <int> pship Towability 30102 20072 105.33 137.77 69.88 23.82 266 107 107 pship Iterating 30125 20084 132.62 347.44 123.80 40.77 3654 1002 1002 pship Swindling 30019 10000 87.26 258.74 43.53 17.64 3069 805 805 pship Starrier 30034 10001 101.86 342.56 120.24
  • 43. 21.83 708 350 350 pship Dovetailing 30115 10005 173.45 187.98 37.91 34.75 33 1011 16 pship Entitlement 30012 20012 191.37 423.36 69.52 40.68 134 949 67 pship Ashen 30006 20006 81.96 451.08 98.07 21.39 2045 623 623 pship Copolymerization 30022 20018 189.97 336.02 83.62 30.50 131 515 65 pship Bloodsuckers 30088 20066 199.69 117.62 44.93 40.74 1307 374 374 pship Bladdery 30010 20010 164.92 118.58 86.82 34.35 156 762 78 pship Cyclamen 30055 20037 181.71 436.42 105.94 39.86 115 281 57 pship Remounting 30128 20087 62.01 395.54 34.52 41.85 2795 860 860 pship Byline 30053 20035 152.29 321.21 59.16 17.52 265 398 132 pship Stockinette 30004 20004 120.77 428.46 112.51 23.73 839 270 270 pship Indomitably 30035 10001 76.99 458.86 104.18 34.07 1826 689 689 pship Unitizes 30068 20049 52.07 176.80 60.76 24.28 1017 265 265 pship Retrievers 30130 20089 145.11 119.54 56.10 40.32 745 457 372 pship Watchmen 30096 10004 67.35 368.94 61.87 17.02 191 1010 95 pship Unlearned 30074 20055 222.87 467.25 110.83 20.08 2314 701 701 pship Confidently 30079 10003 213.14 409.82 99.99 37.18 2147 576 576 pship Cavie 30133 10006 158.79 132.04 61.34 20.15 2362 665 665 pship Tormentor 30114 10005 182.10 395.83 112.06
  • 44. 31.14 273 624 136 pship Holed 30155 10007 108.29 414.41 40.69 37.53 1184 346 346 pship Barbarousness 30075 20056 245.97 279.11 66.13 25.70 556 526 278 pship Intemperances 30116 10005 243.85 344.76 31.54 25.19 336 318 168 pship Kames 30062 20043 128.08 370.59 71.82 21.19 520 515 260 pship Sequences 30087 20065 233.98 423.67 76.22 17.22 1 194 0 pship Theory 30002 20002 55.50 238.06 127.47 17.18 1282 804 641 pship Encaged 30015 20015 95.54 414.98 95.74 15.38 1408 1014 704 pship Ashen 30056 20038 98.93 270.51 85.70 40.35 23 279 11 pship Cultivation 30107 20077 198.15 302.67 71.85 24.01 273 908 136 pship Prig 30154 10007 54.06 158.61 52.53 29.24 147 344 73 pship Deselected 30095 10004 103.56 320.89 99.49 16.04 265 825 132 pship Flayed 30032 10001 75.93 490.38 101.26 43.27 5 231 2 pship Dicots 30148 20099 219.18 147.81 120.55 24.94 1020 318 318 pship Reconciles 30153 20104 110.46 241.76 101.60 30.20 3597 1005 1005 pship Stubbles 30028 10001 84.03 443.37 48.25 41.02 2054 1016 1016 pship Riyal 30069 20050 213.35 400.13 66.20 17.68 2671 849 849 pship Interstices 30118 10005 87.82 104.84 60.47 42.44 2176 715 715 pship Reprobes 30111 10005 248.68 459.28 124.91
  • 45. 15.67 1562 915 781 pship Expellable 30156 10007 57.28 372.04 94.56 28.94 1202 377 377 pship Intelligently 30103 20073 170.77 229.38 120.70 42.05 295 524 147 pship Medials 30144 20095 248.62 167.62 35.28 29.76 9 128 4 pship Reminiscence 30124 20083 215.69 144.45 120.85 36.53 2968 825 825 pship Camellias 30078 10003 188.01 219.79 45.56 35.72 28 907 14 pship Alders 30044 20026 124.88 233.23 38.10 28.90 2707 928 928 pship Healthfully 30060 20041 116.80 326.46 72.31 40.26 1538 784 769 pship Toughies 30090 20068 54.12 469.62 98.59 30.95 2917 1086 1086 pship Lumper 30025 20021 84.61 372.77 80.15 37.56 562 461 281 pship Silly 30014 20014 139.08 182.19 49.16 42.92 189 191 94 pship Rulers 30132 10006 162.73 332.96 88.01 18.77 1748 790 790 pship Fowlings 30029 10001 115.08 482.29 115.58 27.40 570 218 218 pship Thermosetting 30099 10004 245.26 119.18 109.03 39.10 735 449 367 pship Commandment 30129 20088 86.97 392.80 79.22 31.85 2230 669 669 pship Bacchanalia 30058 20040 125.48 400.15 37.44 23.49 1011 512 505 pship Signers 30013 20013 74.56 234.47 80.29 35.88 1263 684 631 pship Pebbly 30054 20036 189.24 103.89 56.86 34.32 85 169 42 pship Keelage 30152 20103 160.32 210.58 107.65
  • 46. 19.41 463 662 231 pship Subnucleus 30064 20045 225.72 183.93 70.48 17.37 724 603 362 pship Evokes 30007 20007 170.71 294.44 68.83 15.23 1199 414 414 pship Hollo 30066 20047 153.01 233.90 71.07 28.76 1006 472 472 pship Mortal 30041 20023 217.95 110.60 106.44 34.59 206 352 103 pship Canner 30119 10005 225.56 207.87 41.90 37.64 159 863 79 pship Suturing 30033 10001 215.66 275.55 46.84 22.27 1101 688 550 pship Folksily 30039 10001 73.16 492.68 110.63 29.75 69 428 34 pship Gregariously 30145 20096 157.49 423.05 66.20 17.34 1427 503 503 pship Contrastingly 30105 20075 121.02 303.21 44.52 32.89 1514 659 659 pship Untrained 30100 20070 94.42 423.92 80.47 39.87 1779 817 817 pship Tarzans 30051 20033 123.80 300.23 64.39 36.97 2370 681 681 pship Bruises 30110 10005 108.38 124.07 106.15 24.13 196 348 98 pship Trotlines 30083 20061 177.33 170.58 100.99 31.30 734 218 218 pship Essays 30043 20025 55.14 337.31 124.64 32.95 2468 917 917 pship Unruled 30120 20079 111.96 294.37 102.28 18.37 1945 861 861 pship Qualm 30000 20000 218.93 162.68 98.04 26.04 471 170 170 pship Mechanotherapists 30141 20092 155.81 368.49 92.66 38.19 1036 760 518 pship Budgeting 30139 10006 110.19 287.23 128.26
  • 47. 26.96 3579 898 898 pship Fourths 30092 10004 150.74 329.05 129.54 41.23 99 328 49 pship Noggings 30108 20078 77.98 233.76 107.63 37.77 1615 783 783 pship Meddles 30106 20076 121.13 458.45 90.44 20.12 1607 462 462 pship Radiocaster 30112 10005 83.28 407.82 71.99 17.65 2737 934 934 pship Constancy 30136 10006 85.71 132.22 104.73 40.14 1215 874 607 pship Reception 30143 20094 88.51 410.02 32.95 44.59 1344 519 519 pship Castanets 30147 20098 220.16 288.44 63.67 32.47 17 346 8 pship Daggered 30126 20085 157.24 154.55 34.12 21.89 513 360 256 pship Taxidermist 30063 20044 67.77 108.68 118.78 29.94 502 741 251 pship Solitude 30159 10007 52.56 418.86 90.68 17.60 139 210 69 pship Festering 30065 20046 167.32 345.50 70.80 17.61 312 221 156 pship Cyclotrons 30026 10001 66.94 321.57 99.38 44.63 3246 996 996 pship Atonies 30061 20042 100.77 182.97 114.92 40.90 355 180 177 pship Workroom 30085 20063 213.03 332.46 50.92 42.31 1200 302 302 pship Candlepower 30057 20039 167.81 326.71 47.96 43.12 742 543 371 pship Nonplused 30117 10005 241.16 135.05 104.71 24.93 1874 523 523 pship Rhubarb 30121 20080 75.32 246.07 52.86 23.09 1302 707 651 pship Coaming 30135 10006 79.56 357.79 67.54
  • 48. 40.05 734 1033 367 pship Sedateness 30024 20020 215.41 492.42 111.21 17.38 2967 843 843 pship Chive 30049 20031 123.33 261.45 37.76 33.59 21 760 10 pship Morbid 30098 10004 182.52 266.96 48.25 18.93 2014 835 835 pship Peppertree 30113 10005 102.54 391.91 98.83 34.04 1734 566 566 pship Extemporizing 30018 10000 215.39 473.29 71.51 24.34 21 219 10 pship Illustratively 30070 20051 172.03 225.02 109.03 20.63 1191 430 430 pship Enabler 30042 20024 59.78 226.54 129.16 36.73 1811 521 521 pship Haitians 30123 20082 214.50 434.56 119.84 15.30 8 226 4 pship Armory 30027 10001 233.33 168.32 65.81 35.00 2269 892 892 pship Deranging 30094 10004 160.09 256.64 49.97 37.21 1730 453 453 pship Campaigner 30040 20022 166.03 137.88 105.19 39.14 1542 711 711 pship Weavers 30073 20054 242.95 273.00 86.72 40.65 802 403 401 pship Burnishes 30157 10007 118.79 276.47 33.47 36.79 272 368 136 pship Manilla 30059 10002 100.52 338.69 103.13 21.66 107 251 53 pship Manpack 30140 20091 52.83 155.67 97.40 22.99 461 1029 230 pship Smoothen 30011 20011 58.73 204.85 39.82 37.49 1335 493 493 pship Sheik 30003 20003 215.67 156.56 104.12 41.20 838 225 225 pship Pylons 30048 20030 224.61 420.58 100.79
  • 49. 28.58 517 429 258 pship Aggregational 30091 20069 78.19 459.01 122.90 43.01 1151 532 532 pship Crunches 30020 20016 74.37 251.51 99.23 38.86 393 500 196 pship Liber 30005 20005 205.19 259.57 68.22 42.28 156 343 78 pship Quintillions 30016 10000 164.24 384.74 53.75 40.62 2480 792 792 pship Cliffhanging 30001 20001 176.65 235.63 88.42 36.75 1352 521 521 pship Pancake 30081 20059 152.66 261.76 67.55 24.97 1730 668 668 pship Snorkel 30086 20064 198.57 262.61 62.23 26.60 2139 569 569 pship Schoolchild 30150 20101 145.17 399.83 102.54 26.93 1092 432 432 pship Vengeant 30077 10003 205.13 176.74 40.74 31.91 1140 344 344 pship Gusts 30072 20053 69.94 412.61 42.10 27.47 282 140 140 pship Aimlessly 30030 10001 77.03 386.43 39.39 29.43 1562 672 672 pship Forsake 30080 20058 209.99 140.43 90.69 37.70 439 298 219 pship Oldies 30008 20008 105.04 198.91 47.38 25.74 3527 1075 1075 pship Interjectory 30134 10006 109.88 299.81 89.32 16.60 919 1061 459 pship Emotionally 30131 20090 97.26 425.26 68.65 27.87 1879 897 897 pship Squalider 30151 20102 240.16 438.67 78.70 43.36 1103 1067 551 pship Personation 30084 20062 200.88 113.48 65.65 21.21 1238 421 421 pship Misjudgment 30023 20019 238.54 397.65 90.29
  • 50. 24.62 336 466 168 pship Underemphasize 30009 20009 103.53 494.87 69.60 30.75 964 554 482 pship Motif 30038 10001 120.84 257.97 47.74 28.91 3231 921 921 pship Pessimism 30142 20093 90.63 186.06 43.90 35.06 1188 304 304 pship Inlander 30050 20032 160.28 269.11 125.18 18.61 2109 577 577 pship Stagger 30109 10005 169.02 303.90 113.20 25.88 261 159 130 pship Pomading 30031 10001 66.09 116.17 52.19 19.63 1086 863 543 pship Penance 30122 20081 240.49 161.20 118.51 30.13 473 140 140 pship Grotesquely 30071 20052 141.60 108.82 46.77 19.56 340 166 166 pship Pinprick 30138 10006 131.59 395.94 99.51 18.35 963 476 476 pship Seamers 30097 10004 240.95 463.75 58.84 33.82 1904 608 608 pship Unsurpassed 30149 20100 230.52 434.26 93.39 38.05 1002 504 501 pship Involutions 30046 20028 52.02 318.52 60.60 32.39 2702 1018 1018 pship Seemings 30127 20086 116.73 267.16 44.34 32.36 1989 573 573 pship Alleviates 30036 10001 167.11 129.57 43.53 27.30 1494 1021 747 pship Cutlets 30158 10007 141.52 441.40 47.59 22.24 441 522 220 pship Afresh 30082 20060 233.90 292.16 88.33 15.39 3389 1056 1056 pship Oscillometer 30137 10006 237.47 127.46 123.48 40.32 20 1057 10 pship Fetlock 30045 20027 159.57 474.64 118.81
  • 51. 35.43 623 256 256 pship Coleus 30021 20017 123.86 243.59 108.00 43.10 5 261 2 pship Scarletina 30052 20034 156.42 403.66 52.70 44.67 1385 509 509 pship Blowjob 30146 20097 191.66 405.45 75.11 15.47 960 520 480 pship Sequent 30104 20074 51.99 125.64 43.96 16.76 2336 923 923 pship Leasts 30037 10001 229.86 270.52 58.91 38.66 944 955 472 pship Burnish 30101 20071 117.53 476.99 95.46 15.50 108 138 54 pship Smote 30067 20048 54.31 300.21 53.03 18.32 632 776 316 pship Obliquely 30076 20057 203.70 426.56 112.10 19.55 1021 416 416 pship Macaronies 30047 20029 225.93 257.99 123.69 22.81 640 384 320 pship Chert 30089 20067 127.21 184.44 61.13 37.69 951 252 252 pship Alfresco 30017 10000 107.54 246.92 91.67 22.20 1128 649 564 pship Miniskirted 30093 10004 201.46 482.83 58.24 16.95 899 692 449 // cship name index parent(dock/port) weight length width draft cargoWeight cargoVolume cargoValue // cship <string> <int> <int> <double> <double> <double> <double> <double> <double> <double> cship Eastwardly 40097 10004 149.44 483.47 66.30 38.13 132.15 126.72 673.44 cship Isomerize 40114 10005 111.30 398.53 31.40 26.13 206.26 162.84 762.96 cship Gibbousness 40068 10003 123.74 323.98 68.44 21.95 109.69 174.66 483.87
  • 52. cship Flit 40143 10007 233.10 248.65 83.84 32.41 202.84 197.46 610.49 cship Participatory 40030 10001 198.75 455.34 83.72 30.92 143.11 123.53 429.95 cship Lashed 40013 10000 151.58 144.00 78.86 26.39 121.27 128.62 943.32 cship Pasturer 40070 10003 211.41 311.36 118.39 38.45 200.23 118.95 416.05 cship Orangeade 40118 10005 54.54 446.35 112.80 26.95 42.23 147.42 385.05 cship Expressionist 40051 10002 57.52 268.94 89.14 42.21 78.27 170.91 470.86 cship Dc 40135 10006 153.38 303.64 117.15 22.13 42.45 160.51 562.42 cship Canonizing 40061 10003 221.36 121.28 113.97 41.15 47.94 195.07 111.93 cship Brutalized 40069 10003 58.70 459.76 41.81 18.49 116.38 113.42 465.14 cship Smooth 40085 10004 157.50 231.02 86.82 26.67 191.99 176.33 417.05 cship Arrays 40112 10005 157.83 281.52 111.50 18.41 44.56 127.20 976.34 cship Starfishes 40074 10003 149.41 179.95 54.72 15.74 111.66 116.33 734.97 cship Rorschach 40123 10006 202.01 392.32 101.59 25.94 136.22 172.95 419.74 cship Caddises 40024 10001 169.91 323.94 124.32 41.70 178.64 114.89 19.52 cship Meteoroid 40080 10004 171.11 448.30 126.73 24.28 113.54 107.51 603.39 cship Dermatitises 40053 10002 238.49 436.40 66.08 39.57 141.83 169.64 982.33 cship Literature 40008 10000 241.61 356.11 93.60 32.27 85.63 159.39 779.37 cship Excusers 40011 10000 86.61 176.54 104.47 36.34 86.45 154.18 798.86
  • 53. cship Sisters 40045 10002 166.84 141.08 43.89 18.72 24.66 101.42 560.68 cship Rituals 40056 10002 204.73 265.84 43.90 17.82 90.03 116.50 777.63 cship Demitted 40029 10001 122.24 484.44 123.73 38.95 25.63 151.63 762.70 cship Deductively 40132 10006 215.99 255.18 111.64 16.75 95.39 102.45 477.36 cship Affectedness 40005 10000 64.76 255.28 117.17 40.15 155.46 120.54 666.74 cship Acumens 40096 10004 80.88 461.38 116.29 36.03 198.11 160.80 950.69 cship Antepenults 40019 10000 205.03 197.65 66.55 20.15 161.95 191.39 725.26 cship Biotics 40007 10000 233.79 214.96 81.25 19.66 157.80 103.89 953.48 cship Cumshaw 40099 10004 183.70 256.50 118.46 28.51 217.87 107.99 406.34 cship Rec 40023 10001 105.99 272.75 48.03 25.08 186.51 111.85 787.44 cship Fleshers 40138 10006 225.31 332.45 64.65 32.83 199.81 104.38 101.76 cship Provoke 40038 10001 84.96 212.80 114.89 32.42 44.43 124.67 874.05 cship Compatibles 40033 10001 60.90 351.78 56.01 23.59 196.42 192.30 765.41 cship Venter 40047 10002 247.45 117.23 72.19 32.55 60.65 169.25 26.72 cship Balsas 40062 10003 214.02 332.10 81.04 41.02 45.06 137.52 615.02 cship Sometime 40107 10005 83.45 160.66 78.35 30.42 155.50 119.66 554.80 cship Endings 40109 10005 213.64 247.16 34.68 28.71 37.24 175.58 57.44 cship Fogginess 40075 10003 61.59 351.37 76.73 35.96 189.00 156.66 833.10
  • 54. cship Valuable 40137 10006 140.38 402.79 49.90 22.91 202.95 187.09 807.83 cship Titivates 40048 10002 125.45 171.27 126.36 42.59 141.51 182.66 834.82 cship Gemologist 40144 10007 200.95 469.82 77.40 38.30 136.01 153.04 324.93 cship Housekeeping 40004 10000 113.13 312.58 98.75 31.69 122.35 185.83 673.60 cship Azide 40037 10001 195.21 364.61 100.49 15.91 183.11 128.98 248.89 cship Exonerations 40108 10005 111.08 142.52 60.77 20.48 198.25 133.89 625.94 cship Discase 40067 10003 106.38 216.31 101.21 42.50 214.32 199.02 27.00 cship Brainpan 40093 10004 68.99 395.78 85.33 26.60 150.29 140.52 842.24 cship Enthrallingly 40083 10004 244.07 137.51 111.54 39.15 130.57 157.93 754.75 cship Blowhole 40151 10007 200.52 243.51 79.63 44.35 147.37 103.66 778.29 cship Rearrest 40063 10003 60.61 327.76 104.83 40.10 209.63 175.05 908.43 cship Yesteryears 40079 10003 142.03 131.74 30.32 42.85 201.31 123.71 929.58 cship Laudation 40146 10007 52.44 366.24 73.60 43.76 186.30 168.75 943.28 cship Subdistricts 40145 10007 160.74 338.10 93.20 19.50 82.35 187.71 138.31 cship Iniquitous 40141 10007 206.92 120.75 94.27 18.98 28.97 130.63 848.03 cship Faultfinder 40158 10007 204.71 250.50 125.01 29.44 84.55 193.77 663.33 cship Contrite 40117 10005 97.50 246.35 32.73 27.08 64.63 147.94 333.55 cship Baffling 40089 10004 181.81 361.52 57.05 25.26 68.98 171.42 952.34
  • 55. cship Gasps 40094 10004 216.06 479.13 65.59 29.55 78.01 194.73 734.76 cship Nutritively 40065 10003 113.50 215.47 56.68 30.56 59.51 114.08 116.57 cship Xerographic 40103 10005 124.39 392.52 47.69 15.82 93.51 184.02 908.33 cship Zippiest 40027 10001 139.43 132.74 79.25 19.13 71.33 100.40 249.44 cship Ambrosial 40156 10007 160.97 324.89 33.35 16.62 124.47 117.74 944.95 cship Lahore 40003 10000 178.07 153.02 73.11 24.04 166.32 167.34 953.65 cship Readier 40147 10007 169.86 169.51 127.20 19.33 164.25 148.22 675.77 cship Narrates 40050 10002 146.73 304.97 61.18 32.56 156.50 181.52 253.15 cship Insignias 40046 10002 182.96 389.01 56.96 28.96 216.34 108.08 20.34 cship Descrying 40121 10006 147.07 335.65 72.52 39.63 186.82 126.60 387.30 cship Reporter 40076 10003 183.38 313.30 43.69 39.22 98.43 152.17 62.25 cship Dissonantly 40002 10000 82.22 359.99 99.82 32.90 110.89 115.19 855.22 cship Coshered 40101 10005 179.79 315.85 71.98 33.02 181.14 159.38 158.47 cship Allergens 40035 10001 80.32 475.46 32.02 20.25 110.42 113.30 349.60 cship Humored 40009 10000 122.18 257.15 128.22 39.52 156.73 115.25 988.69 cship Question 40126 10006 79.44 138.72 52.16 36.99 218.91 114.49 615.04 cship Alternateness 40058 10002 84.67 396.51 37.57 25.56 40.86 110.46 1003.03 cship Stool 40119 10005 169.95 144.70 33.62 16.60 64.62 153.12 829.05
  • 56. cship Pity 40102 10005 96.07 318.02 55.43 39.66 161.64 115.93 263.98 cship Cortex 40149 10007 206.25 392.42 57.97 24.14 196.23 199.55 114.15 cship Lubes 40090 10004 234.46 151.95 62.40 25.63 131.09 143.93 634.68 cship Rhodesian 40032 10001 120.44 447.29 114.94 20.86 50.78 134.37 268.50 cship Aquaplanes 40060 10003 218.64 304.39 36.44 19.11 198.98 118.07 458.77 cship Results 40150 10007 186.17 151.48 119.27 32.98 81.44 177.26 876.53 cship Anti 40052 10002 68.52 363.37 86.93 38.83 115.53 161.04 505.94 cship Contributions 40113 10005 225.28 475.84 88.33 26.07 204.35 155.78 116.91 cship Flaunting 40134 10006 159.68 440.03 60.88 27.47 177.87 188.20 944.56 cship Flywheel 40026 10001 225.18 438.01 99.16 37.35 145.27 132.13 426.11 cship Colonials 40155 10007 158.27 254.84 43.67 18.90 84.54 191.97 677.73 cship Taphouses 40031 10001 87.84 383.55 88.28 27.54 154.53 174.42 772.52 cship Molecule 40017 10000 97.57 321.30 124.26 41.09 91.31 165.68 205.91 cship Inaudibility 40010 10000 151.70 354.16 106.39 19.16 104.92 183.50 121.58 cship Preregisters 40100 10005 81.89 141.29 90.17 17.68 118.40 145.52 579.50 cship Haitians 40128 10006 190.56 451.66 74.13 34.78 25.87 145.94 995.44 cship Lancelot 40106 10005 157.25 339.19 103.35 42.48 51.62 192.87 415.37 cship Weapons 40044 10002 174.67 270.92 107.27 23.07 44.07 121.05 655.84
  • 57. cship Struck 40104 10005 163.46 407.61 73.76 42.47 34.78 183.78 673.09 cship Begrudge 40159 10007 82.93 247.40 63.95 43.66 49.63 173.39 344.63 cship Typology 40084 10004 97.86 350.62 39.33 35.70 201.58 107.65 323.11 cship Histrionics 40014 10000 179.27 491.56 47.42 27.26 197.27 161.25 189.07 cship Unimpressively 40081 10004 168.95 202.65 86.96 41.15 101.04 108.51 606.75 cship Bombshells 40086 10004 229.76 435.58 108.60 15.34 165.36 128.14 337.05 cship Hairweaver 40042 10002 171.47 191.65 119.59 22.32 112.59 149.94 113.77 cship Kwachas 40082 10004 63.75 198.98 98.06 25.50 176.02 127.99 641.18 cship Piebalds 40049 10002 106.32 213.43 56.03 19.38 175.10 108.33 433.83 cship Suzettes 40073 10003 64.83 216.23 70.33 44.60 203.92 111.68 516.62 cship Jaycees 40139 10006 96.35 272.35 97.90 15.94 113.70 104.30 340.13 cship Betters 40055 10002 173.31 278.26 43.21 20.67 56.32 163.42 797.40 cship Preboiling 40040 10002 83.57 137.22 119.20 20.47 63.04 148.81 98.46 cship Magnetize 40054 10002 62.57 311.44 68.97 20.60 153.41 133.94 267.26 cship Expansionism 40092 10004 188.34 436.73 113.08 25.46 42.92 181.98 329.32 cship Combatting 40105 10005 149.03 441.87 102.81 17.30 55.11 122.70 566.28 cship Cuttlebones 40140 10007 134.80 403.42 56.68 40.92 92.67 123.47 371.96 cship Repaginates 40148 10007 113.35 212.17 112.59 21.65 143.08 114.37 710.62
  • 58. cship Bloodily 40066 10003 132.19 156.57 93.78 22.38 59.08 104.97 344.26 cship Colophon 40154 10007 90.95 326.42 117.13 20.73 219.52 119.90 515.66 cship Madcaps 40020 10001 235.24 448.15 72.49 15.45 163.62 167.61 310.83 cship Cumbered 40057 10002 125.90 137.95 97.58 29.82 90.87 191.94 920.81 cship Balk 40098 10004 209.87 176.41 33.36 33.32 88.84 123.30 154.96 cship Placater 40153 10007 169.97 429.80 42.63 40.32 48.95 101.62 629.30 cship Orchardman 40000 10000 232.05 194.39 35.20 34.69 163.12 139.92 298.10 cship Hypochondriacs 40120 10006 236.23 196.75 72.27 36.95 62.32 167.43 679.04 cship Petro 40036 10001 162.44 361.44 43.65 19.58 133.93 158.11 793.22 cship Overmasters 40125 10006 152.61 252.56 118.14 16.64 49.70 150.79 346.74 cship Hokiest 40077 10003 180.70 148.55 57.93 44.65 55.13 185.21 794.29 cship Desecrations 40124 10006 109.41 380.56 93.59 25.70 125.67 166.98 937.24 cship Triennially 40018 10000 198.21 288.27 44.86 35.31 26.89 146.04 598.87 cship Kettledrum 40039 10001 182.03 330.65 81.33 17.35 169.04 158.20 526.24 cship Caudexes 40072 10003 197.64 168.86 107.60 31.22 189.66 193.53 580.03 cship Hint 40022 10001 166.61 337.90 64.55 32.20 31.68 197.92 644.14 cship Reaccredited 40041 10002 67.76 445.92 112.65 28.44 209.44 188.82 761.38 cship Typhons 40088 10004 69.23 394.34 93.71 18.87 184.49 155.88 842.57
  • 59. cship Manoeuvered 40064 10003 162.74 340.65 82.16 43.44 119.57 117.98 708.53 cship Tackified 40115 10005 85.94 158.80 122.31 26.18 127.87 140.88 85.16 cship Coverslip 40059 10002 190.16 296.41 53.25 22.89 112.13 102.08 961.60 cship Loggerheads 40152 10007 106.91 164.15 75.10 34.63 211.23 156.31 975.70 cship Vughs 40091 10004 103.07 227.97 72.57 27.79 162.03 144.47 828.82 cship Chancering 40133 10006 208.01 221.23 53.32 38.37 102.99 113.24 374.34 cship Pooh 40021 10001 151.78 298.70 115.23 42.38 213.33 199.33 78.58 cship Textbook 40034 10001 140.01 235.32 82.98 26.35 181.03 191.74 818.32 cship Agitato 40006 10000 144.35 227.77 118.20 22.92 131.66 169.02 172.01 cship Rhinos 40110 10005 143.73 357.24 87.58 20.83 193.81 177.46 867.83 cship Weensiest 40129 10006 206.48 202.97 92.18 41.05 71.21 133.40 184.18 cship Tapirs 40095 10004 124.80 115.06 83.06 41.02 201.82 160.88 58.01 cship Unartfully 40142 10007 186.46 390.55 128.10 39.05 74.25 123.83 821.32 cship Severation 40130 10006 63.03 360.47 86.32 17.35 218.15 166.06 139.41 cship Partita 40127 10006 139.40 495.24 95.69 33.26 79.56 101.14 356.39 cship Pawnbrokers 40071 10003 111.22 371.40 109.59 16.82 63.46 163.66 250.72 cship Tops 40136 10006 170.99 110.22 122.57 37.64 22.05 154.73 156.52 cship Outrider 40078 10003 68.79 421.68 128.94 27.70 172.57 116.29 400.52
  • 60. cship Deads 40016 10000 149.32 232.04 100.64 42.66 66.38 185.51 193.86 cship Cranial 40043 10002 146.45 425.84 50.07 44.27 105.36 197.75 451.00 cship Transcendentalizm 40028 10001 112.03 384.40 124.85 37.75 27.67 186.83 287.94 cship Mycology 40087 10004 215.57 276.49 65.54 44.05 54.25 178.16 649.49 cship Essentially 40116 10005 51.36 253.26 82.17 23.59 82.45 125.45 808.96 cship Arcadian 40131 10006 244.71 301.46 62.77 20.26 63.28 144.02 494.27 cship Purim 40012 10000 105.43 411.31 46.69 30.28 116.45 175.31 771.42 cship Hawk 40122 10006 232.77 158.85 116.90 15.97 21.54 199.43 711.02 cship Reservers 40111 10005 120.38 204.34 69.32 32.04 195.46 176.83 18.64 cship Uneasiest 40025 10001 80.21 383.13 36.90 34.37 206.63 120.13 226.53 cship Orgeats 40001 10000 117.45 259.96 104.99 22.50 58.00 186.89 23.52 cship Documenter 40015 10000 69.84 289.41 96.01 21.21 137.48 184.99 1005.84 cship Inofficious 40157 10007 73.13 436.98 74.83 34.67 43.41 115.32 19.45 // person name index parent skill // person <string> <int> <int> <string> person Raquel 50071 10007 stevedore person Alma 50030 10003 painter person Kent 50011 10001 driver person Enrique 50005 10000 driver person Chester 50040 10004 mechanic person Cristina 50028 10002 electrician person Alexis 50015 10001 captain
  • 61. person Ramona 50065 10006 electrician person Jeannette 50066 10006 craneOperator person Geneva 50027 10002 driver person Lionel 50006 10000 stevedore person Janis 50063 10006 captain person Travis 50010 10001 inspector person Traci 50023 10002 mate person Leah 50042 10004 crew person Kelvin 50001 10000 stevedore person Shari 50035 10003 cleaner person Jean 50020 10002 painter person Krystal 50000 10000 mate person Irvin 50031 10003 janitor person Renee 50021 10002 electrician person Wanda 50002 10000 mechanic person Tina 50050 10005 electrician person Joann 50019 10002 craneOperator person Ira 50059 10005 cleaner person Craig 50008 10001 electrician person Angel 50032 10003 carpenter person Lindsey 50046 10004 carpenter person Sandra 50009 10001 crew person Cora 50054 10005 craneOperator person Eloise 50047 10004 crew person Maryann 50043 10004 inspector person Lila 50024 10002 electrician person Tricia 50041 10004 electrician person Darnell 50056 10005 inspector person Maria 50017 10001 clerk person Rene 50058 10005 painter person Natasha 50051 10005 crew person Erik 50070 10007 painter person Marty 50013 10001 driver person Christie 50062 10006 driver person Rosie 50003 10000 cleaner person Tricia 50029 10003 craneOperator
  • 62. person Victoria 50072 10007 cleaner person Valerie 50073 10007 captain person Jerome 50064 10006 engineer person Luther 50048 10004 captain person Jacob 50057 10005 driver person Jeanette 50055 10005 engineer person Lonnie 50022 10002 cleaner person Veronica 50068 10007 stevedore person Ricky 50049 10004 mate person Anita 50069 10007 driver person Kate 50060 10005 clerk person Gwen 50061 10005 driver person Milton 50037 10003 cleaner person Noel 50012 10001 engineer person Bobbie 50052 10005 craneOperator person Amber 50039 10004 mechanic person Paula 50038 10003 inspector person Andy 50067 10006 janitor person Maxine 50034 10003 inspector person Eleanor 50025 10002 carpenter person Felicia 50044 10004 carpenter person Olive 50016 10001 stevedore person Garrett 50045 10004 stevedore person Angelica 50033 10003 painter person Alberta 50014 10001 captain person Bennie 50036 10003 mate person Lynn 50026 10002 captain person Patty 50053 10005 carpenter person Omar 50004 10000 stevedore person Jane 50007 10001 craneOperator person Lynne 50018 10001 inspector // job name index parent duration [skill]+ (one or more, matches skill in person, may repeat) // job <string> <int> <int> <double> [<string>]+ job Job_86_85_12 60264 30093 109.72
  • 63. job Job_48_34_30 60353 40107 99.52 driver clerk captain job Job_99_72_28 60270 30099 115.61 job Job_25_42_24 60191 30066 33.68 mate painter job Job_96_77_40 60214 40065 69.60 driver job Job_20_78_16 60016 30012 112.46 painter job Job_70_34_41 60000 30000 48.63 carpenter electrician inspector job Job_31_38_17 60276 40082 57.89 job Job_51_98_38 60046 40017 70.78 engineer job Job_58_74_92 60380 30128 118.11 electrician job Job_50_69_57 60117 30045 42.15 cleaner mate job Job_39_59_58 60163 40049 83.84 stevedore job Job_64_31_70 60105 40037 55.05 painter job Job_82_76_96 60420 40139 54.21 job Job_88_48_31 60155 40043 63.41 electrician job Job_83_61_11 60176 40059 47.44 job Job_62_20_14 60247 30083 23.72 job Job_57_13_32 60143 30059 28.21 job Job_57_34_72 60053 30021 111.65 job Job_10_58_50 60473 40152 57.17 engineer job Job_53_51_65 60158 40046 58.61 job Job_60_44_89 60190 30066 56.32 job Job_13_65_79 60397 40123 78.21 stevedore job Job_77_16_45 60454 40140 42.99 engineer cleaner job Job_86_71_86 60228 40072 48.73 janitor job Job_97_25_16 60070 30032 99.90 engineer crew job Job_25_94_84 60470 40151 61.42 electrician driver mechanic job Job_62_64_75 60138 30056 39.38 job Job_62_82_49 60090 40032 105.12 clerk mate job Job_47_87_23 60002 30001 92.13 job Job_38_80_47 60231 40074 97.37 cleaner job Job_91_93_12 60118 30046 81.98 mate job Job_86_65_10 60290 40093 26.05 crew job Job_46_79_13 60256 30089 78.82
  • 64. job Job_55_71_10 60311 30103 39.43 job Job_80_31_63 60194 30070 69.50 crew janitor electrician job Job_25_44_74 60224 40068 54.95 craneOperator mate job Job_56_13_25 60441 30151 91.79 engineer janitor painter job Job_76_26_51 60172 40057 91.34 captain craneOperator job Job_64_68_47 60282 40089 97.82 job Job_98_38_74 60283 40090 83.79 cleaner job Job_48_77_32 60199 30073 48.15 cleaner job Job_39_70_82 60331 30116 88.21 carpenter job Job_70_68_93 60189 30065 96.46 crew captain electrician job Job_40_96_82 60065 30030 46.47 carpenter job Job_27_31_73 60390 30134 20.36 cleaner inspector job Job_51_26_87 60014 30011 35.10 craneOperator job Job_26_45_46 60036 40009 86.93 job Job_56_47_24 60114 30044 82.64 mechanic craneOperator job Job_21_91_37 60004 30002 34.24 job Job_32_87_29 60379 30127 38.39 clerk job Job_81_68_46 60149 40041 39.74 electrician job Job_15_93_32 60216 40065 61.23 driver janitor job Job_24_48_45 60066 30031 109.31 electrician clerk job Job_96_63_48 60381 30128 67.17 craneOperator job Job_58_41_88 60478 40155 103.22 electrician electrician job Job_45_69_54 60457 40142 80.23 job Job_54_87_31 60324 30114 101.72 driver mechanic electrician job Job_42_65_22 60071 30032 84.93 painter mate job Job_73_96_26 60419 40138 33.86 electrician carpenter job Job_34_35_45 60027 40000 73.18 janitor mate mate
  • 65. job Job_22_94_83 60273 40081 29.34 job Job_66_80_91 60343 40102 50.44 janitor stevedore job Job_25_75_91 60446 30156 107.49 job Job_96_40_62 60185 30061 34.17 electrician job Job_92_16_33 60147 40040 24.40 captain craneOperator clerk job Job_30_15_71 60166 40051 32.88 driver clerk mechanic job Job_99_46_52 60354 40107 45.54 painter janitor job Job_36_35_73 60235 40075 114.31 job Job_52_32_99 60085 40030 46.11 cleaner job Job_46_82_64 60325 30114 29.89 mechanic electrician job Job_37_91_28 60123 30047 32.73 job Job_73_49_66 60018 30014 111.54 driver job Job_63_92_71 60382 30129 89.35 crew job Job_99_48_92 60080 40023 28.48 job Job_40_44_52 60009 30006 77.28 inspector job Job_16_89_68 60410 40133 44.46 mechanic job Job_30_97_23 60442 30152 42.67 electrician driver job Job_61_63_13 60280 40087 59.25 job Job_69_39_85 60412 40134 43.67 job Job_63_24_13 60064 30030 44.92 craneOperator stevedore engineer job Job_51_31_90 60017 30013 86.57 crew mate job Job_53_56_50 60346 40104 34.91 electrician job Job_51_85_19 60086 40030 91.05 janitor janitor job Job_13_61_29 60180 30060 75.87 craneOperator job Job_63_84_68 60245 30081 26.81 captain job Job_26_50_73 60044 40015 102.31 inspector mate clerk job Job_88_19_14 60421 40139 46.84 job Job_17_79_33 60385 30130 26.63 job Job_25_60_55 60101 40036 97.70 job Job_52_60_50 60184 30061 40.67 clerk job Job_49_52_88 60456 40142 33.77 stevedore
  • 66. job Job_29_80_82 60345 40103 105.34 inspector job Job_21_18_23 60157 40045 87.45 carpenter captain job Job_33_87_64 60019 30014 51.21 clerk job Job_44_26_40 60312 30104 73.26 job Job_89_77_17 60007 30004 26.97 cleaner clerk crew job Job_98_92_28 60134 30054 43.51 inspector inspector job Job_91_67_66 60395 40122 53.39 captain job Job_88_59_23 60469 40151 70.10 driver job Job_30_52_87 60426 30142 78.97 craneOperator painter job Job_56_31_52 60234 40075 23.55 job Job_13_23_38 60152 40042 102.81 crew janitor painter job Job_67_19_47 60188 30063 31.71 mate driver carpenter job Job_35_87_33 60436 30148 96.50 craneOperator janitor cleaner job Job_55_75_59 60121 30047 37.54 job Job_37_70_19 60054 30021 105.88 janitor painter job Job_10_33_43 60328 30115 69.46 painter painter job Job_47_70_45 60136 30054 41.12 cleaner job Job_38_43_70 60366 40113 52.88 cleaner job Job_96_49_20 60073 30033 77.57 clerk job Job_82_98_13 60409 40133 35.83 cleaner job Job_67_22_37 60416 40137 31.50 crew job Job_73_67_26 60291 40094 115.39 job Job_50_11_84 60467 40148 101.44 stevedore electrician job Job_68_52_43 60271 40080 76.91 craneOperator inspector janitor job Job_40_36_95 60029 40003 116.94 janitor cleaner painter job Job_94_33_27 60020 30015 78.12 crew craneOperator painter
  • 67. job Job_87_57_35 60154 40043 48.01 carpenter cleaner job Job_10_56_79 60263 30093 111.34 carpenter engineer inspector job Job_45_57_60 60182 30060 25.72 craneOperator mechanic job Job_48_82_12 60337 30119 96.63 job Job_88_77_96 60363 40113 64.34 job Job_99_28_19 60356 40108 38.77 job Job_68_52_12 60010 30008 21.78 driver painter job Job_36_21_69 60465 40146 90.80 craneOperator captain inspector job Job_16_53_99 60425 30142 119.09 job Job_47_35_91 60022 30018 110.53 captain crew driver job Job_88_74_52 60252 30086 45.35 stevedore driver engineer job Job_33_13_26 60250 30085 95.67 crew cleaner engineer job Job_14_39_30 60160 40048 42.01 crew job Job_72_29_93 60140 30057 60.54 job Job_51_97_33 60484 40158 44.06 stevedore mate craneOperator job Job_91_49_74 60335 30118 96.42 inspector mechanic job Job_84_26_99 60466 40148 26.53 inspector electrician job Job_79_88_12 60092 40033 91.94 clerk clerk job Job_66_39_95 60251 30085 29.27 craneOperator cleaner job Job_74_48_17 60269 30099 48.45 electrician job Job_42_65_20 60151 40042 103.34 job Job_14_58_69 60055 30022 100.03 carpenter driver mate job Job_15_30_16 60266 30097 81.45 job Job_84_24_38 60349 40105 79.73 job Job_76_34_28 60195 30071 27.94 inspector clerk
  • 68. job Job_29_61_33 60207 30078 67.39 stevedore job Job_27_93_93 60181 30060 59.30 stevedore electrician carpenter job Job_89_30_47 60431 30146 32.30 driver captain mechanic crew job Job_23_38_70 60095 40034 109.53 mechanic craneOperator janitor job Job_37_75_23 60464 40145 89.12 inspector painter electrician job Job_87_84_46 60131 30053 46.57 mechanic job Job_75_40_72 60035 40008 87.30 captain painter mechanic job Job_25_79_85 60287 40092 113.13 electrician inspector job Job_78_72_56 60057 30023 85.25 job Job_18_63_24 60102 40037 76.40 craneOperator job Job_35_67_19 60254 30087 75.65 captain job Job_92_91_99 60192 30067 20.22 job Job_43_86_49 60248 30083 82.40 mate carpenter job Job_54_24_82 60317 30107 115.26 clerk job Job_81_42_24 60060 30025 46.74 job Job_58_44_52 60404 40128 43.38 captain job Job_63_30_13 60249 30084 22.87 mate job Job_59_63_22 60303 30100 57.92 inspector job Job_38_14_42 60225 40069 99.32 crew cleaner stevedore carpenter job Job_79_74_76 60308 30101 53.78 crew crew job Job_23_97_45 60100 40036 44.09 carpenter captain clerk job Job_41_48_79 60455 40140 40.25 job Job_13_43_17 60332 30117 61.61 captain job Job_49_45_66 60068 30031 28.99 painter job Job_29_50_25 60059 30024 38.52 clerk janitor job Job_53_91_92 60453 40140 59.24 job Job_11_65_25 60393 30137 99.58 stevedore inspector
  • 69. job Job_49_60_72 60015 30011 102.43 job Job_55_74_48 60239 40077 81.83 stevedore job Job_79_25_69 60368 40118 80.43 job Job_67_91_91 60093 40033 58.96 job Job_91_64_60 60338 30119 104.17 mate job Job_65_50_34 60074 30033 46.29 job Job_56_47_28 60113 30043 24.33 inspector job Job_70_56_26 60089 40031 43.92 electrician mechanic carpenter job Job_24_61_37 60186 30061 48.30 crew job Job_86_91_37 60201 30074 99.54 stevedore electrician job Job_91_17_35 60198 30072 72.55 captain craneOperator job Job_59_93_68 60448 30159 66.01 clerk crew janitor crew job Job_89_31_48 60124 30047 100.01 stevedore craneOperator job Job_59_57_17 60417 40137 69.90 engineer captain job Job_45_58_50 60183 30060 92.34 craneOperator mechanic job Job_92_52_86 60289 40093 21.06 driver clerk job Job_50_60_97 60196 30071 41.72 janitor job Job_67_71_59 60284 40090 35.08 job Job_15_68_49 60444 30153 26.92 driver job Job_71_57_36 60487 40159 63.44 painter job Job_65_88_76 60429 30145 43.30 painter craneOperator job Job_95_83_72 60461 40144 63.34 job Job_64_95_10 60392 30137 44.68 craneOperator job Job_28_10_67 60142 30057 88.90 inspector job Job_11_50_74 60212 40063 87.06 carpenter clerk painter job Job_57_36_98 60389 30132 116.39 mate job Job_46_95_78 60178 40059 62.96 inspector mechanic
  • 70. job Job_89_88_30 60293 40095 106.00 painter stevedore clerk job Job_45_89_29 60265 30096 48.65 job Job_53_99_21 60038 40010 29.52 carpenter job Job_88_66_55 60449 30159 87.06 job Job_61_43_60 60082 40027 71.10 engineer job Job_16_69_33 60344 40103 100.72 inspector job Job_65_72_77 60096 40034 116.09 stevedore job Job_48_30_12 60292 40095 28.73 cleaner job Job_70_56_28 60028 40000 22.47 painter driver job Job_76_57_53 60001 30000 87.13 cleaner painter job Job_80_67_11 60116 30045 99.14 mechanic painter inspector job Job_50_33_93 60301 40098 119.28 engineer electrician job Job_18_63_58 60146 40040 48.90 janitor engineer captain job Job_55_76_15 60306 30101 110.30 job Job_62_13_53 60003 30002 85.71 electrician job Job_87_83_28 60305 30100 78.85 electrician job Job_84_29_80 60023 30018 82.78 driver painter mate driver job Job_64_66_75 60119 30046 83.51 cleaner job Job_87_74_23 60386 30131 108.22 driver driver job Job_85_25_27 60236 40076 32.57 captain engineer cleaner job Job_30_96_30 60258 30091 68.22 captain painter job Job_27_65_83 60319 30108 91.77 driver job Job_51_79_18 60039 40010 56.82 job Job_21_20_99 60294 40096 25.61 stevedore driver job Job_60_96_31 60307 30101 64.95 captain job Job_77_40_49 60364 40113 78.53 janitor job Job_59_18_69 60108 40039 32.27 job Job_35_61_85 60355 40108 107.71 engineer electrician job Job_34_23_67 60327 30115 105.69 mate electrician
  • 71. job Job_74_73_29 60422 30140 32.16 engineer job Job_99_94_90 60267 30098 115.33 crew captain craneOperator janitor job Job_17_17_35 60400 40125 116.21 stevedore job Job_74_21_52 60371 30120 66.97 craneOperator mechanic job Job_52_55_25 60486 40159 109.48 job Job_26_25_22 60187 30063 97.57 mechanic job Job_61_71_73 60398 40123 86.28 craneOperator captain job Job_20_36_83 60339 40100 90.09 crew electrician electrician job Job_25_53_66 60013 30009 28.35 mechanic job Job_70_13_82 60261 30092 62.58 job Job_74_61_69 60135 30054 27.06 job Job_88_40_98 60405 40129 42.45 job Job_87_38_69 60281 40089 22.46 mate engineer job Job_95_40_57 60468 40149 49.94 janitor job Job_67_40_55 60358 40109 35.29 crew carpenter crew job Job_27_20_42 60040 40013 75.88 cleaner carpenter job Job_54_33_79 60052 30021 34.72 janitor driver cleaner job Job_11_46_62 60111 30041 21.47 crew job Job_44_36_98 60227 40070 91.40 carpenter painter job Job_94_10_83 60077 30039 45.56 electrician job Job_49_24_91 60260 30092 95.77 electrician engineer job Job_90_74_55 60202 30075 100.59 job Job_54_84_44 60050 30020 25.09 clerk crew captain job Job_38_57_82 60104 40037 50.11 mate job Job_34_24_71 60333 30117 116.67 captain stevedore job Job_88_50_46 60042 40014 89.20 electrician job Job_26_20_42 60286 40091 71.80
  • 72. job Job_33_42_94 60255 30089 108.12 stevedore painter job Job_72_24_59 60217 40065 80.89 engineer job Job_32_76_59 60030 40003 79.97 craneOperator craneOperator job Job_31_36_32 60173 40058 32.49 craneOperator job Job_86_80_99 60352 40106 22.08 carpenter mechanic captain clerk job Job_29_13_60 60051 30020 110.83 driver electrician job Job_28_68_93 60485 40159 110.23 craneOperator engineer job Job_14_16_80 60357 40109 66.31 engineer driver job Job_67_37_99 60471 40151 105.46 mechanic crew job Job_76_18_78 60078 40020 55.44 painter job Job_67_78_33 60229 40073 115.28 mechanic mechanic clerk job Job_82_32_99 60221 40067 110.72 janitor craneOperator painter job Job_66_90_33 60369 40118 97.09 mechanic crew job Job_93_95_27 60125 30048 99.95 clerk job Job_29_71_60 60148 40041 102.79 stevedore inspector job Job_20_91_54 60277 40083 107.02 driver job Job_97_88_33 60268 30099 33.07 carpenter job Job_68_73_51 60463 40145 112.83 engineer job Job_15_38_64 60021 30017 40.36 craneOperator job Job_83_22_20 60482 40157 34.68 painter driver job Job_55_47_57 60043 40014 41.89 job Job_18_12_34 60067 30031 110.52 job Job_34_30_99 60139 30056 88.52 mate craneOperator craneOperator clerk job Job_47_34_14 60253 30087 89.44 clerk engineer job Job_70_79_85 60045 40015 89.76 janitor clerk job Job_69_42_45 60238 40077 21.04 inspector carpenter
  • 73. job Job_29_87_23 60438 30149 51.19 carpenter job Job_23_45_24 60063 30029 76.60 electrician mechanic job Job_17_33_85 60313 30105 60.78 carpenter job Job_84_56_21 60137 30055 34.03 engineer mate mate mate job Job_53_89_51 60203 30076 21.16 electrician mate inspector job Job_20_91_86 60433 30147 98.25 mechanic job Job_55_65_94 60384 30130 103.17 driver stevedore job Job_78_12_18 60206 30078 99.31 inspector painter inspector inspector job Job_40_30_31 60232 40074 112.63 job Job_71_95_40 60445 30154 98.87 carpenter cleaner mate job Job_57_67_34 60370 40119 62.33 job Job_53_71_92 60128 30049 84.03 stevedore job Job_79_38_29 60091 40032 91.30 job Job_74_47_33 60361 40111 32.57 captain painter inspector job Job_40_18_35 60481 40157 34.46 crew job Job_44_14_86 60223 40068 91.65 stevedore job Job_35_22_66 60240 40078 24.16 electrician job Job_91_40_44 60321 30112 51.46 job Job_80_42_50 60367 40116 118.44 captain painter job Job_40_75_76 60362 40111 85.66 painter job Job_67_51_40 60334 30118 34.93 craneOperator mechanic job Job_65_10_29 60197 30071 66.59 janitor janitor job Job_91_82_82 60350 40106 43.25 job Job_16_34_14 60323 30113 64.13 painter job Job_68_85_96 60304 30100 22.11 job Job_50_73_69 60244 30080 88.43 captain inspector job Job_58_27_37 60026 30019 45.47 job Job_22_19_28 60403 40128 95.53 driver carpenter job Job_16_20_77 60099 40035 106.69 painter crew
  • 74. stevedore job Job_43_10_18 60411 40134 43.78 job Job_48_20_91 60088 40031 91.62 stevedore mate job Job_70_28_88 60127 30049 119.57 job Job_28_93_91 60450 30159 20.03 engineer mechanic job Job_51_54_55 60460 40144 41.40 stevedore janitor job Job_33_30_12 60062 30029 76.63 craneOperator driver job Job_18_57_17 60037 40010 57.88 stevedore job Job_28_41_49 60167 40053 35.53 stevedore crew job Job_10_11_34 60377 30127 54.31 job Job_45_62_59 60205 30077 53.39 clerk job Job_30_27_97 60048 40019 106.83 driver driver engineer job Job_16_46_60 60274 40082 26.95 electrician job Job_26_23_68 60430 30146 73.53 painter painter job Job_41_14_20 60347 40105 22.80 captain job Job_31_49_33 60479 40156 36.56 mechanic cleaner captain carpenter job Job_21_17_55 60171 40057 64.58 craneOperator clerk job Job_13_34_72 60129 30051 110.42 stevedore job Job_48_18_36 60156 40045 106.81 janitor job Job_79_26_11 60326 30115 31.48 job Job_58_38_42 60033 40005 59.27 carpenter job Job_98_46_63 60315 30105 36.87 captain mechanic job Job_45_36_87 60483 40157 76.42 cleaner mate job Job_44_26_30 60193 30068 63.45 engineer mate job Job_77_13_45 60407 40131 22.68 engineer job Job_86_88_69 60075 30033 79.64 electrician job Job_82_83_45 60413 40135 40.31 mate inspector crew job Job_53_85_99 60179 40059 52.77 cleaner carpenter captain job Job_96_10_50 60072 30032 70.36 clerk
  • 75. job Job_97_20_62 60162 40049 97.32 carpenter job Job_50_84_90 60215 40065 119.33 stevedore job Job_42_15_35 60424 30142 108.90 job Job_92_22_46 60414 40135 20.17 clerk mate captain job Job_61_35_63 60406 40131 94.92 job Job_52_86_67 60295 40096 56.70 electrician clerk job Job_31_22_79 60032 40005 54.03 crew job Job_86_55_35 60477 40155 61.66 job Job_33_35_97 60130 30052 111.56 cleaner mate mechanic job Job_25_29_68 60415 40136 100.70 clerk electrician job Job_41_60_69 60360 40109 84.57 captain craneOperator job Job_98_31_22 60222 40067 99.09 craneOperator job Job_37_16_29 60275 40082 71.24 clerk crew job Job_31_23_74 60309 30102 55.24 job Job_88_85_34 60388 30132 94.80 craneOperator electrician job Job_21_16_38 60318 30108 104.40 janitor mate job Job_82_49_51 60298 40097 78.06 painter job Job_57_80_47 60024 30019 31.05 job Job_99_99_61 60097 40034 31.11 job Job_86_83_36 60213 40064 73.57 painter carpenter job Job_71_45_72 60396 40122 33.01 inspector job Job_45_72_21 60374 30122 60.81 craneOperator job Job_51_68_56 60153 40042 21.76 stevedore job Job_45_56_93 60083 40029 73.00 craneOperator engineer job Job_54_46_99 60296 40096 100.50 painter painter job Job_81_79_49 60423 30140 22.38 mate engineer craneOperator mechanic job Job_54_19_20 60322 30113 45.97 inspector crew electrician job Job_28_76_65 60475 40154 40.57 craneOperator mechanic
  • 76. job Job_44_61_64 60081 40026 97.21 inspector electrician job Job_81_39_80 60084 40030 65.27 driver job Job_37_71_61 60005 30003 80.02 electrician job Job_27_32_83 60399 40124 94.12 cleaner engineer cleaner job Job_84_38_26 60246 30082 98.88 job Job_29_95_71 60476 40155 115.08 job Job_26_30_85 60272 40080 104.29 job Job_52_89_63 60226 40070 92.02 driver janitor job Job_36_27_83 60341 40102 71.01 clerk carpenter crew job Job_96_43_71 60145 40040 71.90 cleaner captain engineer job Job_26_17_80 60336 30119 101.00 mechanic janitor job Job_50_72_22 60011 30008 72.67 job Job_86_47_28 60351 40106 60.60 job Job_55_57_96 60058 30023 99.75 job Job_57_53_49 60451 30159 92.57 mechanic painter job Job_41_37_69 60288 40092 81.61 mate job Job_13_90_18 60209 40061 56.83 inspector craneOperator job Job_85_54_12 60177 40059 117.77 job Job_78_35_84 60348 40105 85.56 mechanic job Job_43_83_74 60168 40053 24.10 mate crew job Job_22_16_57 60375 30124 54.83 stevedore job Job_54_38_25 60087 40030 101.08 engineer crew job Job_26_16_52 60434 30147 51.42 cleaner inspector job Job_76_56_51 60459 40144 29.41 inspector captain job Job_43_16_71 60159 40047 72.50 driver painter job Job_52_44_40 60257 30091 45.57 carpenter clerk job Job_62_11_95 60120 30046 71.45 stevedore painter job Job_57_50_57 60462 40144 70.11 crew job Job_27_71_94 60439 30150 59.72 electrician craneOperator
  • 77. job Job_57_91_50 60237 40077 102.09 job Job_72_89_29 60107 40039 102.95 carpenter job Job_74_48_35 60285 40090 75.25 job Job_68_69_74 60056 30022 111.27 crew driver janitor job Job_56_67_24 60008 30005 80.26 painter cleaner carpenter job Job_27_90_71 60174 40058 83.70 janitor job Job_30_15_52 60219 40066 59.74 mechanic job Job_91_28_33 60041 40014 84.14 engineer job Job_13_85_23 60025 30019 39.71 electrician engineer job Job_71_68_91 60200 30073 66.08 mate job Job_98_28_39 60401 40125 100.56 carpenter electrician job Job_36_13_26 60427 30143 48.28 job Job_69_77_81 60428 30145 80.03 inspector job Job_30_10_90 60443 30152 65.31 mechanic job Job_84_40_41 60458 40143 24.64 job Job_85_66_35 60373 30120 98.57 captain job Job_42_51_51 60006 30004 30.05 electrician captain job Job_17_49_64 60440 30151 74.45 job Job_54_83_57 60220 40066 93.12 inspector engineer clerk job Job_19_45_56 60109 40039 101.41 painter job Job_80_64_85 60310 30103 79.45 mechanic electrician job Job_40_82_11 60126 30048 114.27 painter captain job Job_16_37_95 60300 40098 113.35 job Job_27_55_27 60302 40099 100.75 electrician clerk painter job Job_16_52_30 60320 30111 89.94 mate driver job Job_61_96_85 60480 40156 60.56 clerk job Job_95_70_37 60262 30092 83.82 engineer carpenter
  • 78. job Job_67_90_84 60141 30057 52.12 craneOperator stevedore job Job_14_17_79 60378 30127 114.78 painter job Job_92_58_60 60437 30149 73.71 job Job_25_14_59 60122 30047 56.05 crew crew crew job Job_22_97_58 60164 40051 73.15 job Job_31_13_64 60047 40017 95.61 cleaner captain job Job_87_62_59 60314 30105 84.81 mechanic crew engineer job Job_49_14_69 60359 40109 64.57 job Job_71_13_72 60452 40140 84.45 mechanic captain job Job_98_92_77 60472 40152 59.00 job Job_59_42_62 60432 30147 22.22 job Job_21_39_28 60259 30091 77.89 inspector job Job_41_65_84 60391 30136 53.95 carpenter job Job_17_34_54 60211 40062 74.04 captain job Job_93_41_86 60340 40101 102.49 job Job_82_51_53 60112 30042 77.58 driver carpenter mechanic job Job_63_33_69 60279 40087 80.75 captain electrician job Job_84_88_71 60233 40074 77.91 carpenter job Job_42_27_35 60218 40066 43.65 captain job Job_81_73_64 60299 40098 105.00 job Job_16_29_82 60170 40057 89.87 captain job Job_47_26_91 60069 30031 49.98 mechanic mechanic job Job_80_87_39 60204 30076 72.92 inspector job Job_87_78_46 60447 30158 75.59 job Job_66_13_15 60230 40073 46.16 inspector clerk job Job_88_68_37 60474 40153 101.36 job Job_51_20_14 60376 30124 43.36 job Job_42_50_92 60103 40037 117.05 job Job_92_84_82 60418 40138 38.95 job Job_15_67_95 60161 40049 72.23 crew driver clerk job Job_24_50_73 60387 30131 80.92 engineer engineer
  • 79. job Job_85_17_47 60133 30053 76.42 job Job_71_29_65 60132 30053 60.65 carpenter job Job_48_75_15 60394 30139 92.52 electrician job Job_77_83_41 60408 40132 54.34 painter job Job_50_85_73 60208 30079 55.63 job Job_61_66_28 60049 30020 33.22 driver clerk cleaner job Job_57_16_22 60210 40062 99.18 driver cleaner inspector job Job_87_27_76 60079 40020 87.17 mechanic engineer janitor job Job_78_37_86 60435 30148 62.60 janitor mate inspector job Job_61_71_93 60094 40034 97.09 job Job_22_42_95 60402 40126 25.39 driver job Job_86_36_15 60034 40006 30.47 mechanic captain job Job_61_37_95 60144 30059 46.07 job Job_52_81_98 60316 30106 104.20 job Job_13_93_24 60241 40078 102.81 captain inspector electrician job Job_91_48_29 60076 30038 55.31 mechanic cleaner engineer job Job_94_42_56 60278 40083 89.06 job Job_74_71_59 60243 30080 66.32 cleaner job Job_19_11_89 60165 40051 87.26 electrician captain painter job Job_78_87_28 60329 30115 80.09 job Job_42_51_10 60330 30116 90.24 painter engineer crew job Job_17_97_19 60115 30045 26.01 crew job Job_20_52_87 60031 40005 30.06 cleaner driver job Job_46_25_36 60150 40041 28.75 craneOperator clerk stevedore job Job_98_35_92 60365 40113 60.36 job Job_35_50_36 60061 30028 63.81 painter painter stevedore
  • 80. job Job_55_80_12 60106 40038 96.92 mate painter job Job_44_60_40 60169 40055 89.29 cleaner engineer driver job Job_61_17_44 60372 30120 108.03 driver job Job_71_70_59 60242 40079 69.57 captain job Job_92_95_20 60110 30041 107.63 crew driver job Job_45_42_95 60297 40097 114.12 job Job_26_73_65 60098 40035 45.50 job Job_42_76_12 60383 30129 86.64 job Job_31_88_75 60012 30008 79.36 engineer mechanic job Job_15_20_84 60342 40102 60.33 inspector job Job_97_37_29 60175 40058 104.08 mechanic driver cleaner aSPad.txt // File: aSPad.txt // Data file for SeaPort projects // Date: Sun Jul 10 10:33:24 EDT 2016 // parameters: 3 4 5 6 7 8 // ports, docks, pships, cships, jobs, persons // port name index parent(null) // port <string> <int> <int> port Sialkot 10000 0 port Kandahar 10002 0 port Vainikkala 10001 0 // dock name index parent(port) // dock <string> <int> <int> dock Pier_5 20005 10001 30005 dock Pier_2 20002 10000 30002 dock Pier_12 20012 10002 30010 dock Pier_15 20015 10002 30013 dock Pier_17 20017 10002 40012
  • 81. dock Pier_6 20006 10001 30006 dock Pier_10 20010 10001 40006 dock Pier_1 20001 10000 30001 dock Pier_13 20013 10002 30011 dock Pier_3 20003 10000 30003 dock Pier_7 20007 10001 30007 dock Pier_18 20018 10002 40013 dock Pier_4 20004 10000 30004 dock Pier_9 20009 10001 30009 dock Pier_14 20014 10002 30012 dock Pier_0 20000 10000 30000 dock Pier_16 20016 10002 30014 dock Pier_11 20011 10001 40007 dock Pier_8 20008 10001 30008 // pship name index parent(dock/port) weight length width draft numPassengers numRooms numOccupied // pship <string> <int> <int> <double> <double> <double> <double> <int> <int> <int> pship "ZZZ_Hysterics" 30002 20002 103.71 327.92 56.43 30.23 3212 917 917 pship Tieclasp 30012 20014 110.03 256.90 32.12 27.33 1951 1010 975 pship Glory 30000 20000 137.28 399.53 128.71 39.37 1059 670 529 pship Bittern 30007 20007 86.97 124.82 122.03 15.32 378 256 189 pship Floridians 30009 20009 64.24 190.15 95.83 15.70 897 741 448 pship Normatively 30001 20001 141.52 229.97 40.76 31.65 166 500 83 pship Revocability 30010 20012 157.37 433.24 73.43 25.90 290 323 145 pship Yeah 30004 20004 200.98 446.92 95.29 25.08 210 723 105 pship Haviour 30014 20016 122.92 281.69 43.79
  • 82. 41.02 635 874 317 pship Subplot 30006 20006 106.28 314.41 116.32 43.39 405 608 202 pship Insigne 30005 20005 123.07 211.20 83.67 19.05 1799 1008 899 pship Antisocially 30008 20008 161.94 370.17 81.84 19.40 501 176 176 pship Centrifuged 30011 20013 67.69 251.06 85.60 36.50 3248 955 955 pship Blare 30003 20003 228.31 264.15 114.17 39.85 798 500 399 pship Xanthic 30013 20015 203.06 358.19 69.97 41.07 422 443 211 // cship name index parent(dock/port) weight length width draft cargoWeight cargoVolume cargoValue // cship <string> <int> <int> <double> <double> <double> <double> <double> <double> <double> cship Suites 40003 10000 165.91 447.15 85.83 27.07 125.09 176.80 857.43 cship Hypodermatically 40009 10001 165.90 106.64 103.17 25.87 64.32 192.65 177.78 cship Learned 40016 10002 199.49 388.49 93.41 16.72 49.79 126.62 538.08 cship Vomiter 40004 10000 136.79 491.46 106.72 18.97 216.16 189.62 688.14 cship Abscissions 40017 10002 177.25 203.16 101.09 41.84 101.98 157.04 500.69 cship Outlawry 40002 10000 159.34 464.02 102.60 26.08 70.91 182.31 725.76 cship Sunnier 40012 20017 161.48 226.97 46.07 24.54 199.93 135.03 988.18 cship Ragouts 40001 10000 89.37 450.62 80.62 30.90 147.58 152.89 438.61 cship Magical 40013 20018 71.56 338.11 93.91 43.12 97.33 121.55 560.90
  • 83. cship Subgum 40011 10001 50.82 168.10 56.84 27.20 203.76 190.44 457.92 cship Apostrophize 40008 10001 115.21 460.70 44.60 37.33 199.29 170.63 810.54 cship Fecundation 40005 10000 137.79 197.96 39.03 44.99 157.24 148.62 236.23 cship Employer 40015 10002 215.31 244.05 86.23 36.64 57.49 107.78 941.42 cship Revisit 40014 10002 81.54 424.95 89.79 39.26 202.98 123.98 129.07 cship Welcoming 40007 20011 164.87 341.16 50.31 25.63 151.89 168.18 303.53 cship Sphere 40000 10000 221.17 204.53 39.71 27.28 151.63 159.88 978.54 cship Autopsied 40010 10001 171.13 386.36 62.45 42.10 62.03 172.15 441.30 cship Latticing 40006 20010 135.79 411.89 78.08 44.62 120.86 163.45 390.62 // person name index parent skill // person <string> <int> <int> <string> person Tracey 50010 10001 carpenter person Tina 50008 10000 painter person Phil 50020 10002 mechanic person Willie 50014 10001 clerk person Cody 50002 10000 electrician person Oliver 50000 10000 clerk person Alberto 50013 10001 cleaner person Debbie 50017 10002 painter person Marty 50006 10000 electrician person Jean 50022 10002 crew person Terri 50001 10000 driver person Otis 50003 10000 mate person Jimmie 50007 10000 mate person Camille 50016 10002 inspector person Phillip 50023 10002 inspector
  • 84. person Stacey 50021 10002 clerk person Jacqueline 50015 10001 driver person Jacquelyn 50011 10001 inspector person Lucy 50012 10001 driver person Jean 50018 10002 mechanic person Patty 50019 10002 mechanic person Colin 50009 10001 stevedore person Charlotte 50004 10000 carpenter person Eileen 50005 10000 captain // job name index parent duration [skill]+ (one or more, matches skill in person, may repeat) // job <string> <int> <int> <double> [<string>]+ job Job_97_35_88 60030 40007 42.13 craneOperator job Job_72_62_40 60028 40007 106.93 captain job Job_93_67_52 60019 30006 60.09 mate job Job_50_35_84 60011 40000 41.00 janitor driver captain job Job_64_63_99 60022 30009 21.73 painter job Job_24_68_12 60016 40005 43.07 mate cleaner job Job_66_52_86 60015 40004 76.84 crew job Job_99_51_86 60002 30002 92.69 driver job Job_10_94_27 60020 30007 77.78 carpenter cleaner clerk job Job_93_37_24 60012 40000 118.88 engineer crew inspector job Job_56_27_90 60056 40015 96.48 stevedore captain carpenter job Job_56_22_75 60038 30010 83.16 engineer electrician job Job_43_31_12 60018 30006 105.86 inspector job Job_48_45_31 60047 40012 58.52 job Job_41_30_21 60040 30012 58.19 cleaner job Job_20_50_30 60057 40017 56.16 mate job Job_35_26_63 60049 40013 107.27 painter job Job_57_62_56 60055 40015 68.07 electrician
  • 85. carpenter job Job_88_82_13 60054 40015 81.39 cleaner electrician job Job_47_78_83 60036 40010 37.87 mate craneOperator job Job_97_75_28 60009 30004 102.80 cleaner painter janitor job Job_73_11_66 60004 30002 79.02 job Job_49_14_65 60027 40007 44.56 inspector electrician electrician job Job_55_66_47 60045 30014 60.81 carpenter captain cleaner job Job_64_40_53 60034 40009 54.42 janitor job Job_78_32_64 60014 40004 33.43 mate clerk stevedore carpenter job Job_56_59_17 60029 40007 111.91 cleaner job Job_23_91_73 60039 30012 50.51 painter electrician painter craneOperator job Job_82_27_25 60041 30013 54.32 craneOperator job Job_98_48_78 60043 30013 30.91 driver clerk mate job Job_67_51_68 60037 30010 55.50 captain job Job_20_37_21 60021 30007 64.53 job Job_53_22_78 60032 40008 58.99 captain stevedore job Job_64_50_19 60048 40012 37.06 painter cleaner job Job_82_11_72 60026 40006 24.82 captain job Job_28_11_75 60024 40006 38.64 craneOperator inspector engineer stevedore job Job_51_14_13 60008 30004 24.52 stevedore job Job_36_65_73 60006 30003 106.58 driver driver job Job_48_89_46 60000 30000 80.34 janitor job Job_79_64_23 60046 30014 31.42 inspector driver job Job_35_34_33 60031 40007 49.13 craneOperator job Job_12_40_46 60033 40008 110.68 electrician carpenter captain job Job_97_15_76 60001 30000 112.83 driver job Job_69_42_40 60010 40000 102.22 clerk
  • 86. job Job_87_38_77 60035 40009 46.20 crew carpenter job Job_61_35_13 60017 30005 116.22 job Job_71_95_64 60052 40014 72.22 job Job_46_56_48 60005 30003 56.60 engineer job Job_68_62_61 60053 40014 34.02 mate captain stevedore job Job_80_20_52 60042 30013 107.16 crew job Job_52_46_64 60044 30014 20.55 clerk inspector cleaner job Job_29_28_74 60050 40013 53.99 job Job_39_56_39 60023 40006 53.26 job Job_48_65_77 60003 30002 39.86 electrician driver job Job_29_12_70 60007 30003 32.75 painter job Job_93_34_80 60051 40014 29.70 mechanic craneOperator job Job_78_36_10 60025 40006 89.49 mate clerk job Job_77_43_75 60013 40001 107.11 electrician inspector __MACOSX/._aSPad.txt aSPae.txt // File: aSPae.txt // Data file for SeaPort projects // Date: Sun Jul 10 12:50:43 EDT 2016 // parameters: 8 15 20 20 5 30 // ports, docks, pships, cships, jobs, persons // port name index parent(null) // port <string> <int> <int> port Mucuripe 10006 0 port Djen_Djen 10001 0 port Dampier 10000 0 port Montoir 10005 0 port Dalta_Port 10003 0
  • 87. port Pago_Pago 10007 0 port Onahama 10002 0 port Laem_Chabang 10004 0 // dock name index parent(port) // dock <string> <int> <int> dock Pier_67 20067 10006 30134 dock Pier_19 20019 10002 30040 dock Pier_5 20005 10000 30005 dock Pier_31 20031 10003 30063 dock Pier_15 20015 10001 30028 dock Pier_41 20041 10004 30081 dock Pier_2 20002 10000 30002 dock Pier_11 20011 10001 30024 dock Pier_32 20032 10003 30064 dock Pier_48 20048 10005 30103 dock Pier_23 20023 10002 30044 dock Pier_8 20008 10001 30021 dock Pier_58 20058 10006 30125 dock Pier_49 20049 10005 30104 dock Pier_29 20029 10003 30061 dock Pier_53 20053 10006 30120 dock Pier_76 20076 10007 30144 dock Pier_51 20051 10005 30106 dock Pier_18 20018 10001 30031 dock Pier_70 20070 10006 30137 dock Pier_47 20047 10005 30102 dock Pier_44 20044 10004 30084 dock Pier_13 20013 10001 30026 dock Pier_30 20030 10003 30062 dock Pier_6 20006 10000 30006 dock Pier_45 20045 10005 30100 dock Pier_26 20026 10002 30047 dock Pier_40 20040 10004 30080 dock Pier_65 20065 10006 30132 dock Pier_73 20073 10007 30141
  • 88. dock Pier_59 20059 10006 30126 dock Pier_0 20000 10000 30000 dock Pier_17 20017 10001 30030 dock Pier_24 20024 10002 30045 dock Pier_60 20060 10006 30127 dock Pier_22 20022 10002 30043 dock Pier_25 20025 10002 30046 dock Pier_33 20033 10003 30065 dock Pier_66 20066 10006 30133 dock Pier_37 20037 10003 30069 dock Pier_69 20069 10006 30136 dock Pier_35 20035 10003 30067 dock Pier_50 20050 10005 30105 dock Pier_3 20003 10000 30003 dock Pier_56 20056 10006 30123 dock Pier_52 20052 10005 30107 dock Pier_39 20039 10003 30071 dock Pier_72 20072 10007 30140 dock Pier_7 20007 10001 30020 dock Pier_63 20063 10006 30130 dock Pier_74 20074 10007 30142 dock Pier_28 20028 10003 30060 dock Pier_27 20027 10002 30048 dock Pier_43 20043 10004 30083 dock Pier_38 20038 10003 30070 dock Pier_14 20014 10001 30027 dock Pier_77 20077 10007 30145 dock Pier_16 20016 10001 30029 dock Pier_1 20001 10000 30001 dock Pier_21 20021 10002 30042 dock Pier_46 20046 10005 30101 dock Pier_64 20064 10006 30131 dock Pier_12 20012 10001 30025 dock Pier_71 20071 10006 30138 dock Pier_20 20020 10002 30041 dock Pier_9 20009 10001 30022
  • 89. dock Pier_62 20062 10006 30129 dock Pier_36 20036 10003 30068 dock Pier_55 20055 10006 30122 dock Pier_34 20034 10003 30066 dock Pier_10 20010 10001 30023 dock Pier_57 20057 10006 30124 dock Pier_4 20004 10000 30004 dock Pier_42 20042 10004 30082 dock Pier_61 20061 10006 30128 dock Pier_54 20054 10006 30121 dock Pier_68 20068 10006 30135 dock Pier_75 20075 10007 30143 // pship name index parent(dock/port) weight length width draft numPassengers numRooms numOccupied // pship <string> <int> <int> <double> <double> <double> <double> <int> <int> <int> pship Fretfulness 30014 10000 132.97 187.74 116.30 19.70 3276 879 879 pship Comparability 30029 20016 131.06 413.54 67.42 41.91 1791 879 879 pship Forestalls 30012 10000 116.20 421.00 86.16 20.88 1344 871 672 pship Fusion 30114 10005 179.17 329.29 111.66 17.24 22 359 11 pship Tobogganed 30116 10005 77.37 127.50 36.53 32.91 317 199 158 pship Directorships 30077 10003 81.91 162.48 94.07 25.90 645 1031 322 pship Hardihood 30088 10004 202.81 427.00 98.31 17.91 421 669 210 pship Newcastle 30053 10002 213.66 372.95 122.04 30.15 1310 336 336 pship Isobaric 30132 20065 128.67 418.95 59.09 32.69 2160 782 782 pship Moxibustion 30120 20053 127.37 323.01 88.63
  • 90. 18.73 496 237 237 pship Gunsmith 30068 20036 86.97 461.26 84.28 32.30 374 103 103 pship Advocatory 30105 20050 100.19 185.64 110.07 44.83 1461 882 730 pship Roentgens 30145 20077 201.15 387.79 88.34 19.06 957 843 478 pship Reinfect 30087 10004 118.22 379.22 66.67 32.74 254 393 127 pship Slums 30135 20068 144.54 253.54 67.08 19.78 1966 721 721 pship Nomadism 30000 20000 162.27 120.59 38.57 26.87 826 683 413 pship Subroutines 30079 10003 104.73 121.81 85.80 39.02 2234 1029 1029 pship Anchoress 30041 20020 227.35 334.57 74.91 29.76 30 436 15 pship Pillaring 30130 20063 102.69 298.89 81.58 29.23 1374 702 687 pship Valour 30112 10005 129.20 484.60 123.86 34.22 2187 621 621 pship Oxyhydrogen 30151 10007 152.97 351.70 95.65 33.64 1448 383 383 pship Pharisaic 30154 10007 188.67 374.96 70.55 23.80 158 804 79 pship Journal 30067 20035 63.78 165.25 89.73 24.06 1225 453 453 pship Ginners 30032 10001 132.80 269.00 102.53 23.28 3003 757 757 pship Masked 30103 20048 125.94 407.60 126.30 22.41 828 363 363 pship Tetherball 30143 20075 167.10 162.10 129.98 26.28 1654 624 624 pship Spinosely 30138 20071 82.59 109.87 37.42 31.50 690 618 345 pship Physiological 30002 20002 248.73 432.05 101.80
  • 91. 37.82 568 398 284 pship Leathering 30121 20054 71.79 332.92 33.86 29.58 1583 585 585 pship Guzzlers 30055 10002 63.29 302.94 121.66 34.09 1633 537 537 pship Beaching 30149 10007 182.44 111.41 47.07 19.00 2183 862 862 pship Longer 30153 10007 239.27 375.28 89.89 36.43 367 109 109 pship Reopener 30157 10007 94.27 287.88 87.11 28.20 2955 888 888 pship Hallowed 30091 10004 129.18 395.25 36.52 41.56 3332 882 882 pship Rescript 30158 10007 216.65 289.83 80.05 26.83 634 660 317 pship Ungratifying 30148 10007 148.48 437.63 58.65 30.17 1184 348 348 pship Punker 30102 20047 239.96 164.40 36.83 15.78 2766 1000 1000 pship Haoles 30047 20026 143.11 281.46 47.85 17.72 686 944 343 pship Corresponded 30107 20052 227.22 319.67 91.51 44.94 144 128 72 pship Portraitists 30048 20027 90.97 412.26 102.80 22.64 2021 742 742 pship Uneventfully 30109 10005 189.85 414.76 65.03 25.05 396 141 141 pship Seral 30155 10007 215.21 201.78 59.10 22.28 1783 687 687 pship Viperine 30098 10004 192.92 458.29 34.13 38.36 288 1056 144 pship Lutists 30064 20032 55.79 206.74 64.78 41.38 1147 311 311 pship Milk 30108 10005 74.90 445.99 57.09 24.02 945 551 472 pship Bodied 30113 10005 215.09 483.43 86.22
  • 92. 40.54 1950 821 821 pship Muggiest 30031 20018 173.30 193.33 103.16 29.20 413 213 206 pship Finagle 30003 20003 174.28 329.65 76.16 27.74 3089 971 971 pship Careers 30051 10002 152.80 398.64 47.30 29.75 2495 636 636 pship Gonadal 30062 20030 155.46 260.52 98.86 32.30 84 403 42 pship Titians 30011 10000 189.96 394.44 82.63 16.69 2664 756 756 pship Catling 30071 20039 80.01 222.65 117.67 17.66 965 577 482 pship Cricks 30128 20061 113.98 479.88 85.99 25.93 2164 965 965 pship Accuser 30124 20057 246.05 347.60 79.35 40.66 1890 1091 945 pship Pillager 30006 20006 100.79 404.76 37.09 41.65 710 415 355 pship Shillelagh 30147 10007 148.37 274.19 92.85 40.27 2083 710 710 pship Cabbies 30146 10007 112.38 413.37 79.94 43.37 946 431 431 pship Henpecks 30095 10004 73.50 319.40 95.12 28.77 1680 724 724 pship Floating 30111 10005 85.17 118.64 63.84 30.98 3196 921 921 pship Podium 30038 10001 245.14 199.83 75.04 34.58 591 1005 295 pship Tucked 30001 20001 196.97 497.06 42.89 41.98 212 138 106 pship Bustards 30023 20010 127.12 152.85 54.10 33.67 1175 501 501 pship Suspenders 30080 20040 164.94 244.79 64.55 28.06 2072 916 916 pship Diluent 30044 20023 92.42 339.90 85.65
  • 93. 17.20 912 304 304 pship Heeltaps 30069 20037 242.86 447.84 119.57 27.87 455 144 144 pship Vegetates 30061 20029 177.35 281.56 58.77 16.40 144 696 72 pship Cognates 30134 20067 106.23 458.98 49.41 24.23 138 124 69 pship Expatriated 30082 20042 190.88 441.68 103.39 35.13 852 781 426 pship Recliner 30131 20064 139.90 124.52 36.49 25.23 1974 515 515 pship Describing 30097 10004 68.16 491.33 115.02 38.46 712 534 356 pship Phosphates 30057 10002 208.93 404.86 111.94 36.85 2808 1072 1072 pship Posthypnotically 30036 10001 51.08 246.25 113.11 23.40 1094 653 547 pship Surrender 30115 10005 168.00 407.02 111.83 22.59 972 429 429 pship Gentled 30076 10003 185.01 113.94 97.67 24.48 36 109 18 pship Rabbles 30093 10004 229.81 487.04 108.29 42.88 383 209 191 pship Seriation 30073 10003 183.80 325.10 124.51 24.40 1717 1019 858 pship Implorer 30139 10006 62.57 238.08 57.25 19.53 1494 879 747 pship Empurpling 30084 20044 78.70 321.24 42.18 27.62 802 684 401 pship Handbooks 30117 10005 68.68 175.90 34.84 32.50 973 331 331 pship Bear 30016 10000 138.51 119.33 120.19 21.32 562 365 281 pship Chromosomal 30049 10002 119.08 224.26 42.36 26.19 749 345 345 pship Onenesses 30085 10004 84.72 396.05 94.05
  • 94. 18.71 11 259 5 pship Adaptometer 30075 10003 134.10 367.40 48.98 43.77 1105 279 279 pship Wordings 30070 20038 191.35 225.45 47.43 21.27 438 161 161 pship Viceroy 30054 10002 237.67 175.17 57.90 39.02 1131 556 556 pship Superstitious 30004 20004 247.22 276.35 96.06 18.18 221 101 101 pship Magniloquence 30123 20056 187.59 438.63 82.47 43.79 2182 775 775 pship Whiteheads 30104 20049 129.50 153.89 65.36 25.91 1415 863 707 pship Botched 30090 10004 150.85 413.99 34.21 19.44 595 174 174 pship Diagnosing 30052 10002 204.81 453.41 107.95 27.25 818 449 409 pship Religiosity 30024 20011 155.85 177.66 104.14 31.93 533 307 266 pship Licentiates 30129 20062 129.61 359.58 37.59 29.66 282 170 141 pship Peepshows 30009 10000 96.71 288.20 56.91 19.94 680 604 340 pship Revolves 30094 10004 82.66 181.46 53.96 26.43 536 636 268 pship Unholiest 30106 20051 116.08 230.18 42.86 16.19 1503 407 407 pship Jimmies 30065 20033 141.02 183.33 111.90 38.31 2164 1060 1060 pship Guile 30072 10003 178.18 450.47 93.33 18.71 1094 503 503 pship Inconclusive 30010 10000 166.14 165.92 96.90 44.04 1053 281 281 pship Assiduity 30125 20058 97.38 347.03 124.00 41.45 1687 522 522 pship Reboot 30017 10000 78.97 271.81 112.55
  • 95. 31.98 2093 858 858 pship Eikon 30013 10000 154.04 216.85 110.89 26.62 2989 850 850 pship Sumptuousness 30020 20007 76.84 250.94 68.86 30.88 2080 539 539 pship Expatiators 30050 10002 219.63 499.53 129.80 40.70 2604 859 859 pship Squintier 30042 20021 77.26 241.83 94.63 36.19 1085 571 542 pship Dysfunctional 30092 10004 88.94 453.79 39.83 19.92 1562 930 781 pship Polar 30096 10004 52.56 163.51 118.75 31.30 752 1006 376 pship Vibrational 30056 10002 176.42 328.81 96.76 19.71 1532 866 766 pship Attest 30018 10000 165.84 201.33 30.24 17.84 1089 628 544 pship Aureately 30150 10007 88.88 302.31 83.77 28.95 1395 649 649 pship Perorations 30133 20066 178.97 190.50 95.46 43.33 504 419 252 pship Overjoying 30058 10002 158.12 398.78 46.43 20.00 114 157 57 pship Pommel 30060 20028 68.09 428.33 66.28 35.24 1412 361 361 pship Ninepins 30127 20060 160.97 193.97 90.34 15.58 557 198 198 pship Diseasing 30122 20055 62.54 394.85 99.03 16.06 2342 756 756 pship Censers 30040 20019 63.53 401.65 124.86 15.45 2535 1021 1021 pship Capacitated 30025 20012 109.09 102.99 128.02 40.23 1502 1050 751 pship Overvaluing 30033 10001 85.38 136.57 93.15 37.25 430 179 179 pship Honey 30089 10004 85.11 143.12 60.24
  • 96. 44.32 2102 688 688 pship Storehouse 30099 10004 141.90 216.90 90.89 26.90 236 517 118 pship Workingman 30140 20072 210.84 264.38 124.54 39.58 697 352 348 pship Kakogenic 30152 10007 188.06 220.13 82.99 18.27 53 143 26 pship Diallers 30035 10001 235.80 458.57 118.37 42.08 878 348 348 pship Spates 30136 20069 184.00 227.31 66.51 24.63 511 147 147 pship Vituperate 30142 20074 78.85 422.10 73.78 16.93 674 462 337 pship Permeable 30083 20043 217.01 134.92 85.33 20.63 1018 957 509 pship Eucalyptus 30039 10001 63.29 390.28 45.32 17.36 401 180 180 pship Victim 30137 20070 50.02 400.34 71.11 25.46 602 325 301 pship Avenue 30005 20005 77.99 323.98 87.63 34.32 55 381 27 pship Opiates 30059 10002 63.42 376.63 30.48 36.96 103 179 51 pship Microstate 30046 20025 98.73 275.96 54.33 38.36 1278 340 340 pship Snowcaps 30126 20059 234.63 400.94 111.51 35.81 1289 443 443 pship Immobilizing 30015 10000 215.90 365.65 118.21 24.75 411 890 205 pship Reinstall 30043 20022 169.19 347.31 121.80 37.21 267 639 133 pship Grantsmanship 30119 10005 54.26 235.49 104.99 18.62 2148 982 982 pship Artwork 30007 10000 119.89 175.76 43.26 25.81 988 562 494 pship Creepage 30100 20045 156.45 208.68 64.56
  • 97. 28.80 1977 633 633 pship Reship 30034 10001 67.05 373.72 112.93 21.55 3269 842 842 pship Nonsupport 30156 10007 168.34 167.63 44.71 17.24 354 1055 177 pship Reputation 30030 20017 179.62 246.03 55.29 31.33 1656 811 811 pship Meshes 30022 20009 238.96 490.17 106.71 23.61 426 149 149 pship Unhonored 30118 10005 67.40 280.84 102.58 40.89 110 420 55 pship Clunked 30074 10003 129.81 141.92 121.15 26.23 2737 854 854 pship Finites 30063 20031 242.45 236.18 104.04 32.10 1959 505 505 pship Cunnings 30144 20076 78.31 454.83 111.09 34.36 940 287 287 pship Imbed 30066 20034 84.19 173.20 58.87 39.05 121 281 60 pship Radiator 30141 20073 138.49 449.59 44.10 27.55 857 260 260 pship Firemen 30021 20008 230.26 326.33 77.34 17.46 365 262 182 pship Conservable 30026 20013 172.87 367.40 68.32 28.17 3069 1080 1080 pship Lectured 30027 20014 248.46 252.76 31.23 20.74 420 435 210 pship Clutchy 30019 10000 181.84 165.90 42.49 42.33 1046 951 523 pship Compensatively 30078 10003 184.16 269.59 30.51 17.00 562 519 281 pship Peckers 30159 10007 108.75 144.00 98.04 30.49 673 327 327 pship Monad 30086 10004 156.59 217.54 49.35 15.68 3414 919 919 pship Vanadiums 30110 10005 57.92 165.86 101.13
  • 98. 44.16 231 127 115 pship Snowily 30045 20024 163.08 355.68 75.13 29.52 1298 618 618 pship Vegetates 30037 10001 241.75 135.23 42.30 23.38 461 787 230 pship Fancies 30101 20046 77.47 321.55 96.50 37.66 3530 1071 1071 pship Hangers 30081 20041 71.99 302.09 97.89 34.00 2277 973 973 pship Cypresses 30008 10000 104.89 427.23 69.21 21.77 2548 662 662 pship Cementer 30028 20015 190.04 402.17 95.90 40.33 59 112 29 // cship name index parent(dock/port) weight length width draft cargoWeight cargoVolume cargoValue // cship <string> <int> <int> <double> <double> <double> <double> <double> <double> <double> cship Exacts 40006 10000 204.28 155.31 90.92 29.90 129.42 162.66 526.76 cship Tackiest 40122 10006 62.29 421.14 82.77 31.36 106.65 113.21 794.24 cship Exposes 40047 10002 208.21 125.68 48.40 21.84 103.46 140.42 844.18 cship Rednesses 40053 10002 125.23 165.55 70.81 30.62 31.11 175.15 697.92 cship Potteries 40101 10005 162.82 447.76 69.33 43.58 183.77 120.96 155.60 cship Grantsmen 40151 10007 202.11 351.90 92.85 19.87 101.00 178.25 578.57 cship Nightcaps 40060 10003 92.38 329.50 42.79 15.75 193.14 106.71 540.26 cship Mahjongg 40086 10004 82.15 215.62 36.86 29.29 141.09 183.48 512.73 cship Infinite 40085 10004 172.14 449.21 78.07 25.29 208.41 173.72 893.75
  • 99. cship Cuprous 40129 10006 98.48 238.72 48.93 27.60 40.97 135.78 64.45 cship Caviars 40026 10001 168.25 402.36 49.96 28.00 139.98 191.39 891.63 cship Maybushes 40098 10004 119.99 379.10 38.77 43.81 173.05 145.49 579.97 cship Heptarchs 40100 10005 137.79 314.32 77.97 44.54 92.10 117.94 372.28 cship Bowlegs 40003 10000 188.92 312.94 46.37 41.67 149.39 175.56 757.07 cship Subcivilizations 40130 10006 145.98 145.37 84.44 35.74 207.61 196.25 659.30 cship Backslaps 40104 10005 212.55 163.77 34.00 23.31 110.02 117.49 859.40 cship Comics 40088 10004 196.52 127.67 46.10 40.28 81.62 170.62 536.63 cship Absenters 40156 10007 136.12 116.29 114.55 31.46 179.41 183.56 522.19 cship Gurgling 40004 10000 135.74 408.20 111.60 19.40 38.39 169.32 457.82 cship Mensurative 40152 10007 90.81 159.87 71.84 16.57 219.20 163.44 222.24 cship Wolfers 40019 10000 142.76 140.05 46.76 32.88 66.14 128.23 744.87 cship Gymnastic 40032 10001 204.95 241.19 69.91 37.34 111.95 165.31 91.65 cship Poller 40043 10002 237.55 313.76 127.73 25.35 143.03 152.70 1003.48 cship Prophylactics 40068 10003 76.31 182.99 102.82 18.46 20.63 107.31 828.78 cship Thready 40134 10006 87.66 403.75 34.86 37.99 189.90 190.33 387.33 cship Civvy 40113 10005 56.65 481.22 53.61 27.75 75.41 142.48 804.60 cship At 40083 10004 193.29 123.22 103.48 17.40 21.56 125.24 35.00
  • 100. cship Changed 40044 10002 144.77 299.94 67.20 36.03 88.45 101.71 391.33 cship Yachtsmanship 40029 10001 174.16 125.15 118.85 41.31 80.57 155.71 695.64 cship Playtimes 40159 10007 209.89 320.01 91.04 33.73 186.87 146.19 117.54 cship Terminatory 40105 10005 106.88 286.41 59.76 22.27 179.25 199.82 668.70 cship Coordinates 40017 10000 201.17 270.51 49.88 20.09 35.27 134.70 39.92 cship Toothpicks 40153 10007 193.39 346.14 66.46 42.61 169.91 182.51 645.11 cship Sigmoidal 40107 10005 182.33 360.89 86.68 30.70 128.33 145.07 276.50 cship Refashion 40002 10000 147.05 227.77 95.16 34.84 46.51 135.85 272.39 cship Titbit 40090 10004 142.98 410.47 73.53 29.46 80.65 175.02 112.38 cship Banged 40121 10006 173.26 103.52 69.74 26.31 218.28 161.63 532.59 cship Druidisms 40077 10003 162.41 205.20 121.78 38.40 81.54 100.68 184.04 cship Reencounter 40138 10006 107.72 344.40 123.10 24.21 120.58 188.60 503.87 cship Sinusoids 40066 10003 94.38 363.07 100.98 33.86 97.95 122.69 684.70 cship Reconcilable 40076 10003 109.64 437.70 84.14 27.02 124.12 115.89 960.17 cship Peacefulness 40056 10002 90.98 101.85 90.40 28.71 73.53 143.02 635.32 cship Safeguarding 40148 10007 245.76 199.94 112.26 36.15 176.00 161.11 823.24 cship Disinfestation 40048 10002 126.84 403.20 129.31 38.79 164.82 142.23 79.10 cship Oversees 40137 10006 172.42 349.71 55.97 33.97 109.56 137.00 286.30
  • 101. cship Lithias 40099 10004 101.21 340.47 82.45 38.00 127.26 177.08 742.86 cship Cardholder 40063 10003 86.93 374.32 84.39 24.17 195.28 106.48 823.14 cship Quieters 40123 10006 183.76 497.61 90.99 33.95 160.06 104.34 370.31 cship Rankness 40119 10005 118.05 374.52 40.92 43.02 194.21 187.14 366.67 cship Sonorous 40000 10000 105.71 381.88 121.16 25.87 172.05 104.34 946.22 cship Persuades 40011 10000 150.02 255.24 122.29 26.37 72.66 172.84 171.29 cship Devolves 40155 10007 230.99 285.02 34.86 41.75 179.08 163.58 850.64 cship Hierophant 40132 10006 210.83 207.83 96.47 36.09 143.03 135.42 80.27 cship Spouter 40135 10006 175.39 268.53 95.89 29.91 107.50 118.46 86.82 cship Nomenclatures 40024 10001 81.45 452.03 82.50 23.87 29.47 160.85 60.44 cship Briefcases 40115 10005 212.77 327.84 125.69 26.93 151.61 111.27 173.00 cship Bioclimatology 40067 10003 183.45 127.48 105.61 17.33 61.48 111.35 327.71 cship Psychologies 40142 10007 157.06 382.77 50.53 23.47 159.09 142.57 327.31 cship Onomatopoetic 40092 10004 225.19 463.74 62.26 36.02 209.03 178.12 278.16 cship Debugged 40028 10001 222.07 455.95 92.64 41.47 123.75 176.58 251.91 cship Classifiable 40126 10006 99.44 308.06 37.88 31.55 189.80 177.19 911.49 cship Casks 40034 10001 125.83 198.57 113.07 21.84 66.76 183.55 683.57 cship Germanies 40128 10006 82.37 272.13 39.91 19.65 180.10 185.85 99.53
  • 102. cship Popularizing 40082 10004 50.97 226.27 91.83 36.32 67.61 164.45 786.41 cship Monochromes 40030 10001 150.20 430.95 62.52 30.25 78.82 123.32 998.23 cship Replayed 40139 10006 210.84 328.84 62.47 23.96 173.89 184.20 499.73 cship Fingering 40046 10002 227.85 362.79 42.90 39.33 33.57 133.21 884.15 cship Knowing 40009 10000 196.30 104.33 80.78 25.18 95.59 136.57 638.63 cship Crotchets 40064 10003 138.75 413.77 41.11 37.13 36.06 157.54 153.39 cship Biotical 40001 10000 84.62 414.56 113.63 41.03 38.11 120.02 225.05 cship Halving 40052 10002 230.02 439.22 99.79 27.13 128.10 115.42 766.98 cship Phlegmy 40120 10006 237.29 458.68 119.69 36.52 91.37 111.39 801.36 cship Currycombs 40147 10007 193.26 208.56 48.89 24.96 92.50 134.17 327.19 cship Overstepped 40093 10004 190.81 334.12 35.37 40.39 30.95 148.93 992.81 cship Reimposing 40070 10003 219.19 230.30 58.36 32.91 161.17 177.81 913.18 cship Brutes 40069 10003 219.16 107.10 53.82 21.66 23.80 154.23 608.25 cship Piecemeal 40075 10003 199.66 374.37 126.59 33.34 131.51 121.84 609.94 cship Botany 40145 10007 169.16 257.35 53.60 19.23 198.53 133.19 376.07 cship Selfhoods 40140 10007 248.36 194.41 118.81 20.58 190.24 118.54 345.49 cship Ladykin 40111 10005 160.16 179.87 45.89 17.89 174.86 133.18 267.16 cship Skirmishers 40072 10003 243.07 477.38 98.01 21.87 76.79 114.11 472.53
  • 103. cship Unpriced 40106 10005 205.06 296.87 33.95 36.73 45.08 122.26 327.62 cship Sorties 40124 10006 190.46 120.08 95.42 21.03 79.69 122.29 275.37 cship Segno 40103 10005 245.25 210.66 59.94 15.14 184.29 100.03 817.91 cship Ostensibility 40005 10000 167.00 153.16 109.42 33.92 112.15 106.89 320.20 cship Fantod 40049 10002 161.72 389.62 105.12 24.58 112.31 106.05 658.33 cship Lacings 40018 10000 179.29 276.78 107.75 38.31 27.46 182.56 818.39 cship Resumes 40059 10002 79.23 285.48 66.70 40.50 183.45 175.74 952.46 cship Reb 40054 10002 213.23 192.21 111.85 19.80 175.81 102.51 98.05 cship Dixieland 40133 10006 144.07 320.60 35.38 20.95 129.05 107.65 999.24 cship Doubtless 40039 10001 193.02 232.48 70.27 30.05 29.70 148.31 671.48 cship Mouldier 40125 10006 84.77 419.56 35.32 25.09 109.84 127.40 121.98 cship Bismuths 40071 10003 76.28 453.66 60.43 24.52 99.13 193.80 68.43 cship Partridges 40150 10007 106.18 178.74 104.28 32.68 83.60 173.72 105.15 cship Superconductors 40045 10002 104.40 265.26 125.59 17.42 74.55 105.43 815.88 cship Antiparticles 40015 10000 83.46 102.54 50.65 39.96 140.71 115.22 179.84 cship Suicide 40149 10007 70.89 464.07 121.70 40.75 36.79 196.47 614.66 cship Landslip 40016 10000 59.36 299.05 103.05 34.93 65.26 150.58 108.04 cship Medico 40041 10002 158.47 404.56 69.05 29.07 194.62 172.98 304.61
  • 104. cship Thirteenths 40108 10005 181.63 485.93 125.28 37.52 172.52 122.12 386.52 cship Uglifying 40010 10000 124.54 270.72 67.40 16.20 175.14 116.08 596.39 cship Emphysema 40013 10000 214.54 120.52 48.96 22.03 130.62 142.53 695.18 cship Blasts 40127 10006 203.70 320.83 63.78 28.96 172.55 115.96 280.31 cship Wyverns 40080 10004 116.72 157.57 80.01 29.99 92.56 110.20 469.90 cship Blossomed 40027 10001 133.06 174.62 83.58 15.05 61.19 104.52 655.23 cship Dreadnoughts 40014 10000 200.50 267.25 33.17 29.69 173.51 138.35 477.20 cship Endorsements 40116 10005 209.83 463.52 106.80 19.94 53.87 112.67 31.79 cship Tattooing 40087 10004 90.01 289.64 68.23 26.14 173.09 181.04 372.75 cship Annul 40089 10004 231.88 385.12 90.66 42.99 126.59 152.23 673.70 cship Endeavor 40012 10000 179.42 407.28 91.53 38.02 69.86 113.39 981.89 cship Northeasterly 40036 10001 215.98 417.74 57.99 37.11 40.76 155.39 325.76 cship Lushed 40158 10007 238.51 345.53 37.23 32.35 161.05 149.41 114.42 cship Vestees 40025 10001 182.12 467.92 96.98 26.30 102.94 163.25 192.35 cship Avouching 40057 10002 152.60 122.20 107.05 19.35 172.37 188.13 784.84 cship Oculi 40031 10001 142.41 417.18 46.27 31.48 64.32 109.85 117.89 cship Retraction 40038 10001 78.56 152.52 70.92 27.65 152.77 126.76 81.74 cship Overexpose 40102 10005 126.98 134.16 83.13 24.64 109.33 107.20 852.04
  • 105. cship Dishonorable 40061 10003 229.01 457.04 95.93 18.68 148.62 130.53 143.05 cship Desalt 40084 10004 188.60 217.03 106.30 36.32 136.14 171.68 822.82 cship Mercuries 40074 10003 80.83 499.08 80.19 31.82 107.59 147.25 178.46 cship Priorates 40109 10005 174.88 337.57 85.62 43.86 81.87 124.66 26.10 cship Arbitration 40079 10003 109.14 225.30 43.23 19.85 141.35 141.58 975.17 cship Untranscendentally 40023 10001 225.86 339.56 42.38 23.96 169.69 111.73 964.98 cship Empresses 40110 10005 151.24 235.23 83.63 35.22 137.44 198.94 364.63 cship Eyesight 40035 10001 168.48 442.64 70.64 20.97 218.88 127.48 29.20 cship Steamships 40050 10002 145.51 172.45 75.20 25.49 141.02 145.37 521.56 cship Graspingness 40154 10007 131.60 176.57 110.11 30.05 104.33 193.03 503.13 cship Morn 40078 10003 220.16 135.84 56.94 35.95 219.70 106.36 429.19 cship Baptizes 40065 10003 76.93 306.06 114.11 31.95 75.07 193.68 698.17 cship Garish 40095 10004 207.88 174.05 74.40 22.52 128.99 164.10 956.22 cship Purulence 40097 10004 64.44 192.60 93.98 30.40 87.55 107.18 80.95 cship Deputed 40007 10000 234.02 290.28 92.17 25.65 196.36 199.55 891.46 cship Overspecializes 40081 10004 175.39 442.91 95.07 19.04 137.93 188.05 745.93 cship Novelties 40055 10002 105.93 221.93 119.40 22.98 74.79 171.48 303.41 cship Messes 40051 10002 81.74 150.04 36.78 27.46 194.84 179.69 392.01
  • 106. cship Overscrupulousness 40020 10001 225.37 275.02 32.06 25.92 52.46 175.81 331.25 cship Hotchpotch 40143 10007 230.79 158.44 46.63 34.19 40.98 112.01 396.04 cship Incongruity 40118 10005 53.77 358.48 100.94 17.49 197.60 131.13 657.48 cship Subletting 40096 10004 208.06 335.92 35.58 25.31 127.55 142.37 619.08 cship Feared 40073 10003 142.46 324.16 122.80 44.24 103.00 100.02 697.91 cship Wilding 40136 10006 240.80 103.77 128.45 34.06 33.58 176.80 889.35 cship Flatcars 40114 10005 241.66 320.95 86.65 32.42 201.96 177.38 243.88 cship Bedazzle 40117 10005 71.71 474.53 114.32 43.79 42.05 163.87 36.13 cship Eulogise 40033 10001 81.16 471.54 35.23 22.10 218.43 109.58 44.85 cship Alloy 40062 10003 101.13 354.22 96.37 36.99 174.73 174.33 420.02 cship Maligns 40042 10002 57.98 175.24 45.37 32.54 195.49 111.61 329.30 cship Defacer 40022 10001 118.28 103.65 121.15 26.26 57.32 158.22 976.87 cship Weensiest 40131 10006 53.81 306.62 74.52 21.02 69.41 102.63 36.14 cship Approves 40058 10002 67.73 347.43 85.31 16.94 204.51 188.86 837.81 cship Ophthalmologies 40037 10001 134.76 320.91 37.24 19.12 131.68 184.80 505.80 cship Streptococcal 40008 10000 235.83 387.87 103.99 36.40 21.29 152.86 50.90 cship Vanitied 40094 10004 118.19 462.90 92.19 26.85 178.82 167.23 295.00 cship Unexpressed 40040 10002 101.10 398.20 95.79 23.43 137.23 163.08 313.50
  • 107. cship Indoctrinating 40091 10004 135.73 352.42 115.86 42.46 168.53 146.79 63.89 cship Overgeneralization 40157 10007 156.42 315.02 54.53 43.65 33.00 134.94 1007.99 cship Eons 40141 10007 153.44 127.65 115.95 38.00 29.51 156.04 356.89 cship Anemometer 40021 10001 58.69 492.47 92.97 22.32 132.32 111.58 20.49 cship Preachier 40112 10005 108.99 348.85 121.66 28.19 218.89 182.93 404.52 cship Implacably 40146 10007 176.41 206.01 55.47 28.37 195.73 183.07 839.66 cship Rotguts 40144 10007 144.82 167.41 78.34 15.09 170.10 104.26 107.96 // person name index parent skill // person <string> <int> <int> <string> person Eddie 50035 10004 clerk person Margie 50040 10004 captain person Eva 50029 10003 driver person Jared 50023 10003 cleaner person Darrel 50076 10007 inspector person Andre 50073 10007 inspector person Ellen 50017 10002 crew person Angelina 50074 10007 driver person Kristy 50001 10000 inspector person Estelle 50048 10005 mate person Meghan 50047 10005 stevedore person Johnny 50072 10007 carpenter person Lance 50059 10006 craneOperator person Lewis 50043 10005 janitor person Rudolph 50056 10006 mate person Marguerite 50010 10001 engineer person Sam 50051 10005 craneOperator person Lewis 50060 10006 mechanic person Cassandra 50050 10005 painter
  • 108. person Gloria 50045 10005 clerk person Minnie 50041 10004 craneOperator person Conrad 50006 10001 electrician person Kendra 50028 10003 carpenter person Jerald 50009 10001 electrician person Jay 50002 10000 crew person Doreen 50000 10000 janitor person Laurie 50020 10002 janitor person Trevor 50025 10003 stevedore person Kim 50042 10004 mechanic person Melanie 50011 10001 painter person Juana 50003 10000 engineer person Brittany 50066 10007 janitor person Eva 50030 10003 inspector person Sammy 50013 10001 clerk person Taylor 50036 10004 captain person Lynette 50021 10002 cleaner person Pam 50005 10000 cleaner person Julia 50024 10003 stevedore person Sheldon 50052 10006 stevedore person Sonya 50015 10002 crew person Ed 50067 10007 mate person Ray 50071 10007 clerk person Clyde 50037 10004 painter person Marcia 50044 10005 painter person Cameron 50004 10000 carpenter person Christine 50026 10003 clerk person Joan 50007 10001 mate person Bruce 50038 10004 craneOperator person Darlene 50077 10007 mechanic person Wendy 50062 10006 driver person Grace 50053 10006 crew person Camille 50046 10005 captain person Theodore 50022 10002 engineer person Moses 50065 10006 engineer person Molly 50064 10006 electrician
  • 109. person Cassandra 50054 10006 carpenter person Preston 50075 10007 craneOperator person Krista 50012 10001 painter person Pat 50033 10004 cleaner person Alvin 50069 10007 electrician person Monica 50057 10006 crew person Nadine 50058 10006 janitor person Lucia 50078 10007 carpenter person Marion 50055 10006 driver person Rosemary 50032 10003 stevedore person Scott 50031 10003 carpenter person Martin 50034 10004 janitor person Michele 50019 10002 craneOperator person Wendy 50049 10005 captain person Conrad 50070 10007 mate person Nicholas 50027 10003 mate person Donnie 50039 10004 painter person Cedric 50061 10006 cleaner person George 50068 10007 electrician person Keith 50008 10001 crew person Phyllis 50063 10006 mechanic person Francis 50018 10002 janitor person Wilbert 50016 10002 craneOperator person Ronnie 50014 10002 clerk // job name index parent duration [skill]* (zero or more, matches skill in person, may repeat) // job <string> <int> <int> <double> [<string>]* job Job_90_29_24 60017 30009 20.02 engineer carpenter job Job_11_45_73 60214 30070 58.24 driver job Job_83_87_25 60068 30021 103.62 driver captain cleaner job Job_16_90_60 60294 40082 105.40 clerk stevedore cleaner job Job_86_15_87 60443 30154 102.39 electrician
  • 110. inspector job Job_81_67_20 60117 40025 24.46 engineer stevedore janitor job Job_90_41_62 60000 30000 105.45 mate job Job_96_32_37 60079 30024 61.82 electrician driver stevedore job Job_77_71_86 60171 40043 89.79 driver craneOperator stevedore engineer job Job_43_56_61 60123 40029 89.06 inspector janitor job Job_32_31_18 60241 40071 75.90 electrician job Job_71_18_35 60118 40027 36.85 crew job Job_65_20_54 60394 30128 117.57 driver cleaner job Job_63_27_19 60222 30079 36.57 mechanic cleaner job Job_82_99_75 60065 40018 85.28 job Job_97_49_40 60480 40156 49.81 cleaner job Job_38_15_74 60437 30148 26.45 clerk job Job_73_72_58 60396 30135 57.95 mate job Job_62_92_52 60131 40033 85.44 job Job_28_33_73 60261 30084 87.37 job Job_59_11_67 60052 40010 103.18 craneOperator job Job_37_66_66 60475 40154 41.44 job Job_85_33_94 60043 40002 63.63 job Job_10_12_64 60039 40000 72.16 cleaner clerk job Job_53_73_49 60361 40105 25.55 craneOperator job Job_83_76_26 60386 30122 92.88 job Job_63_28_78 60004 30002 110.54 job Job_90_69_27 60232 40066 98.26 clerk job Job_70_48_71 60207 30066 35.85 job Job_77_90_52 60273 30090 63.70 job Job_85_34_13 60212 30068 107.64 painter job Job_24_45_88 60418 40133 43.07 clerk job Job_23_82_51 60462 40144 67.48 engineer job Job_29_41_13 60215 30072 109.01 engineer mechanic job Job_27_69_92 60270 30089 35.22 job Job_20_29_30 60110 40022 119.64 painter painter
  • 111. clerk job Job_77_26_45 60272 30090 73.35 stevedore job Job_51_27_26 60166 40042 74.00 engineer driver mate job Job_20_69_96 60146 30048 32.44 stevedore clerk job Job_52_88_43 60094 30033 35.50 driver job Job_27_94_62 60113 40024 101.12 carpenter inspector job Job_98_70_18 60190 40054 60.50 painter job Job_66_74_78 60080 30025 59.60 job Job_43_24_64 60265 30086 33.74 carpenter craneOperator mechanic job Job_88_88_86 60378 40117 110.75 mechanic job Job_25_18_44 60061 40017 81.17 driver job Job_77_85_32 60398 30136 38.20 job Job_23_38_71 60072 30022 67.52 stevedore craneOperator driver job Job_48_54_86 60293 40082 89.28 mate job Job_62_56_47 60162 30057 34.86 painter job Job_69_74_83 60430 30140 67.72 janitor clerk engineer job Job_47_26_28 60313 40094 60.16 job Job_23_50_92 60271 30089 118.78 crew mechanic electrician craneOperator job Job_34_72_22 60041 40002 118.65 captain engineer job Job_18_18_34 60434 30146 69.15 painter electrician job Job_14_34_75 60026 30013 43.58 job Job_86_49_93 60135 40037 41.78 job Job_69_83_89 60097 30036 34.04 cleaner job Job_29_62_57 60432 30145 38.57 job Job_71_63_43 60134 40037 39.40 janitor mechanic craneOperator job Job_33_10_32 60126 40030 21.32 electrician job Job_59_20_32 60370 40112 64.49 janitor cleaner captain
  • 112. job Job_40_36_41 60205 30062 30.62 job Job_80_19_30 60174 40046 111.56 janitor janitor janitor job Job_46_58_41 60463 40144 112.04 clerk job Job_13_27_62 60156 30055 55.38 cleaner job Job_31_59_17 60138 40039 79.16 engineer job Job_73_36_31 60225 40061 32.47 cleaner job Job_72_75_80 60346 30118 85.60 job Job_97_54_81 60413 40129 96.77 cleaner craneOperator job Job_29_18_55 60172 40045 80.98 captain painter job Job_72_23_75 60157 30055 44.69 inspector craneOperator job Job_70_63_71 60287 30099 48.20 engineer job Job_61_36_28 60216 30073 23.42 clerk carpenter carpenter job Job_81_86_65 60237 40068 106.02 janitor electrician job Job_43_29_56 60074 30023 110.28 inspector stevedore job Job_90_25_49 60299 40087 111.31 mechanic driver job Job_29_26_44 60439 30149 73.11 mate job Job_70_39_88 60105 30039 97.83 captain job Job_56_38_95 60179 40048 47.55 driver inspector job Job_27_65_34 60306 40091 101.07 stevedore job Job_10_51_36 60469 40149 47.86 carpenter job Job_79_65_24 60184 40049 23.27 captain carpenter craneOperator job Job_41_96_49 60005 30004 65.21 mate driver job Job_43_19_35 60063 40018 25.06 painter crew driver job Job_57_58_17 60021 30012 56.12 painter inspector job Job_23_19_57 60472 40150 23.76 electrician electrician mate job Job_57_11_81 60478 40155 44.89 crew job Job_99_80_82 60431 30142 96.35 inspector driver
  • 113. job Job_95_13_11 60436 30147 50.33 job Job_67_88_52 60415 40130 104.77 electrician job Job_55_12_21 60165 40042 68.35 inspector job Job_60_12_11 60116 40025 95.37 inspector job Job_94_25_60 60128 40031 113.54 job Job_27_51_52 60417 40132 33.93 mate cleaner cleaner job Job_39_86_31 60320 30100 99.66 stevedore job Job_98_45_58 60014 30008 111.61 cleaner stevedore job Job_84_55_56 60111 40023 100.12 carpenter job Job_99_18_73 60204 30062 99.72 clerk job Job_86_78_39 60268 30087 101.77 job Job_11_31_95 60003 30001 64.05 job Job_35_94_19 60274 30091 35.61 craneOperator engineer job Job_99_25_87 60132 40035 83.62 job Job_90_73_73 60086 30029 106.48 cleaner job Job_91_41_92 60192 40054 33.80 carpenter crew painter job Job_11_75_88 60412 40129 86.46 craneOperator mate inspector engineer job Job_73_72_93 60484 40159 113.02 job Job_49_64_13 60053 40012 40.98 craneOperator cleaner job Job_88_32_95 60049 40008 28.63 crew mechanic job Job_59_44_98 60093 30033 56.90 job Job_98_15_20 60211 30067 92.00 stevedore job Job_66_68_90 60067 40019 96.67 job Job_22_61_18 60317 40099 118.40 job Job_11_54_30 60185 40051 64.82 job Job_66_19_93 60479 40155 34.14 job Job_57_71_19 60373 40114 96.36 driver job Job_28_48_22 60009 30006 92.53 carpenter job Job_98_54_95 60103 30038 111.76 inspector job Job_48_10_77 60022 30012 38.62 mate
  • 114. job Job_97_71_59 60178 40047 98.07 job Job_33_87_58 60305 40091 116.21 job Job_22_54_15 60064 40018 53.59 job Job_20_33_36 60083 30027 94.12 job Job_66_50_47 60298 40085 48.63 crew job Job_56_38_54 60340 30115 49.53 job Job_78_12_15 60375 40115 61.77 clerk captain job Job_49_68_95 60319 30100 25.42 driver captain job Job_95_79_80 60127 40031 58.48 clerk job Job_58_75_58 60252 40078 47.46 painter craneOperator job Job_28_16_31 60175 40046 33.96 job Job_12_86_96 60302 40089 98.13 job Job_49_30_43 60034 30016 107.56 crew job Job_57_81_73 60029 30014 71.11 electrician mechanic janitor stevedore job Job_94_77_56 60385 30121 43.72 mechanic inspector job Job_81_84_80 60410 40126 110.57 job Job_63_94_18 60180 40048 63.59 job Job_59_67_97 60112 40023 20.52 electrician job Job_55_91_89 60048 40007 72.30 inspector job Job_70_69_24 60433 30145 34.14 craneOperator job Job_57_28_22 60342 30116 91.01 stevedore job Job_28_38_68 60038 40000 112.61 carpenter job Job_57_21_89 60350 30119 115.68 driver engineer stevedore job Job_74_67_45 60380 40119 108.34 captain job Job_10_49_69 60202 30060 47.95 engineer cleaner driver job Job_96_55_60 60016 30009 33.83 mechanic captain job Job_28_13_40 60372 40113 103.93 cleaner mechanic job Job_95_49_54 60331 30107 46.14 stevedore job Job_10_21_32 60256 30081 47.32 cleaner job Job_62_60_21 60481 40156 115.94 janitor
  • 115. electrician job Job_96_36_96 60206 30063 72.82 painter captain job Job_51_33_38 60077 30023 111.54 clerk job Job_63_38_67 60210 30067 54.74 crew captain job Job_71_77_79 60235 40068 102.49 job Job_42_98_50 60030 30014 81.20 electrician job Job_26_67_62 60101 30037 112.07 engineer job Job_63_58_45 60467 40149 109.11 inspector clerk stevedore job Job_82_70_67 60236 40068 108.78 driver painter job Job_39_51_12 60334 30110 59.77 job Job_32_30_79 60147 30048 115.94 carpenter job Job_42_33_22 60260 30083 20.44 painter clerk driver job Job_61_54_70 60335 30111 97.28 crew carpenter mechanic job Job_49_50_29 60364 40108 119.41 cleaner job Job_84_27_87 60001 30000 62.50 janitor engineer job Job_11_63_23 60452 40140 41.25 stevedore job Job_88_47_38 60482 40157 34.21 job Job_21_16_13 60137 40038 32.07 job Job_95_20_45 60081 30025 24.14 mate driver craneOperator job Job_42_42_62 60194 40055 106.07 stevedore job Job_45_17_19 60229 40064 103.35 inspector clerk captain job Job_59_72_25 60343 30116 82.75 crew mechanic job Job_12_24_90 60476 40154 89.32 captain job Job_53_26_90 60230 40064 59.24 job Job_51_45_61 60450 30159 89.10 clerk janitor mate job Job_25_29_58 60124 40029 24.85 electrician carpenter driver job Job_44_58_23 60181 40049 116.18 electrician job Job_70_23_75 60082 30027 42.63 driver janitor captain job Job_71_40_52 60253 40079 59.43 painter
  • 116. job Job_50_39_85 60084 30028 20.71 janitor stevedore job Job_30_37_79 60448 30158 48.08 captain clerk job Job_66_97_27 60442 30153 44.86 stevedore job Job_83_10_17 60141 30041 75.43 mate job Job_68_51_95 60050 40009 51.17 craneOperator mate cleaner job Job_61_22_89 60035 30017 108.93 janitor job Job_67_45_11 60057 40014 43.79 stevedore electrician captain job Job_20_97_42 60218 30075 35.03 janitor job Job_47_74_80 60269 30088 98.78 crew job Job_58_23_56 60051 40010 60.82 painter painter job Job_51_11_53 60027 30014 34.81 electrician job Job_54_66_24 60338 30114 74.55 stevedore job Job_65_30_72 60321 30100 114.49 crew crew mechanic job Job_46_68_47 60059 40016 112.55 driver mechanic job Job_42_88_68 60139 40039 117.60 inspector inspector carpenter job Job_60_91_85 60145 30046 115.87 captain janitor job Job_79_73_28 60217 30074 84.86 crew janitor clerk job Job_17_88_69 60325 30103 83.13 inspector job Job_33_95_33 60169 40043 37.52 mate job Job_30_36_22 60008 30006 68.43 engineer job Job_75_16_77 60154 30054 71.59 mate clerk driver job Job_54_47_72 60144 30043 38.90 janitor job Job_15_89_41 60136 40038 82.83 driver cleaner job Job_52_75_34 60033 30016 112.45 mate driver job Job_17_24_80 60367 40109 84.74 driver craneOperator painter job Job_96_96_21 60301 40088 70.46 crew craneOperator janitor job Job_97_37_80 60389 30125 75.44 job Job_63_72_78 60073 30022 115.95 job Job_11_38_60 60428 40139 88.55 job Job_52_33_24 60006 30004 48.39 craneOperator
  • 117. inspector job Job_84_44_44 60012 30007 20.66 job Job_93_15_19 60405 40123 57.10 janitor job Job_74_50_33 60078 30024 34.96 driver job Job_42_23_59 60149 30051 82.55 carpenter carpenter job Job_93_57_54 60465 40146 34.02 painter job Job_21_71_76 60283 30098 90.49 craneOperator job Job_55_92_53 60327 30104 103.98 job Job_10_53_21 60336 30111 61.32 clerk driver job Job_39_53_43 60091 30032 92.83 mechanic driver driver job Job_80_19_64 60435 30147 62.56 crew painter painter job Job_39_79_37 60076 30023 56.99 captain cleaner job Job_20_59_98 60390 30126 42.01 engineer job Job_67_80_99 60173 40045 96.97 job Job_25_16_92 60170 40043 98.03 stevedore stevedore job Job_86_82_23 60459 40142 43.95 job Job_72_18_61 60129 40031 86.11 engineer mechanic job Job_98_92_69 60458 40142 80.46 engineer job Job_20_48_98 60363 40106 116.24 painter job Job_88_94_91 60382 30120 81.13 crew job Job_66_41_31 60278 30095 28.69 carpenter driver job Job_23_80_95 60421 40134 62.52 craneOperator janitor job Job_89_78_63 60249 40077 49.63 captain carpenter inspector job Job_50_14_47 60193 40054 104.85 crew driver job Job_44_99_52 60040 40001 33.01 job Job_45_85_40 60254 40079 89.52 crew job Job_86_30_39 60186 40051 52.13 craneOperator engineer job Job_23_46_52 60100 30036 53.36 painter painter
  • 118. job Job_35_23_79 60011 30007 88.57 mate electrician carpenter captain job Job_59_75_33 60308 40092 94.29 job Job_62_72_37 60046 40007 43.61 painter mechanic electrician job Job_90_98_68 60423 40137 59.03 painter crew craneOperator job Job_86_53_34 60010 30006 100.87 driver job Job_12_73_50 60290 40081 81.41 stevedore job Job_99_81_45 60198 40058 118.17 job Job_27_22_96 60420 40133 89.25 stevedore job Job_60_57_92 60088 30031 87.07 craneOperator job Job_29_13_11 60047 40007 73.16 captain clerk job Job_83_78_23 60167 40042 24.82 captain mechanic job Job_66_19_51 60140 30040 117.81 job Job_71_90_34 60339 30115 68.18 inspector job Job_60_48_51 60297 40085 53.91 clerk inspector job Job_10_66_32 60208 30066 31.11 driver cleaner electrician painter job Job_27_10_65 60164 40041 67.93 engineer electrician cleaner job Job_94_71_53 60326 30103 46.62 craneOperator job Job_20_16_33 60098 30036 109.85 stevedore crew engineer job Job_44_40_52 60397 30136 118.39 mate clerk job Job_76_84_83 60060 40016 35.45 janitor stevedore driver job Job_52_65_58 60304 40090 56.58 carpenter job Job_49_22_71 60143 30043 59.55 painter job Job_51_76_72 60120 40028 66.34 job Job_82_14_99 60085 30029 25.17 job Job_49_48_17 60125 40029 86.72 craneOperator driver electrician electrician job Job_90_34_61 60403 30139 51.72 job Job_19_46_46 60250 40077 81.20 captain engineer job Job_41_95_70 60238 40069 67.43 captain captain
  • 119. job Job_75_45_50 60318 40099 32.16 janitor job Job_98_12_20 60341 30116 49.99 inspector job Job_67_23_35 60468 40149 62.75 mechanic job Job_10_70_32 60330 30107 52.50 inspector job Job_28_68_67 60285 30099 87.77 mate crew electrician job Job_87_89_89 60224 40060 90.37 janitor job Job_16_65_20 60447 30156 85.21 electrician cleaner captain cleaner job Job_84_49_28 60213 30068 69.62 janitor painter inspector job Job_71_82_47 60401 30138 35.06 captain crew job Job_19_97_93 60329 30105 87.27 janitor craneOperator job Job_47_88_46 60189 40053 33.57 electrician electrician job Job_16_77_78 60474 40153 68.96 carpenter painter job Job_43_16_65 60444 30154 38.30 captain job Job_72_18_43 60177 40047 105.10 clerk job Job_53_29_54 60441 30151 64.04 mate job Job_70_22_33 60355 40101 72.82 job Job_27_41_83 60121 40028 36.12 mechanic crew job Job_94_69_34 60024 30013 21.91 job Job_28_48_34 60424 40138 118.60 electrician mate job Job_17_12_56 60392 30128 43.60 job Job_52_49_78 60351 30119 67.17 electrician carpenter job Job_38_79_92 60407 40126 63.20 job Job_80_28_84 60279 30096 39.49 job Job_25_98_83 60300 40087 69.15 painter job Job_95_14_65 60353 40100 115.35 stevedore job Job_25_80_38 60359 40103 55.64 crew engineer job Job_99_38_52 60122 40028 117.86 janitor clerk electrician inspector job Job_77_62_23 60483 40158 60.92 electrician painter
  • 120. job Job_21_34_92 60188 40052 54.76 electrician job Job_55_69_89 60328 30105 40.00 mate painter job Job_45_29_52 60258 30083 59.78 mechanic painter captain clerk job Job_60_37_70 60257 30082 68.77 cleaner job Job_31_44_66 60393 30128 105.25 captain inspector job Job_25_22_88 60311 40094 76.19 janitor job Job_33_68_60 60102 30038 24.79 mechanic job Job_89_41_30 60368 40112 101.02 cleaner carpenter job Job_67_88_95 60032 30015 44.07 job Job_62_72_35 60282 30098 51.51 mate crew carpenter crew job Job_17_64_73 60251 40078 22.32 driver job Job_12_30_55 60115 40025 85.61 carpenter job Job_91_57_52 60277 30093 113.01 job Job_69_98_39 60160 30056 62.17 mate cleaner painter job Job_89_35_85 60416 40132 52.22 clerk driver driver job Job_98_89_96 60295 40083 33.06 captain janitor job Job_30_30_28 60322 30100 78.61 electrician janitor job Job_95_37_71 60168 40043 108.87 inspector mate clerk job Job_32_81_28 60187 40052 59.49 driver janitor job Job_79_28_76 60019 30011 34.50 cleaner clerk job Job_65_65_62 60240 40069 88.34 inspector janitor janitor job Job_75_21_11 60155 30055 108.17 job Job_32_94_85 60259 30083 52.46 crew janitor clerk job Job_92_56_74 60201 40059 112.34 inspector captain job Job_83_19_77 60383 30120 57.33 crew electrician painter
  • 121. job Job_15_50_38 60352 40100 85.04 craneOperator painter job Job_76_91_48 60267 30087 105.60 painter job Job_76_58_63 60427 40139 46.59 job Job_73_27_41 60477 40155 51.27 driver crew painter job Job_86_29_25 60395 30132 88.71 inspector job Job_71_21_66 60150 30051 73.02 driver job Job_96_56_17 60248 40077 84.39 job Job_67_61_14 60062 40017 27.67 captain job Job_15_88_81 60020 30011 56.15 job Job_12_24_20 60058 40015 77.76 electrician janitor job Job_50_93_17 60209 30066 73.35 job Job_29_22_49 60161 30057 73.95 mechanic cleaner job Job_18_57_74 60075 30023 105.05 carpenter inspector job Job_99_90_53 60227 40062 53.22 job Job_90_39_40 60419 40133 22.03 driver engineer job Job_29_59_39 60449 30158 96.03 craneOperator job Job_47_10_43 60018 30010 91.08 job Job_73_52_19 60220 30077 70.90 driver captain janitor job Job_82_86_63 60323 30102 107.92 mechanic carpenter job Job_44_41_60 60381 40119 106.96 janitor cleaner janitor captain job Job_10_13_95 60409 40126 91.60 job Job_52_22_16 60470 40150 87.65 electrician cleaner job Job_40_68_36 60369 40112 100.36 carpenter painter job Job_12_81_42 60275 30092 22.11 stevedore cleaner job Job_75_45_93 60226 40061 75.69 mechanic inspector job Job_80_92_57 60332 30107 24.42 painter inspector
  • 122. job Job_88_11_37 60360 40104 37.09 job Job_78_62_81 60357 40103 106.93 janitor job Job_25_84_99 60108 40021 59.99 electrician electrician cleaner cleaner job Job_66_32_61 60429 30140 93.51 job Job_44_37_65 60466 40148 35.22 stevedore job Job_91_25_17 60182 40049 101.09 engineer driver job Job_96_34_14 60096 30035 31.66 cleaner driver driver job Job_72_89_32 60453 40140 77.54 painter electrician job Job_89_68_18 60133 40036 106.17 engineer job Job_38_21_94 60426 40139 23.94 driver mate craneOperator mate job Job_85_57_18 60106 40020 96.74 job Job_98_60_12 60314 40095 96.90 job Job_70_25_25 60266 30086 47.73 job Job_42_95_45 60333 30109 49.52 mechanic electrician painter job Job_85_65_22 60296 40083 88.51 stevedore mechanic clerk job Job_45_85_32 60456 40141 45.86 electrician job Job_18_17_26 60002 30000 118.89 carpenter mate job Job_18_86_48 60291 40081 110.85 clerk job Job_40_85_67 60239 40069 70.89 inspector job Job_94_23_13 60440 30151 97.43 stevedore job Job_72_23_32 60414 40129 22.95 driver stevedore crew captain job Job_69_24_67 60384 30121 112.81 carpenter job Job_63_69_16 60315 40095 116.16 mate job Job_93_11_29 60223 40060 116.24 job Job_55_35_38 60142 30043 51.21 electrician job Job_69_10_74 60099 30036 43.41 job Job_84_63_97 60377 40116 113.56 stevedore job Job_81_18_96 60408 40126 62.23 carpenter job Job_33_45_12 60303 40089 71.58 carpenter
  • 123. job Job_72_45_65 60451 30159 36.09 cleaner job Job_80_95_79 60089 30031 103.68 mate mate mate painter job Job_49_39_76 60391 30126 110.88 mechanic carpenter craneOperator job Job_14_51_22 60015 30009 119.44 engineer job Job_80_49_72 60247 40075 69.27 captain job Job_60_12_92 60358 40103 88.61 crew job Job_41_53_62 60464 40144 57.19 craneOperator stevedore job Job_89_12_57 60159 30056 91.87 mechanic mechanic job Job_55_96_82 60158 30056 25.06 crew painter job Job_66_89_38 60354 40100 96.57 clerk job Job_33_70_63 60243 40072 58.74 mate engineer job Job_19_42_22 60242 40071 82.45 job Job_97_79_58 60280 30096 43.16 electrician job Job_51_34_22 60028 30014 66.21 inspector painter clerk job Job_81_34_70 60070 30021 62.46 job Job_70_92_53 60151 30053 70.97 mate job Job_65_76_40 60114 40024 71.89 job Job_21_58_18 60245 40074 104.62 job Job_52_62_78 60457 40141 23.76 cleaner captain carpenter driver job Job_93_16_41 60399 30137 33.01 clerk job Job_84_95_90 60054 40012 67.74 engineer job Job_66_16_82 60066 40019 85.26 job Job_31_73_17 60362 40106 82.80 carpenter inspector janitor job Job_66_94_36 60348 30118 84.99 job Job_53_21_44 60071 30022 57.09 stevedore driver job Job_88_46_24 60244 40073 22.69 carpenter job Job_66_11_46 60454 40140 58.04 electrician clerk job Job_85_41_25 60055 40013 111.98 job Job_29_47_56 60056 40013 69.16 mechanic
  • 124. job Job_57_15_79 60276 30092 107.69 clerk job Job_18_85_65 60203 30062 116.26 mate painter janitor job Job_10_13_51 60013 30008 72.99 craneOperator craneOperator janitor job Job_80_99_95 60356 40101 73.16 driver janitor inspector job Job_42_12_17 60036 30017 24.09 job Job_34_30_94 60366 40109 37.47 janitor clerk job Job_98_70_20 60316 40097 87.89 captain job Job_26_27_87 60130 40032 105.42 inspector job Job_76_81_52 60286 30099 31.01 mate job Job_83_68_62 60183 40049 112.65 engineer cleaner job Job_74_32_37 60092 30032 70.67 cleaner electrician carpenter job Job_74_43_13 60246 40074 70.90 engineer job Job_27_67_83 60195 40055 106.65 electrician engineer stevedore job Job_92_40_19 60471 40150 33.79 job Job_95_95_48 60196 40056 32.60 janitor mechanic job Job_29_70_96 60200 40059 81.55 craneOperator engineer job Job_51_44_27 60119 40027 42.17 job Job_71_13_10 60349 30119 84.23 crew job Job_97_18_35 60312 40094 85.59 carpenter craneOperator job Job_12_62_59 60376 40115 96.74 job Job_94_75_57 60365 40108 118.51 engineer captain mechanic mate job Job_66_46_41 60104 30039 64.83 carpenter engineer painter job Job_25_78_84 60095 30034 37.26 mate job Job_71_22_53 60109 40022 44.68 mechanic janitor crew job Job_56_68_94 60455 40141 89.04 clerk driver crew job Job_87_72_95 60379 40118 70.45
  • 125. job Job_79_88_92 60090 30031 115.42 janitor mate job Job_36_12_90 60337 30111 26.98 job Job_74_30_21 60347 30118 54.50 carpenter job Job_62_24_21 60007 30004 48.04 job Job_19_15_13 60310 40092 75.15 craneOperator job Job_23_44_55 60176 40046 76.27 mechanic job Job_67_90_44 60264 30085 104.00 job Job_18_73_51 60233 40066 32.67 stevedore mechanic stevedore job Job_56_32_31 60345 30117 113.35 janitor electrician job Job_64_72_30 60438 30148 118.38 job Job_73_49_99 60148 30050 58.78 engineer driver job Job_93_47_27 60460 40143 35.48 job Job_35_32_94 60107 40021 31.38 mate stevedore job Job_45_51_25 60400 30138 96.18 clerk painter driver mechanic job Job_84_13_93 60255 30080 46.63 job Job_66_77_34 60292 40081 35.27 engineer stevedore job Job_13_53_24 60163 30058 68.75 janitor stevedore job Job_74_66_51 60281 30096 26.75 engineer craneOperator job Job_36_33_37 60307 40091 85.75 cleaner mechanic stevedore job Job_76_99_33 60228 40063 77.79 painter mechanic mate job Job_84_87_25 60197 40057 23.57 mechanic janitor job Job_48_63_35 60025 30013 101.85 stevedore clerk job Job_75_31_35 60231 40065 84.59 craneOperator engineer crew mechanic job Job_21_78_97 60191 40054 88.85 inspector carpenter electrician job Job_50_82_20 60309 40092 49.18 captain clerk electrician job Job_26_75_61 60262 30085 31.29 painter
  • 126. job Job_27_95_38 60402 30139 22.85 job Job_51_26_10 60284 30098 99.72 job Job_43_95_75 60411 40128 86.49 job Job_76_32_48 60371 40113 24.08 mate job Job_64_98_44 60425 40139 37.33 driver mechanic engineer job Job_20_53_91 60044 40004 80.62 mate engineer job Job_57_24_24 60087 30030 110.12 mechanic inspector job Job_76_93_50 60344 30117 31.30 engineer captain electrician job Job_15_63_71 60288 40080 33.02 mechanic job Job_73_58_39 60037 30019 112.85 mate janitor clerk job Job_75_20_72 60234 40067 70.05 captain carpenter driver crew job Job_59_89_57 60289 40080 57.16 mechanic job Job_50_24_68 60199 40058 29.85 painter mate engineer job Job_48_49_10 60221 30078 94.57 mate job Job_46_87_24 60069 30021 32.35 job Job_44_55_47 60404 40123 96.65 carpenter carpenter job Job_48_71_26 60219 30076 103.82 job Job_96_15_79 60445 30154 27.99 electrician stevedore craneOperator electrician job Job_24_82_65 60045 40005 103.34 clerk mate driver janitor job Job_81_38_89 60422 40136 54.16 job Job_90_96_73 60031 30015 111.70 mechanic janitor carpenter job Job_21_13_68 60324 30102 65.56 captain captain cleaner job Job_67_65_20 60263 30085 100.71 painter captain mate job Job_11_51_16 60042 40002 110.27 carpenter
  • 127. captain job Job_50_90_63 60406 40125 106.28 electrician job Job_76_43_56 60388 30124 100.28 stevedore cleaner job Job_56_36_36 60387 30123 31.87 painter engineer job Job_49_22_27 60473 40153 61.88 electrician driver job Job_40_11_91 60152 30053 109.08 job Job_27_58_29 60461 40143 76.14 job Job_54_10_47 60153 30053 70.73 job Job_16_46_93 60023 30013 65.20 captain mate job Job_69_38_34 60374 40114 25.83 job Job_51_50_23 60446 30156 79.68 stevedore carpenter CreateSeaPortDataFile.javaCreateSeaPortDataFile.java// File: C reateSeaPortDataFile.java // Date: Jul 8, 2016 // Author: Nicholas Duchon // Purpose: CMSC 335 new project import java.util.Scanner; import java.util.ArrayList; import java.util.List; import java.io.File; publicclassCreateSeaPortDataFile{ staticint nt =8;// number of ports staticint nd =15;// number of docks per port + 5 (>0) staticint np =20;// number of passenger ships per port staticint nc =20;// number of cargo ships per port staticint nj =5;// number of jobs per dock (>0) staticint nn =30;// number of persons per port + 5 staticString filename ="aSPad.txt"; staticString portSpec =
  • 128. "// port name index parent(null)n"+ "// port <string> <int> <int>n"; staticString dockSpec = "// dock name index parent(port)n"+ "// dock <string> <int> <int>n"; staticString shipSpec = "// ship name index parent(dock/port) weight length width draf tn"+ "// ship <string> <int> <int> <double> <double> <double> < double>n"; staticString cshipSpec = "// cship name index parent(dock/port) weight length width draf t cargoWeight cargoVolume cargoValuen"+ "// cship <string> <int> <int> <double> <double> <double> <double> <double> <double> <double>n"; staticString pshipSpec = "// pship name index parent(dock/port) weight length width dra ft numPassengers numRooms numOccupiedn"+ "// pship <string> <int> <int> <double> <double> <double> <double> <int> <int> <int>n"; staticString personSpec = "// person name index parent skilln"+ "// person <string> <int> <int> <string>n"; staticString jobSpec = "// job name index parent duration [skill]+ (one or more, matc hes skill in person, may repeat)n"+ "// job <string> <int> <int> <double> [<string>]+n"; publicstaticvoid main (String[] args){ if(args.length >0) nt =Integer.parseInt (args [0]); if(args.length >1) nd =Integer.parseInt (args [1]); if(args.length >2) np =Integer.parseInt (args [2]); if(args.length >3) nc =Integer.parseInt (args [3]); if(args.length >4) nj =Integer.parseInt (args [4]); if(args.length >5) nn =Integer.parseInt (args [5]); MyWorld mw;
  • 129. mw =newMyWorld(); // number of port, docks per port, num pass ships, num cargo shi ps, jobs per dock, persons per port mw.createRandomPorts (nt, nd, np, nc, nj, nn); // System.out.println ("nn>>>>> Random world:n" + mw.t oFileString()); ArrayList<MyThing> mwa =newArrayList<>(); mw.toArray (mwa); java.util.Collections.sort(mwa); try{ int type =0; java.io.PrintStream pw =System.out;// comment out next l ine to send output to console pw =new java.io.PrintStream(newFile(filename)); pw.println ("// File: "+ filename); pw.println ("// Data file for SeaPort projects"); java.util.Date date =new java.util.Date(); pw.printf ("// Date: %tcn", date); pw.printf ("// parameters: %d %d %d %d %d %dn", nt, n d, np, nc, nj, nn); pw.printf ("// ports, docks, pships, cships, jobs, persons n"); // shuffle within category int start =0; int end =0; ArrayList<MyThing> sub =newArrayList<>(); ArrayList<MyThing> mta =newArrayList<>(); for(int i =1; i <7; i++){ sub.clear (); while(start < mwa.size()&& mwa.get (start).index/10000< i) sta rt ++; end = start; if(end >= mwa.size ()) continue;
  • 130. while(end < mwa.size()&& mwa.get (end).index/10000== i){ sub.add (mwa.get(end)); end ++; } java.util.Collections.shuffle (sub); mta.addAll (sub); System.out.printf ("index: %d Sub: %sn", i,"sub?"); }// end for each category mwa = mta; for(MyThing mt: mwa){ if(mt.index/10000!= type){ pw.print ("n"); switch(mt.index/10000){ case1: pw.print (portSpec); break; case2: pw.print (dockSpec); break; case3: pw.print (pshipSpec); break; case4: pw.print (cshipSpec); break; case5: pw.print (personSpec); break; case6: pw.print (jobSpec); break; }// end switch type = mt.index/10000; }// end if changing type pw.print (mt.toFileString()); }// end writing data file } catch(java.io.FileNotFoundException e){ System.out.println ("output file not found"); } System.out.println ("done");
  • 131. }// end main }// end class CreateSeaPortDataFile classMyWorldextendsMyThing{ ArrayList<MySeaPort> ports =newArrayList<>(); MyTime time =newMyTime(0); publicvoid createRandomPorts (int n,int numDocks,int numPass, int numCargo,int numJobs,int numPersons){ for(int i =0; i < n; i++) ports.add (newMySeaPort(numDocks, numPass, numCarg o, numJobs, numPersons)); }// end method createRandomPorts publicvoid toArray (List<MyThing> ma){ for(MySeaPort mp: ports) mp.toArray (ma); }// end toArray }// end class MyWorld classMyThingimplementsComparable<MyThing>{ static java.util.Random rn =new java.util.Random(); staticArrayList<String> skillNames =null;// to read file only on ce String name =null; int index =0; int parent =0; publicMyThing(){} void readSkillsFile (){ try{ skillNames =newArrayList<>(); Scanner sp =newScanner(newFile("skillNames.txt"));
  • 132. while(sp.hasNext()) skillNames.add (sp.next()); System.out.println ("Skills File size: "+ skillNames.size()); } catch(java.io.FileNotFoundException e){System.out.println ("ba d file");} }// end readWordsFile void toArray (List<MyThing> mta){ mta.add (this); }// end method toList publicint compareTo (MyThing m){ return index - m.index; }// end method compareTo > Comparable publicString toFileString (){ return""; }// default toFileString method in MyThing }// end class MyThing classMySeaPortextendsMyThing{ staticint indexNew =10000; staticArrayList<String> portNames =null; double latitude =0; double longitude =0; ArrayList<MyDock> docks =newArrayList<>(); ArrayList<MyShip> que =newArrayList<>(); ArrayList<MyShip> ships =newArrayList<>(); ArrayList<MyPerson> persons =newArrayList<>(); publicMySeaPort(int numDocks,int numPass,int numCargo,int n umJobs,int numPersons){ if(portNames ==null) readPortsFile (); name = portNames.get (rn.nextInt (portNames.size())); index = indexNew++;
  • 133. parent =0; int remainingDocks = rn.nextInt (numDocks)+5; while(remainingDocks >0&& numPass >0){ MyPassengerShip mps =newMyPassengerShip(true, numJobs);// random ship ships.add (mps); MyDock md =newMyDock(true);// random dock docks.add (md); md.ship = mps; md.parent = index; mps.parent = md.index; numPass --; remainingDocks--; }// end adding passenger ships first while(numPass >0){ MyPassengerShip mps =newMyPassengerShip(true, numJobs);// random ship ships.add (mps); que.add (mps); mps.parent = index; numPass --; }// end remaining passenger ships while(remainingDocks >0&& numCargo >0){ MyCargoShip mpc =newMyCargoShip(true, numJobs);// random ship ships.add (mpc); MyDock md =newMyDock(true);// random dock docks.add (md); md.ship = mpc; md.parent = index; mpc.parent = md.index; numCargo --; remainingDocks--; }// end adding passenger ships first while(numCargo >0){ MyCargoShip mpc =newMyCargoShip(true, numJobs);// random
  • 134. ship ships.add (mpc); que.add (mpc); mpc.parent = index; numCargo --; }// end remaining passenger ships for(int i =0; i < rn.nextInt (numPersons)+5; i++){ persons.add (newMyPerson(this)); } }// end list of port names constructor - creates a random port void readPortsFile (){ try{ portNames =newArrayList<>(); Scanner sp =newScanner(newFile("portNames.txt")); while(sp.hasNext()) portNames.add (sp.next()); System.out.println ("Ports file size: "+ portNames.size()); } catch(java.io.FileNotFoundException e){System.out.println ("ba d file");} }// end method readPortsFile void toArray (List<MyThing> ma){ ma.add (this); for(MyDock md: docks ) md.toArray (ma); for(MyShip ms: ships ) ms.toArray (ma); for(MyPerson mp: persons) mp.toArray (ma); }// end toArray in MySeaPort publicString toFileString (){ returnString.format ("port %s %d %dn", name, index,0); }// end method toFileString }// end class MySeaPort
  • 135. classMyDockextendsMyThing{ staticint indexNew =20000; MyShip ship =null; publicMyDock(boolean f){ index = indexNew++; name ="Pier_"+ index%2000; }// end random ship constructor publicString toFileString (){ String st =""; st +=String.format (" dock %s %d %d %dn", name, index, parent, ship.index); return st; }// end method toFileString }// end class MyDock classMyShipextendsMyThing{ staticArrayList<String> words =null; double weight =0; double length =0; double width =0; double draft =0; MyTime arrivalTime =null; MyTime dockTime =null; ArrayList<MyJob> jobs =newArrayList<>(); publicMyShip(){}// end no-parameter constructor publicMyShip(boolean t,int n){ if(words ==null) readWordsFile (); name = words.get (rn.nextInt (words.size())); weight =50+ rn.nextDouble ()*200;
  • 136. length =100+ rn.nextDouble ()*400; width =30+ rn.nextDouble ()*100; draft =15+ rn.nextDouble ()*30; }// create a random ship void readWordsFile (){ try{ words =newArrayList<>(); Scanner sp =newScanner(newFile("shipNames.txt")); while(sp.hasNext()) words.add (sp.next()); System.out.println ("Words File size: "+ words.size()); } catch(java.io.FileNotFoundException e){System.out.println ("ba d file");} }// end readWordsFile void toArray (List<MyThing> mta){ mta.add (this); for(MyJob mj: jobs) mj.toArray (mta); }// end method toList publicString toFileString (){ String st =""; st +=String.format (" ship %20s %d %d %.2f %.2f %.2f % .2fn", name, index, parent, weight, length, width, draft); return st; }// end method toFileString }// end class MyShip classMyCargoShipextendsMyShip{ staticint indexNew =40000; double cargoWeight =0; double cargoVolume =0;
  • 137. double cargoValue =0; publicMyCargoShip(boolean f,int n){ super(f, n); index = indexNew++; cargoWeight =20+ rn.nextDouble()*200; cargoVolume =100+ rn.nextDouble()*100; cargoValue =10+ rn.nextDouble()*1000; for(int i =0; i < rn.nextInt (n); i++) jobs.add (newMyJob(this)); }// end random ship constructor publicString toFileString (){ String st =""; st +=String.format (" cship %20s %d %d %.2f %.2f %.2f %.2f %.2f %.2f %.2fn", name, index, parent, weight, length, width, draft, cargoWeight, cargoVolume, cargoValue); return st; }// end method toFileString }// end class MyCargoShip classMyPassengerShipextendsMyShip{ staticint indexNew =30000; int numberOfPassengers =0; int numberOfRooms =0; int numberOfOccupiedRooms =0; publicMyPassengerShip(boolean f,int n){ Project 1 CMSC 335 5
  • 138. Project 1 Student’s Name University of Maryland University College CMSC 335 Prof:Name Design Design is an important part of development. This project is a big project so it’s require lots of analysis. In analysis, We need to find out the design of project. In Design, Complete project can be divided into 10 classes. A SeaPortProgram class is a main class which will provide the GUI interface which will manipulate the data. A Complete GUI interface has include Read File and Display option in which user can read any file and display that data whenever it’s require. User Guide Open the project in the IDE of your choice. The home screen will show the GUI with appropriate buttons and a text field. The lower part of the GUI is where the results will be displayed.
  • 139. You will first need to choose the appropriate file. In this instance, we will chose the following text file: aSPad.txt . This will load the file into the program. Additionally, you may create your own txt file by using the format that is provided. You are now ready to interact with the GUI. You can choose the option to display the cave. Test Plan Test 1 (Open the file correctly) Expected output: the file will be loaded, and a message will appear in the scroll pane saying the file was loaded. Actual output: Here’s the screen shot when the file is chosen: Test 2 (Perform Read) Expected output: Data will shown. Actual output: Here’s the screen shot when the file is chosen: Comments
  • 140. In this, Project we need to focus that how can we make out code more usable like in this project are 4 phase. So, we need make our GUI expandable. Lessons Learned I have learned about following things: How to use Arraylist How to use File chooser What are the benefit to use class in java project. Improvements Possible There are lots for improvements we can made are following: GUI can be improved. Job class can be implement We can use Multi threading so the operation will be perform parallel. SeaPorts/.classpath SeaPorts/.project SeaPorts org.eclipse.jdt.core.javabuilder
  • 141. org.eclipse.jdt.core.javanature SeaPorts/.settings/org.eclipse.jdt.core.prefs eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enable d org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.8 SeaPorts/bin/edu/umuc/cmsc335/beans/CargoShip.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass CargoShip extends Ship {
  • 142. private double cargoValue; private double cargoVolume; private double cargoWeight; public void CargoShip(java.util.Scanner); public String toString(); } SeaPorts/bin/edu/umuc/cmsc335/beans/Dock.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass Dock extends Thing { protected Ship ship; public void Dock(java.util.Scanner); public String toString(); } SeaPorts/bin/edu/umuc/cmsc335/beans/Job.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass Job extends Thing { private double duration; protected java.util.ArrayList requirements; public void Job(java.util.Scanner); public String toString(); } SeaPorts/bin/edu/umuc/cmsc335/beans/PassengerShip.classpack age edu.umuc.cmsc335.beans; publicsynchronizedclass PassengerShip extends Ship { private int numberOfOccupiedRooms; private int numberOfPassengers; private int numberOfRooms; public void PassengerShip(java.util.Scanner); public String toString(); }
  • 143. SeaPorts/bin/edu/umuc/cmsc335/beans/Person.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass Person extends Thing { protected String skill; public void Person(java.util.Scanner); public String toString(); } SeaPorts/bin/edu/umuc/cmsc335/beans/PortTime.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass PortTime { private int time; public void PortTime(); public String toString(); } SeaPorts/bin/edu/umuc/cmsc335/beans/SeaPort.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass SeaPort extends Thing { protected java.util.ArrayList docks; protected java.util.ArrayList queue; protected java.util.ArrayList ships; protected java.util.ArrayList persons; public void SeaPort(java.util.Scanner); public String toString(); } SeaPorts/bin/edu/umuc/cmsc335/beans/Ship.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass Ship extends Thing { private PortTime arrivalTime;
  • 144. private PortTime dockTime; private double draft; private double length; private double weight; private double width; protected java.util.ArrayList jobs; public void Ship(java.util.Scanner); public String toString(); public double getDraft(); public double getLength(); public double getWeight(); public double getWidth(); } SeaPorts/bin/edu/umuc/cmsc335/beans/Thing.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass Thing implements Comparable { protected int index; protected String name; protected int parent; public void Thing(java.util.Scanner); public void Thing(String, int, int); public int compareTo(Thing); public String toString(); public String getName(); } SeaPorts/bin/edu/umuc/cmsc335/beans/World.classpackage edu.umuc.cmsc335.beans; publicsynchronizedclass World extends Thing { private java.util.ArrayList ports; private PortTime time; private java.util.HashMap hms; public void World(java.util.Scanner);
  • 145. public void World(String, int, int); public String toString(); public String searchByName(String); private String className(Thing); public String searchByIndex(String); public String searchBySkill(String); public void process(String); private Job getJobByIndex(int); private Person getPersonByIndex(int); private Ship getShipByIndex(int); private Dock getDockByIndex(int); public SeaPort getSeaPortByIndex(int); private void addJob(java.util.Scanner); private void addPerson(java.util.Scanner); private void addCargoShip(java.util.Scanner); private void addPassengerShip(java.util.Scanner); private void addDock(java.util.Scanner); private void addPort(java.util.Scanner); public void sortByName(); public void sortShipsByWeight(); public void sortShipsByLength(); public void sortShipsByWidth(); public void sortShipsByDraft(); } SeaPorts/bin/edu/umuc/cmsc335/comparator/ShipDraftComparat or.classpackage edu.umuc.cmsc335.comparator; publicsynchronizedclass ShipDraftComparator implements java.util.Comparator { public void ShipDraftComparator(); public int compare(edu.umuc.cmsc335.beans.Ship, edu.umuc.cmsc335.beans.Ship); }
  • 146. SeaPorts/bin/edu/umuc/cmsc335/comparator/ShipLengthCompar ator.classpackage edu.umuc.cmsc335.comparator; publicsynchronizedclass ShipLengthComparator implements java.util.Comparator { public void ShipLengthComparator(); public int compare(edu.umuc.cmsc335.beans.Ship, edu.umuc.cmsc335.beans.Ship); } SeaPorts/bin/edu/umuc/cmsc335/comparator/ShipWeightCompar ator.classpackage edu.umuc.cmsc335.comparator; publicsynchronizedclass ShipWeightComparator implements java.util.Comparator { public void ShipWeightComparator(); public int compare(edu.umuc.cmsc335.beans.Ship, edu.umuc.cmsc335.beans.Ship); } SeaPorts/bin/edu/umuc/cmsc335/comparator/ShipWidthCompara tor.classpackage edu.umuc.cmsc335.comparator; publicsynchronizedclass ShipWidthComparator implements java.util.Comparator { public void ShipWidthComparator(); public int compare(edu.umuc.cmsc335.beans.Ship, edu.umuc.cmsc335.beans.Ship); } SeaPorts/bin/edu/umuc/cmsc335/comparator/ThingNameCompar ator.classpackage edu.umuc.cmsc335.comparator; publicsynchronizedclass ThingNameComparator implements java.util.Comparator { public void ThingNameComparator(); public int compare(edu.umuc.cmsc335.beans.Thing,
  • 147. edu.umuc.cmsc335.beans.Thing); } SeaPorts/bin/edu/umuc/cmsc335/ui/SeaPortListener.classpackag e edu.umuc.cmsc335.ui; publicsynchronizedclass SeaPortListener implements java.awt.event.ActionListener { static SeaPortProgram seaPortProgram; static void <clinit>(); public void SeaPortListener(SeaPortProgram); public void actionPerformed(java.awt.event.ActionEvent); private void sortActionPerformed(java.awt.event.ActionEvent); private void openFileActionPerformed(java.awt.event.ActionEvent); private void searchActionPerformed(java.awt.event.ActionEvent); } SeaPorts/bin/edu/umuc/cmsc335/ui/SeaPortProgram.classpackag e edu.umuc.cmsc335.ui; publicsynchronizedclass SeaPortProgram extends javax.swing.JFrame { public edu.umuc.cmsc335.beans.World world; privatestaticfinal String TITLE = Sea Port Program; publicstaticfinal String OPEN_FILE = Open File; publicstaticfinal String SEARCH = Search; publicstaticfinal String SORT = Sort; publicstaticfinal String[] SORT_OPTION; javax.swing.JButton openFileButton; javax.swing.JButton searchButton; javax.swing.ButtonGroup group; javax.swing.JRadioButton rbName; javax.swing.JRadioButton rbIndex;
  • 148. javax.swing.JRadioButton rbSkill; javax.swing.JTextArea outPutArea; javax.swing.JScrollPane scrollPane; javax.swing.JPanel buttonsPanel; javax.swing.JPanel comboButtonPanel; javax.swing.JTextField searchField; javax.swing.JComboBox sortComboBox; static void <clinit>(); public void SeaPortProgram(); public javax.swing.JTextArea getOutPutArea(); private javax.swing.JScrollPane getScrollPane(javax.swing.JTextArea); private javax.swing.JTextField getSearchField(); private javax.swing.JPanel getComboButtonPanel(); private javax.swing.JPanel getButtonspanel(); private javax.swing.JButton getSearchButton(); private javax.swing.JButton getOpenFileButton(); public javax.swing.JComboBox getSortComboBox(); publicstatic void main(String[]); } SeaPorts/src/edu/umuc/cmsc335/beans/CargoShip.javaSeaPorts/ src/edu/umuc/cmsc335/beans/CargoShip.javapackage edu.umuc. cmsc335.beans; import java.util.Scanner; publicclassCargoShipextendsShip{ privatedouble cargoValue; privatedouble cargoVolume; privatedouble cargoWeight; publicCargoShip(Scanner sc){
  • 149. super(sc); if(sc.hasNextDouble()){ cargoWeight = sc.nextDouble(); } if(sc.hasNextDouble()){ cargoVolume = sc.nextDouble(); } if(sc.hasNextDouble()){ cargoValue = sc.nextDouble(); } } @Override publicString toString(){ return" Ship: Cargo Ship: "+super.toString(); } } SeaPorts/src/edu/umuc/cmsc335/beans/Dock.javaSeaPorts/src/ed u/umuc/cmsc335/beans/Dock.javapackage edu.umuc.cmsc335.be ans; import java.util.Scanner; publicclassDockextendsThing{ publicDock(Scanner sc){ super(sc); } protectedShip ship;
  • 150. @Override publicString toString(){ return" Dock: "+ name +" "+ index +"n"+ ship.toString(); } } SeaPorts/src/edu/umuc/cmsc335/beans/Job.javaSeaPorts/src/edu /umuc/cmsc335/beans/Job.javapackage edu.umuc.cmsc335.bean s; import java.util.ArrayList; import java.util.Scanner; publicclassJobextendsThing{ privatedouble duration; protectedArrayList<String> requirements;// should be some of t he skills of the persons publicJob(Scanner sc){ super(sc); if(sc.hasNextDouble()){ duration = sc.nextDouble(); } if(sc.hasNext()){ requirements =newArrayList<String>(); while(sc.hasNext()){ this.requirements.add(sc.next()); } } }
  • 151. @Override publicString toString(){ // If the requirements aren't there don't try to output them if(requirements ==null){ return name +" "+ index +" "; } // Return requirements as well. return name +" "+ index +" "+"Requirements: "+ requirements.t oString(); } } SeaPorts/src/edu/umuc/cmsc335/beans/PassengerShip.javaSeaPo rts/src/edu/umuc/cmsc335/beans/PassengerShip.javapackage edu .umuc.cmsc335.beans; import java.util.Scanner; publicclassPassengerShipextendsShip{ privateint numberOfOccupiedRooms; privateint numberOfPassengers; privateint numberOfRooms; publicPassengerShip(Scanner sc){ super(sc); if(sc.hasNextInt()){ numberOfPassengers = sc.nextInt(); } if(sc.hasNextInt()){ numberOfRooms = sc.nextInt(); }
  • 152. if(sc.hasNextInt()){ numberOfOccupiedRooms = sc.nextInt(); } } @Override publicString toString(){ String st =" Ship: Passenger ship: "+super.toString(); if(jobs.size()==0) return st; for(Job mj: jobs) st +="n - "+ mj; return st; } } SeaPorts/src/edu/umuc/cmsc335/beans/Person.javaSeaPorts/src/ edu/umuc/cmsc335/beans/Person.javapackage edu.umuc.cmsc33 5.beans; import java.util.Scanner; publicclassPersonextendsThing{ protectedString skill; publicPerson(Scanner sc){ super(sc); if(sc.hasNext()){ this.skill = sc.next(); } } @Override publicString toString(){ return"Person: "+super.toString()+" "+ skill;
  • 153. } } SeaPorts/src/edu/umuc/cmsc335/beans/PortTime.javaSeaPorts/sr c/edu/umuc/cmsc335/beans/PortTime.javapackage edu.umuc.cm sc335.beans; publicclassPortTime{ privateint time; @Override publicString toString(){ return"Port Time is: "+ time; } } SeaPorts/src/edu/umuc/cmsc335/beans/SeaPort.javaSeaPorts/src /edu/umuc/cmsc335/beans/SeaPort.javapackage edu.umuc.cmsc3 35.beans; import java.util.ArrayList; import java.util.Scanner; publicclassSeaPortextendsThing{ protectedArrayList<Dock> docks; protectedArrayList<Ship> queue;// the list of ships waiting to d ock protectedArrayList<Ship> ships;// a list of all the ships at this p ort protectedArrayList<Person> persons;// people with skills at this port
  • 154. publicSeaPort(Scanner sc){ super(sc); docks =newArrayList<Dock>(); queue =newArrayList<Ship>(); ships =newArrayList<Ship>(); persons =newArrayList<Person>(); } @Override publicString toString(){ String st ="nnSeaPort: "+super.toString(); for(Dock md: docks) st +="n"+ md; st +="nn --- List of all ships in queue:"; for(Ship ms: queue ) st +="n > "+ ms; st +="nn --- List of all ships:"; for(Ship ms: ships) st +="n > "+ ms; st +="nn --- List of all persons:"; for(Person mp: persons) st +="n > "+ mp; return st; } } SeaPorts/src/edu/umuc/cmsc335/beans/Ship.javaSeaPorts/src/ed u/umuc/cmsc335/beans/Ship.javapackage edu.umuc.cmsc335.be ans; import java.util.ArrayList; import java.util.Scanner; publicclassShipextendsThing{ privatePortTime arrivalTime; privatePortTime dockTime; privatedouble draft;
  • 155. privatedouble length; privatedouble weight; privatedouble width; protectedArrayList<Job> jobs; publicShip(Scanner sc){ super(sc); if(sc.hasNextDouble()){ weight = sc.nextDouble(); } if(sc.hasNextDouble()){ length = sc.nextDouble(); } if(sc.hasNextDouble()){ width = sc.nextDouble(); } if(sc.hasNextDouble()){ draft = sc.nextDouble(); } jobs =newArrayList<Job>(); } @Override publicString toString(){ return"t"+ name +" "+ index +"t"+"Weight: "+ weight +"t"+"l ength: "+ length +"t"+"width: "+ width +"t"+"draft: "+ draft; // TODO Print out all jobs? /* String st = "nnSeaPort: " + super.toString(); for (Dock md: docks) st += "n" + md; st += "nn --- List of all ships in queue:"; for (Ship ms: queue ) st += "n > " + ms; st += "nn --- List of all ships:"; for (Ship ms: ships) st += "n > " + ms;
  • 156. st += "nn --- List of all persons:"; for (Person mp: persons) st += "n > " + mp; return st; */ } publicdouble getDraft(){ return draft; } publicdouble getLength(){ return length; } publicdouble getWeight(){ return weight; } publicdouble getWidth(){ return width; } } SeaPorts/src/edu/umuc/cmsc335/beans/Thing.javaSeaPorts/src/e du/umuc/cmsc335/beans/Thing.javapackage edu.umuc.cmsc335. beans; import java.util.Scanner; publicclassThingimplementsComparable<Thing>{ protectedint index; protectedString name;
  • 157. protectedint parent; publicThing(Scanner sc){ if(sc.hasNext()){ this.name = sc.next(); } if(sc.hasNextInt()){ this.index = sc.nextInt(); } if(sc.hasNextInt()){ this.parent = sc.nextInt(); } } publicThing(String name,int index,int parent){ this.name = name; this.index = index; this.parent = parent; } @Override publicint compareTo(Thing arg0){ // TODO Auto-generated method stub return0; } /* public int compareTo(Thing t) { int lastCmp = name.compareTo(n.name); return (lastCmp != 0 ? lastCmp : firstName.compareTo(n.fi rstName)); }*/
  • 158. @Override publicString toString(){ return name +" "+ index; } publicString getName(){ return name; } } SeaPorts/src/edu/umuc/cmsc335/beans/World.javaSeaPorts/src/e du/umuc/cmsc335/beans/World.javapackage edu.umuc.cmsc335. beans; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Scanner; import edu.umuc.cmsc335.comparator.ShipDraftComparator; import edu.umuc.cmsc335.comparator.ShipLengthComparator; import edu.umuc.cmsc335.comparator.ShipWeightComparator; import edu.umuc.cmsc335.comparator.ShipWidthComparator; import edu.umuc.cmsc335.comparator.ThingNameComparator; publicclassWorldextendsThing{ privateArrayList<SeaPort> ports; privatePortTime time; privateHashMap<Integer,Thing> hms; publicWorld(Scanner sc){ super(sc);
  • 159. } publicWorld(String name,int index,int parent){ super(name, index, parent); ports =newArrayList<>(); time =newPortTime(); hms =newHashMap<Integer,Thing>(); hms.put(this.index,this); } @Override publicString toString(){ return ports.toString(); } publicString searchByName(String search){ String results =""; if(this.name.toLowerCase().equals(search)) results += className(this); for(SeaPort port : ports){ if(port.name.toLowerCase().equals(search)) results += className(port); for(Dock dock : port.docks){ if(dock.name.toLowerCase().equals(search)) results += className(dock); } for(Person person : port.persons){ if(person.name.toLowerCase().equals(search)) results += className(person); } for(Ship ship : port.ships){ if(ship.name.toLowerCase().equals(search)) results += className(ship); for(Job job : ship.jobs){ if(job.name.toLowerCase().equals(search))
  • 160. results += className(job); } } } if(results.isEmpty()) results ="No results found."; return results; } privateString className(Thing thing){ // Helper method for searchByName() return thing.getClass().getName().substring(thing.getClass().get Name().lastIndexOf('.')+1)+": "+ thing.name +"n"; } publicString searchByIndex(String search){ String results ="No results found."; Thing thing; try{ int sIndex =Integer.parseInt(search); thing = hms.get(sIndex); if(thing !=null){ results = className(thing); } }catch(NumberFormatException e){ results ="Search by index must be an integer"; } return results; } publicString searchBySkill(String search){ String results =""; for(SeaPort port : ports){
  • 161. for(Person person : port.persons){ if(person.skill.toLowerCase().equals(search)) results += className(person); } for(Ship ship : port.ships){ for(Job job : ship.jobs){ if(job.toString().toLowerCase().contains(search)) results += className(job); } } } if(results.isEmpty()) results ="No results found."; return results; } publicvoid process (String st){ System.out.println ("Processing >"+ st +"<"); Scanner sc =newScanner(st); if(!sc.hasNext()){ sc.close(); return; } switch(sc.next()){ case"port": addPort (sc); break; case"dock": addDock (sc); break; case"pship": addPassengerShip (sc); break; case"cship": addCargoShip (sc); break; case"person": addPerson(sc); break; case"job": addJob(sc);
  • 162. break; } } privateJob getJobByIndex(int parent){ for(SeaPort port : ports){ for(Ship ship : port.ships){ for(Job job : ship.jobs){ if(job.index == parent){ return job; } } } } returnnull; } privatePerson getPersonByIndex(int parent){ for(SeaPort port : ports){ for(Person person : port.persons){ if(person.index == parent){ return person; } } } returnnull; } privateShip getShipByIndex(int parent){ for(SeaPort port : ports){ for(Ship ship : port.ships){ if(ship.index == parent){ return ship; } }
  • 163. } returnnull; } privateDock getDockByIndex(int parent){ for(SeaPort port : ports){ for(Dock dock : port.docks){ if(dock.index == parent){ return dock; } } } returnnull; } publicSeaPort getSeaPortByIndex(int parent){ for(SeaPort port : ports){ if(port.index == parent){ return port; } } returnnull; } privatevoid addJob(Scanner sc){ Job job =newJob(sc); Dock dock = getDockByIndex(job.parent); if(dock !=null){ if(dock.ship !=null){ dock.ship.jobs.add(job); hms.put(job.index, job); } } } privatevoid addPerson(Scanner sc){
  • 164. Person person =newPerson(sc); SeaPort port = getSeaPortByIndex(person.parent); if(port !=null){ port.persons.add(person); hms.put(person.index, person); } } privatevoid addCargoShip(Scanner sc){ CargoShip cShip =newCargoShip(sc); Dock dock = getDockByIndex(cShip.parent); if(dock ==null){ getSeaPortByIndex(cShip.parent).ships.add(cShip); getSeaPortByIndex(cShip.parent).queue.add(cShip); return; } dock.ship = cShip; getSeaPortByIndex(dock.parent).ships.add(cShip); hms.put(cShip.index, cShip); } privatevoid addPassengerShip(Scanner sc){ PassengerShip pShip =newPassengerShip(sc); Dock dock = getDockByIndex(pShip.parent); if(dock ==null){ getSeaPortByIndex(pShip.parent).ships.add(pShip);
  翻译: