Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

***PLEASE HELP!!!*** PLEASE READ INSTRUCTIONS CAREFULLY ANF PLEASE THOROUGHLY CO

ID: 3844935 • Letter: #

Question

***PLEASE HELP!!!***

PLEASE READ INSTRUCTIONS CAREFULLY ANF PLEASE THOROUGHLY COMPLETE. Will reward full points!

PROGRAMMING LANGUAGE: JAVA

Thank you in advance.

Summary Now for something a little different In a hypothetical world, a new mobile game emerges where players "collect" digital characters called "Digit The players start out with a selection of Digitoids oids (specific to the region of world they began at) from which they choose one to be their first Digitoid However, players can also visit famous landmarks (e.g. Space Needle) to purchase a special code to get a randomly chosen Digitoid that are available only in that landmark (e.g. a "rock and roll" green martian) There are two modes for these Digitoids a "Virtual Reality" mode where the Digitoid will interact with other Digitoid in a "persistent" virtual world in the "Cloud" and an "Augmented Reality" world where the Digitoid can "interact" with the real world such as finding discounts, giving you information about sights, provide directions, etc. For this homework assignment, create a simplified version of a Digitoid and the corresponding Driver class Skills Expected All the skills from previous Assignment(s) Overrides: tostring, equals Runtime Exception Enums Assignment Description You will create two Class objects (and subsequently submit two java files) Digitoid Driver Notes: ONLY the Driver Class should have static methods. The Device Class should NOT have static methods or static instance variables (constants ok).

Explanation / Answer

Hi,

Please see the classes and output. Please comment for any queries/feedbacks.

Thanks,

Digitoid.java


public class Digitoid {
   private String name;
   private String type;
   private double experience;

   //Constructor
   public Digitoid(String name) throws Exception{
       super();
       if(null!= name && !"".equalsIgnoreCase(name) ){
           this.name = name;
           this.type = "default";
       }
       else{
           throw new Exception("Invalid name!");
       }

   }

   //Overloaded Constructor
   public Digitoid(String name, String type) throws Exception{
       super();
       if(null!= type && !"".equalsIgnoreCase(type)){
           if(null!= name && !"".equalsIgnoreCase(name)){
               this.name = name;
               this.type = type;
           }
           else{
               throw new Exception("Invalid type!");
           }
       }
       else{
           throw new Exception("Invalid name!");
       }

   }
  
   public void interact(Digitoid digitoid){
       if(this.equals(digitoid)){
           // Attempt to interact with itself (should NOT be allowed)
           System.out.println("Cannot interact with same digitoid");
           return;
       }
       if(this.getExperience()<digitoid.getExperience()){
           //If the other Digitoid is More experienced, increase experience by 3
           this.setExperience(this.getExperience()+3);
       }
       else if(this.getExperience() == digitoid.getExperience()){
           //If the other Digitoid is Equally experienced, increase experience by 2
           this.setExperience(this.getExperience()+2);
       }
       else if(this.getExperience() > digitoid.getExperience()){
           //If the other Digitoid is Less experienced, increase experience by 1
           this.setExperience(this.getExperience()+1);
       }
      
      
       if(this.getType().equalsIgnoreCase(digitoid.getType())){
           //If the other Digitoid is Of the same type, multiple experience gained by 2
           this.setExperience(this.getExperience()*2);
       }
       else{
           //If the other Digitoid is Of another type, multiple experience gained by 3
           this.setExperience(this.getExperience()*3);
       }
      
       if(this.equals(digitoid)){
           //The “same” Digitoid (e.g. equals() returns true),
           //halve all experience gained through this interaction
           //(multiply experience again by 0.5)
           this.setExperience(this.getExperience() * .5);
       }
   }
   //Getters and setters
   public String getName() {
       return name;
   }
   public void setName(String name) {
       this.name = name;
   }
   public String getType() {
       return type;
   }
   public void setType(String type) {
       this.type = type;
   }
   public double getExperience() {
       return experience;
   }
   public void setExperience(double experience) {
       this.experience = experience;
   }

   /**
   * toString
   */
   public String toString(){
       String retString = "Name : "+this.getName()+" Type : "+this.getType()+" Exp : "+this.getExperience();
       return retString;
   }
  
   /**
   * equals
   */
   public boolean equals(Digitoid digitoid){
       //This will return true if the two digitoids have same name and type
       if(this.getName().equalsIgnoreCase(digitoid.getName())
               && this.getType().equalsIgnoreCase(digitoid.getType())){
           return true;
       }
       else{
           return false;
       }
   }

}

Driver.java


public class Driver {

