Last class. Gems have their own bundle of properties, so they get their own class.
String gem_name: Name of the gem.
Double val_constant: The value constant for the stone, the V in the(C^2 + C*4) * V value formula.
Double carats: Weight of the gem in carats.
This one is similar to the previous two, but it takes on itself the task of randomly selecting a node from Gems.xml to turn into an object.
package hoardomatic;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Random;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Gem {
private String gem_name;
private Double val_constant;
private Double carats;
public Gem() {
// TODO Auto-generated constructor stub
Node gemnode = getRandomNodeFromTable("Gems.xml");
NodeList tempNodes = gemnode.getChildNodes();
for (int j = 0; j < tempNodes.getLength(); j++) {
Node subnode = tempNodes.item(j);
if (subnode.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) subnode;
if (element.getNodeName().contentEquals("Gem")) {
gem_name = element.getTextContent();
}
if (element.getNodeName().contentEquals("V")) {
val_constant =Double.parseDouble(element.getTextContent());
}
}
}
double dr = (double) dieRoll(1,6) + dieRoll(1,6);
double the_carats = dr/4;
int get_big = dieRoll(1,12);
while (get_big == 12){
the_carats = the_carats + dieRoll(1,6);
get_big = dieRoll(1,12);
}
carats = the_carats;
}
public Node getRandomNodeFromTable(String fname) {
Node return_it;
return_it = null;
try {
InputStream items = new FileInputStream(new File(fname));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(items);
doc.getDocumentElement().normalize();
// System.out.println(doc.getDocumentElement().getNodeName());
NodeList nodes = doc.getElementsByTagName("item");
Integer itemlistlen = nodes.getLength();
Integer pickItm = dieRoll(0, itemlistlen - 1);
// System.out.println("==========================");
// System.out.println(pickItm);
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (i == pickItm) {
return_it = node;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return return_it;
}
public Gem(Node gemnode){
NodeList tempNodes = gemnode.getChildNodes();
for (int j = 0; j < tempNodes.getLength(); j++) {
Node subnode = tempNodes.item(j);
if (subnode.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) subnode;
if (element.getNodeName().contentEquals("Gem")) {
gem_name = element.getTextContent();
}
if (element.getNodeName().contentEquals("V")) {
val_constant =Double.parseDouble(element.getTextContent());
}
}
}
double the_carats = (dieRoll(1,6) + dieRoll(1,6))/4;
int get_big = dieRoll(1,12);
while (get_big == 12){
the_carats = the_carats + dieRoll(1,6);
get_big = dieRoll(1,12);
}
carats = the_carats;
}
public Double getGemCost(){
Double return_it = 0.0;
// (c^2 + 4 x c) ^ v
return_it = (carats * carats + 4 * carats) * val_constant;
return return_it;
}
public String getGemName(){
return gem_name;
}
public Double getGemWt(){
return carats;
}
private int dieRoll(Integer min, Integer max) {
Random r = new Random();
int inroll = r.nextInt(max - min + 1) + min;
return inroll;
}
}
Gem
String gem_name: Name of the gem.
Double val_constant: The value constant for the stone, the V in the(C^2 + C*4) * V value formula.
Double carats: Weight of the gem in carats.
This one is similar to the previous two, but it takes on itself the task of randomly selecting a node from Gems.xml to turn into an object.
package hoardomatic;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Random;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Gem {
private String gem_name;
private Double val_constant;
private Double carats;
public Gem() {
// TODO Auto-generated constructor stub
Node gemnode = getRandomNodeFromTable("Gems.xml");
NodeList tempNodes = gemnode.getChildNodes();
for (int j = 0; j < tempNodes.getLength(); j++) {
Node subnode = tempNodes.item(j);
if (subnode.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) subnode;
if (element.getNodeName().contentEquals("Gem")) {
gem_name = element.getTextContent();
}
if (element.getNodeName().contentEquals("V")) {
val_constant =Double.parseDouble(element.getTextContent());
}
}
}
double dr = (double) dieRoll(1,6) + dieRoll(1,6);
double the_carats = dr/4;
int get_big = dieRoll(1,12);
while (get_big == 12){
the_carats = the_carats + dieRoll(1,6);
get_big = dieRoll(1,12);
}
carats = the_carats;
}
public Node getRandomNodeFromTable(String fname) {
Node return_it;
return_it = null;
try {
InputStream items = new FileInputStream(new File(fname));
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(items);
doc.getDocumentElement().normalize();
// System.out.println(doc.getDocumentElement().getNodeName());
NodeList nodes = doc.getElementsByTagName("item");
Integer itemlistlen = nodes.getLength();
Integer pickItm = dieRoll(0, itemlistlen - 1);
// System.out.println("==========================");
// System.out.println(pickItm);
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (i == pickItm) {
return_it = node;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return return_it;
}
public Gem(Node gemnode){
NodeList tempNodes = gemnode.getChildNodes();
for (int j = 0; j < tempNodes.getLength(); j++) {
Node subnode = tempNodes.item(j);
if (subnode.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) subnode;
if (element.getNodeName().contentEquals("Gem")) {
gem_name = element.getTextContent();
}
if (element.getNodeName().contentEquals("V")) {
val_constant =Double.parseDouble(element.getTextContent());
}
}
}
double the_carats = (dieRoll(1,6) + dieRoll(1,6))/4;
int get_big = dieRoll(1,12);
while (get_big == 12){
the_carats = the_carats + dieRoll(1,6);
get_big = dieRoll(1,12);
}
carats = the_carats;
}
public Double getGemCost(){
Double return_it = 0.0;
// (c^2 + 4 x c) ^ v
return_it = (carats * carats + 4 * carats) * val_constant;
return return_it;
}
public String getGemName(){
return gem_name;
}
public Double getGemWt(){
return carats;
}
private int dieRoll(Integer min, Integer max) {
Random r = new Random();
int inroll = r.nextInt(max - min + 1) + min;
return inroll;
}
}
Comments