   public static void main(String [] args) throws Exception{
      
       /**** "Positive" testing (checking for "valid" conditions) ****/
       // Create a Digitoid with only name
       System.out.println("Creating digitoid1");
       Digitoid digitoid1 = new Digitoid("Dig1");
      
       // Create a Digitoid with both name and type
       System.out.println("Creating digitoid2 with type humanoid");
       Digitoid digitoid2 = new Digitoid("Dig2","humanoid");
      
       // Compare two Digitoids where the equals() method returns true
       Digitoid digitoid3 = new Digitoid("Dig3","robotic");
       Digitoid digitoid4 = new Digitoid("Dig3","robotic");
       System.out.println("digitoid3 equals digitoid4 ? :" +digitoid3.equals(digitoid4));
      
       // Compare two Digitoids where the equals() method returns false
       Digitoid digitoid5 = new Digitoid("Dig5","flying");
       Digitoid digitoid6 = new Digitoid("Dig6","flying");
       System.out.println("digitoid5 equals digitoid6 ? :" +digitoid5.equals(digitoid6));
      
       // Print the toString() of a Digitoid
       Digitoid digitoid7 = new Digitoid("Dig7","insectoid");
       System.out.println(digitoid7);
      
       /**** “Negative” testing (checking for “invalid” conditions) ****/
       // Attempt to create a Digitoid with “invalid” name (e.g. empty string)
       System.out.println("Creating digitoid8 with invalid name");
   //   Digitoid digitoid8 = new Digitoid(""); // uncomment this line for Invalid name test
       // Attempt to interact with itself (should NOT be allowed)
       digitoid7.interact(digitoid7);

       /**** Interaction Testing ****/
      
       //Same type, higher experience
       Digitoid digitoid9 = new Digitoid("digitoid9","alien");
       Digitoid digitoid10 = new Digitoid("digitoid10","alien");
       digitoid9.setExperience(3);
       digitoid10.setExperience(5);
       digitoid10.interact(digitoid9);
       System.out.println("digitoid10 : " +digitoid10);
      
       // Same type, same experience
       Digitoid digitoid11 = new Digitoid("digitoid11","alien");
       Digitoid digitoid12 = new Digitoid("digitoid12","alien");
       digitoid11.setExperience(3);
       digitoid12.setExperience(3);
       digitoid11.interact(digitoid12);
       System.out.println("digitoid11 : " +digitoid11);
      
       // Same type, lower experience
       Digitoid digitoid13 = new Digitoid("digitoid13","alien");
       Digitoid digitoid14 = new Digitoid("digitoid14","alien");
       digitoid13.setExperience(3);
       digitoid14.setExperience(1);
       digitoid13.interact(digitoid14);
       System.out.println("digitoid11 : " +digitoid13);
      
      
       // Different type, higher experience
       Digitoid digitoid15 = new Digitoid("digitoid15","insectoid");
       Digitoid digitoid16 = new Digitoid("digitoid16","alien");
       digitoid15.setExperience(3);
       digitoid16.setExperience(1);
       digitoid15.interact(digitoid16);
       System.out.println("digitoid15 : " +digitoid15);
      
       //Different type, same experience
       Digitoid digitoid17 = new Digitoid("digitoid17","insectoid");
       Digitoid digitoid18 = new Digitoid("digitoid18","alien");
       digitoid17.setExperience(3);
       digitoid18.setExperience(3);
       digitoid17.interact(digitoid18);
       System.out.println("digitoid17 : " +digitoid17);
      
       //Different type, lower experience
       Digitoid digitoid19 = new Digitoid("digitoid19","insectoid");
       Digitoid digitoid20 = new Digitoid("digitoid20","alien");
       digitoid19.setExperience(3);
       digitoid20.setExperience(8);
       digitoid19.interact(digitoid20);
       System.out.println("digitoid19 : " +digitoid19);
      
       //Where equals() is false
       Digitoid digitoid21 = new Digitoid("digitoid21","insectoid");
       Digitoid digitoid22 = new Digitoid("digitoid22","insectoid");
       digitoid21.setExperience(3);
       digitoid22.setExperience(8);
       digitoid21.interact(digitoid22);
       System.out.println("digitoid21 : " +digitoid21);
      
       // Where equals() is true
       Digitoid digitoid23 = new Digitoid("digitoid23","insectoid");
       Digitoid digitoid24 = new Digitoid("digitoid23","insectoid");
       digitoid23.setExperience(3);
       digitoid22.setExperience(8);
       digitoid23.interact(digitoid24);
       System.out.println("digitoid23 : " +digitoid23);

         
   }
}

Sample output:

Creating digitoid1
Creating digitoid2 with type humanoid
digitoid3 equals digitoid4 ? :true
digitoid5 equals digitoid6 ? :false
Name : Dig7 Type : insectoid Exp : 0.0
Creating digitoid8 with invalid name
Cannot interact with same digitoid
digitoid10 : Name : digitoid10 Type : alien Exp : 12.0
digitoid11 : Name : digitoid11 Type : alien Exp : 10.0
digitoid11 : Name : digitoid13 Type : alien Exp : 8.0
digitoid15 : Name : digitoid15 Type : insectoid Exp : 12.0
digitoid17 : Name : digitoid17 Type : insectoid Exp : 15.0
digitoid19 : Name : digitoid19 Type : insectoid Exp : 18.0
digitoid21 : Name : digitoid21 Type : insectoid Exp : 12.0
Cannot interact with same digitoid
digitoid23 : Name : digitoid23 Type : insectoid Exp : 3.0