diff --git a/src/App.java b/src/App.java new file mode 100644 index 0000000..964c41c --- /dev/null +++ b/src/App.java @@ -0,0 +1,27 @@ +package org.example; + + +public class App { + + + public static void main(String[] args) throws Exception { + + Game game = new Game(); + + game.buildCity(); + + game.startGame(); + +// +// DataBase dataBase=new DataBase(); +// +// dataBase.selectAll(city); +// +// Menu.showMenu(); +// +// Avatar avatar1 = new Avatar("amir","1234","reza","Male",100,100,100,"Factory",1,100,0,0); +// +// DataBase.saveAvatars(city,avatar1); + + } +} \ No newline at end of file diff --git a/src/Avatar.java b/src/Avatar.java new file mode 100644 index 0000000..8b66818 --- /dev/null +++ b/src/Avatar.java @@ -0,0 +1,901 @@ +package org.example; + +import java.util.ArrayList; +import java.util.Objects; +import java.util.Scanner; + +public class Avatar extends Job{ + + protected String username; + protected String password; + + protected String title; + protected Gender gender; + protected float money; + protected float Food; + protected float Water; + + protected float coordinate; + protected float health; + protected int sleep; + protected float drunk; + public ArrayList properties=new ArrayList<>(); + public static ArrayList employees=new ArrayList<>(); + + Avatar( String username, String password, String title, String gender, float money, float health, int sleep, String job,float coordinate,float Food,float income,int industryid,float Water){ + super(job,income,industryid); + this.username=username; + this.password=password; + this.title=title; + this.gender= Gender.valueOf(gender); + this.money=money; + this.health=health; + this.sleep=sleep; + this.coordinate=coordinate; + this.Food=Food; + this.Water=Water; + ArrayList properties = new ArrayList<>(); + } + + Avatar(String job,float income,int industryid) { + super(job,income,industryid); + } + + + public static void showProperty(Avatar avatar){ + + for (Property p:avatar.getProperties()){ + System.out.println(p); + } + } + + public static void GoTo(String username){ + Avatar avatar = null; + for (Avatar i : Game.city.getAvatars()) { + if (Objects.equals(i.getUsername(), username)) { + avatar = i; + } + } + boolean check=true; + while (check) { + Bank bank = new Bank(); + Boutique boutique=new Boutique(); + Clinic clinic=new Clinic(); + Factory factory=new Factory(); + Home home=new Home(); + Land land=new Land(); + Restaurant restaurant=new Restaurant(); + Supermarket supermarket=new Supermarket(); + System.out.println("Which one do you want to do?"); + System.out.println("1. Bank"); + System.out.println("2. Boutique"); + System.out.println("3. Clinic"); + System.out.println("4. Factory"); + System.out.println("5. Home"); + System.out.println("6. Land"); + System.out.println("7. Restaurant"); + System.out.println("8. Supermarket"); + System.out.println("9. Back to User Menu"); + Scanner scanner = new Scanner(System.in); + int n = scanner.nextInt(); + switch (n) { + case 1: + bank.UseProperty(username); + check=false; + break; + case 2: + boutique.UseProperty(username); + check=false; + break; + case 3: + clinic.UseProperty(username); + check=false; + break; + case 4: + factory.UseProperty(username); + check=false; + break; + case 5: + home.UseProperty(username); + check=false; + break; + case 6: + land.UseProperty(username); + check=false; + break; + case 7: + restaurant.UseProperty(username); + check=false; + break; + case 8: + supermarket.UseProperty(username); + check=false; + break; + case 9 : + Menu.showUserMenu(); + check=false; + break; + default: + System.out.println("try again"); + + + } + } + } + + + public static void Life(String username){ + Avatar avatar = null; + for (Avatar i : Game.city.getAvatars()) { + if (Objects.equals(i.getUsername(), username)) { + avatar = i; + break; + } + } + boolean check=true; + + while (check){ + System.out.println("==== Life Menu ===="); + System.out.println("1. Life Detail:"); + System.out.println("2. Eat something:"); + System.out.println("3. Sleep:"); + System.out.println("4. Back to Game Menu:"); + Scanner scanner=new Scanner(System.in); + int choice=scanner.nextInt(); + switch (choice) { + + case 1: + assert avatar != null; + System.out.println("Sleep Size:"); + System.out.println(avatar.getSleep()); + System.out.println("Food Size:"); + System.out.println(avatar.getFood()); + System.out.println("Water Size:"); + System.out.println(avatar.getWater()); + System.out.println("Money Size:"); + System.out.println(avatar.getMoney()); + case 2: + Supermarket supermarket=new Supermarket(); + Restaurant restaurant=new Restaurant(); + boolean check1=true; + while (check1){ + System.out.println("1. Restaurant"); + System.out.println("2. Supermarket"); + Scanner scanner1=new Scanner(System.in); + int x= scanner.nextInt(); + switch (x){ + + case 1: + restaurant.UseProperty(username); + case 2: + supermarket.UseProperty(username); + default: + System.out.println("try again"); + + } + } + + case 3: + Home home=new Home(); + home.UseProperty(username); + default: + System.out.println("Try again"); + } + } + } + public static void AddtoProperty(String username){ + Avatar avatar = null; + for (Avatar i : Game.city.getAvatars()) { + if (Objects.equals(i.getUsername(), username)) { + avatar = i; + break; + } + } + assert avatar != null; + for (Property i :Game.city.getProperties()){ + if (Objects.equals(i.getOwnerusername(), username)){ + avatar.properties.add(i); + } + } + } + public static void Findjob(City city,Avatar avatar){ + Scanner scanner=new Scanner(System.in); + int choice=scanner.nextInt(); + boolean check=true; + + while (check){ + System.out.println("==== Job Menu ===="); + System.out.println("1. Bank"); + System.out.println("2. Boutique"); + System.out.println("3. Clinic"); + System.out.println("4. Factory"); + System.out.println("5. Restaurant"); + System.out.println("6. Supermarket"); + System.out.println("7. Back to Game Menu:"); + System.out.println("8. Exit"); + System.out.println(" Enter your choice: "); + + switch (choice){ + case 1: + + city.getBanks().get(1).setBankstaffs(avatar); + avatar.setJob("Bank"); + System.out.println("You successfully hired in Bank of city"); + // output + check=false; + break; + case 2: + + city.getBoutiques().get(1).setBoutiquestaffs(avatar); + avatar.setJob("Boutique"); + System.out.println("You successfully hired in Boutique of city"); + // output + check=false; + break; + case 3: + int choice1=scanner.nextInt(); + boolean check1=true; + while (check1){ + + System.out.println("1. as Doctor"); + System.out.println("2. as Nurse"); + System.out.println("3. Back to Main Menu"); + System.out.println("4. Exit"); + switch (choice1){ + case 1: + + city.getClinics().get(1).setDoctors(avatar); + avatar.setJob("Clinic"); + System.out.println("You successfully hired in as doctor of city"); + //output + check1=false; + break; + case 2: + + city.getClinics().get(1).setNurses(avatar); + avatar.setJob("Clinic"); + System.out.println("You successfully hired in nurse of city"); + //output + check1=false; + break; + case 3: + + Menu.showUserMenu(); + check1=false; + break; + case 4: + System.exit(0); + break; + default: + System.out.println("Invalid choice, please try again."); + } + + } + + case 4: + + city.getFactories().get(1).setFactorystaffs(avatar); + avatar.setJob("Factory"); + System.out.println("You successfully hired in Factory of city"); + // output + check=false; + break; + case 5: + + city.getRestaurants().get(1).setRestaurantstaffs(avatar); + avatar.setJob("Restaurant"); + System.out.println("You successfully hired in Restaurant of city"); + // output + check=false; + break; + case 6: + + city.getSupermarkets().get(1).setSupermarketstaffs(avatar); + avatar.setJob("Supermarket"); + System.out.println("You successfully hired in Supermarket of city"); + // output + check=false; + break; + case 7: + Menu.showUserMenu(); + check=false; + case 8: + System.exit(0); + break; + + default: + System.out.println("Invalid choice, please try again."); + } + } + + } + public static void ShowIncomeandJobDetail(String username){ + + System.out.println(" 1. Show Income:"); + System.out.println(" 2. Show Job Detail:"); + System.out.println(" 3. Back to User Menu"); + Scanner scanner=new Scanner(System.in); + int no= scanner.nextInt(); + + if (no==1) { + Avatar avatar = null; + for (Avatar i : Game.city.getAvatars()) { + if (Objects.equals(i.getUsername(), username)) { + avatar = i; + break; + } + } + + assert avatar != null; + System.out.println("Income and Salary:"); + System.out.println(avatar.getIncome()); + System.out.println("Profit from start of the Game:"); + System.out.println(avatar.getMoney() - 10); + + } else if (no==2) { + + Avatar avatar = null; + for (Avatar i : Game.city.getAvatars()) { + if (Objects.equals(i.getUsername(), username)) { + avatar = i; + break; + } + } + + assert avatar != null; + System.out.println("The name of work place:"); + System.out.println(avatar.getJob()); + System.out.println("Income:"+avatar.getIncome()); + System.out.println("IndustryID:"+avatar.getIndustryid()); + + for (Property i:Game.city.getProperties()){ + if (i.getId()== avatar.getIndustryid()){ + System.out.println(i); + } + } + } + } + + public static void buy(String username){ + + + Avatar avatar = null; + for (Avatar i:Game.city.getAvatars()){ + if (Objects.equals(i.getUsername(), username)){ + avatar=i; + break; + } + } + + + assert avatar != null; + System.out.println("Which one do you want to buy?"); + System.out.println(" 1. Bank"); + System.out.println(" 2. Boutique"); + System.out.println(" 3. Clinic"); + System.out.println(" 4. Factory"); + System.out.println(" 5. Restaurant"); + System.out.println(" 6. Supermarket"); + System.out.println(" 7. Back to User Menu"); + + Scanner scanner=new Scanner(System.in); + int no= scanner.nextInt(); + boolean check4=true; + while (check4) { + + switch (no) { + + case 1: + + Game.city.getBanks().get(1).setOwnerID(avatar.getUsername()); + Game.city.getBanks().get(1).setStatus(false); + avatar.getProperties().add(Game.city.getBanks().get(1)); + avatar.setMoney(avatar.money-=Game.city.getBanks().get(1).getValue()); + DataBase.updateInfo("bank","ownerID",1,avatar.getUsername()); + DataBase.updateInfo("bank","status",1,false); + System.out.println("You buy this successfully"); + + check4=false; + break; + + case 2: + + Game.city.getBoutiques().get(1).setOwnerID(avatar.getUsername()); + Game.city.getBoutiques().get(1).setStatus(false); + avatar.getProperties().add(Game.city.getBoutiques().get(1)); + avatar.setMoney(avatar.money-=Game.city.getBoutiques().get(1).getValue()); + DataBase.updateInfo("boutique","ownerID",1,avatar.getUsername()); + DataBase.updateInfo("boutique","status",1,false); + System.out.println("You buy this successfully"); + check4=false; + break; + + case 3: + Game.city.getClinics().get(1).setOwnerID(avatar.getUsername()); + Game.city.getClinics().get(1).setStatus(false); + avatar.getProperties().add(Game.city.getClinics().get(1)); + avatar.setMoney(avatar.money-=Game.city.getClinics().get(1).getValue()); + DataBase.updateInfo("clinic","ownerID",1,avatar.getUsername()); + DataBase.updateInfo("clinic","status",1,false); + System.out.println("You buy this successfully"); + check4=false; + break; + + case 4: + + Game.city.getFactories().get(1).setOwnerID(avatar.getUsername()); + Game.city.getFactories().get(1).setStatus(false); + avatar.getProperties().add(Game.city.getFactories().get(1)); + avatar.setMoney(avatar.money-=Game.city.getFactories().get(1).getValue()); + DataBase.updateInfo("factory","ownerID",1,avatar.getUsername()); + DataBase.updateInfo("factory","status",1,false); + System.out.println("You buy this successfully"); + check4=false; + break; + + case 5: + + Game.city.getRestaurants().get(1).setOwnerID(avatar.getUsername()); + Game.city.getRestaurants().get(1).setStatus(false); + avatar.getProperties().add(Game.city.getRestaurants().get(1)); + avatar.setMoney(avatar.money-=Game.city.getRestaurants().get(1).getValue()); + DataBase.updateInfo("restaurant","ownerID",1,avatar.getUsername()); + DataBase.updateInfo("restaurant","status",1,false); + System.out.println("You buy this successfully"); + check4=false; + break; + + case 6: + + Game.city.getSupermarkets().get(1).setOwnerID(avatar.getUsername()); + Game.city.getSupermarkets().get(1).setStatus(false); + avatar.getProperties().add(Game.city.getSupermarkets().get(1)); + avatar.setMoney(avatar.money-=Game.city.getSupermarkets().get(1).getValue()); + DataBase.updateInfo("supermarket","ownerID",1,avatar.getUsername()); + DataBase.updateInfo("supermarket","status",1,false); + System.out.println("You buy this successfully"); + check4=false; + break; + + case 7: + + Menu.showUserMenu(); + check4 = false; + break; + + default: + + System.out.println("try again"); + + } + } + + } + public static void sell(String username){ + + Avatar avatar = null; + for (Avatar i:Game.city.getAvatars()){ + if (Objects.equals(i.getUsername(), username)){ + avatar=i; + break; + } + } + + + assert avatar != null; + +// Bank bank=null; +// Boutique boutique=null; +// Clinic clinic=null; +// Factory factory=null; +// Home home=null; +// Land land=null; +// Restaurant restaurant=null; +// Supermarket supermarket=null; +// if (no==1){ +// bank = Game.city.getBanks().get(1); +// } else if (no==2) { +// boutique = Game.city.getBoutiques().get(1); +// } else if (no==3) { +// clinic=Game.city.getClinics().get(1); +// } +// Object o=Property.FindProperty(no); + Avatar.ShowProperty(username); + System.out.println("Enter Property's id:"); + Scanner scanner=new Scanner(System.in); + int no= scanner.nextInt(); + for (Property j: avatar.getProperties()){ + if (j.getId()==no){ + avatar.getProperties().remove(j); +// j.setStatus(true); +// j.setOwnerID(null); +// avatar.setMoney(avatar.money+=j.getValue()); + DataBase.updateInfo("avatars","money",username,avatar.money+=j.getValue()); + System.out.println("Enter Property's description:"); + Scanner scanner10=new Scanner(System.in); + String d=scanner10.nextLine(); + + DataBase.updateInfo( d ,"status",no,true); + DataBase.updateInfo( d ,"ownerID",no,"null"); + System.out.println("You successfully sell this property"); + break; + } + } + } + public static void Management(String username){ + + Avatar avatar=null; + for (Avatar i:Game.city.getAvatars()){ + if (Objects.equals(i.getUsername(), username)){ + avatar=i; + break; + } + } + assert avatar != null; + for (Property i:avatar.getProperties()){ + System.out.println(i); + } + + boolean check7=true; + while (check7){ + System.out.println("What you want to do?"); + System.out.println("1. Change income:"); + System.out.println("2. Change Employee:"); + System.out.println("3. Back to User Menu:"); + Scanner s2=new Scanner(System.in); + int num=s2.nextInt(); + if (num==1){ + + Avatar.ShowProperty(username); + + Avatar avatar1=null; + for (Avatar i:Game.city.getAvatars()){ + if (Objects.equals(i.getUsername(), username)){ + avatar1=i; + break; + } + } + + Scanner s1=new Scanner(System.in); + System.out.println("Which property do you want?(fist|second|third|..."); + int no=s1.nextInt(); + assert avatar1 != null; + + Property property=null; + for (Property i: avatar1.getProperties()){ + if (Objects.equals(i.getId(), avatar1.getProperties().get(no).getId())){ + property=i; + break; + } + } + + Bank bank = null; + Boutique boutique = null; + Clinic clinic = null; + Factory factory = null; + Home home = null; + Land land = null; + Restaurant restaurant = null; + Supermarket supermarket = null; + assert property != null; + + /////////////////////////////////////// + for (Bank b : Game.city.getBanks()) { + + if (b.getId() == property.getId()) { + bank=b; + } + } + if (bank!=null){ + System.out.println("Enter NewSalary:"); + Scanner input=new Scanner(System.in); + float newsalary= input.nextFloat(); + bank.setSalary(newsalary); + DataBase.updateInfo("bank","salary", bank.getId(), newsalary); + System.out.println("Salary updated successfully!!!"); + } + ////////////////////////////////////////// + for (Boutique b : Game.city.getBoutiques()) { + if (b.getId() == property.getId()) { + boutique=b; + } + } + if (boutique!=null){ + System.out.println("Enter NewSalary:"); + Scanner input=new Scanner(System.in); + float newsalary= input.nextFloat(); + boutique.setSalary(newsalary); + DataBase.updateInfo("boutique","salary", boutique.getId(), newsalary); + System.out.println("Salary updated successfully!!!"); + } + ////////////////////////////////////////////////// + for (Restaurant r : Game.city.getRestaurants()) { + if (r.getId() == property.getId()) { + restaurant=r; + } + } + if (restaurant!=null){ + System.out.println("Enter NewSalary:"); + Scanner input=new Scanner(System.in); + float newsalary= input.nextFloat(); + restaurant.setSalary(newsalary); + DataBase.updateInfo("restaurant","salary", restaurant.getId(), newsalary); + System.out.println("Salary updated successfully!!!"); + } + ///////////////////////////////////////////////////////// + for (Supermarket s : Game.city.getSupermarkets()) { + if (s.getId() == property.getId()) { + supermarket=s; + } + } + if (supermarket!=null){ + System.out.println("Enter NewSalary:"); + Scanner input=new Scanner(System.in); + float newsalary= input.nextFloat(); + supermarket.setSalary(newsalary); + DataBase.updateInfo("supermarket","salary", supermarket.getId(), newsalary); + System.out.println("Salary updated successfully!!!"); + } + ///////////////////////////////////////////////////// + + for (Clinic c : Game.city.getClinics()) { + if (c.getId() == property.getId()) { + clinic=c; + } + } + if (clinic!=null){ + System.out.println("Enter NewSalary:"); + Scanner input=new Scanner(System.in); + float newsalary= input.nextFloat(); + clinic.setSalary(newsalary); + DataBase.updateInfo("clinic","salary", clinic.getId(), newsalary); + System.out.println("Salary updated successfully!!!"); + } + //////////////////////////////////////////////////// + for (Factory f : Game.city.getFactories()) { + if (f.getId() == property.getId()) { + factory=f; + } + } + if (factory!=null){ + System.out.println("Enter NewSalary:"); + + Scanner input=new Scanner(System.in); + float newsalary= input.nextFloat(); + factory.setSalary(newsalary); + DataBase.updateInfo("bank","salary", factory.getId(), newsalary); + System.out.println("Salary updated successfully!!!"); + } + /////////////////////////////////////////////////////// + + check7=false; + } else if (num==2) { + + + Avatar.ShowProperty(username); + + Avatar avatar2=null; + for (Avatar i:Game.city.getAvatars()){ + if (Objects.equals(i.getUsername(), username)){ + avatar2=i; + break; + } + } + + Scanner s1=new Scanner(System.in); + System.out.println("Which property do you want?(fist|second|third|..."); + int no=s1.nextInt(); + assert avatar2 != null; + + Property property=null; + for (Property i: avatar2.getProperties()){ + if (Objects.equals(i.getId(), avatar2.getProperties().get(no).getId())){ + property=i; + break; + } + } +// System.out.println(Avatar.employees); +// System.out.println(Avatar.getEmployees().size()); + + assert property != null; + for (Avatar a:Game.city.getAvatars()){ + if (a.getIndustryid()==property.getId()){ + System.out.println(a); + } + } + + + System.out.println("Which Employee do you want to remove?(fist|second|third|...)"); + System.out.println("Enter employee's Username:"); + Scanner s3=new Scanner(System.in); + String no1=s3.nextLine(); + + Avatar avatar0=null; + for (Avatar i:Game.city.getAvatars()){ + if (Objects.equals(i.getUsername(), no1)){ + avatar0=i; + break; + } + } + + + assert avatar0 != null; + avatar0.setIncome(0); + avatar0.setIndustryid(0); + avatar0.setJob(null); + DataBase.updateInfo("avatars","income",no1,0); + DataBase.updateInfo("avatars","industryid",no1,0); + DataBase.updateInfo("avatars","job",no1,null); + System.out.println("This Employee removed successfully!!!"); + Menu.showUserMenu(); + check7=false; + + } + else if (num==3){ + + + Menu.showUserMenu(); + + check7=false; + + } + else { + System.out.println("Wrong choice!!! try again:"); + } + } + + } + + public static void ShowProperty(String username){ + Avatar avatar=null; + for (Avatar i:Game.city.getAvatars()){ + if (Objects.equals(i.getUsername(), username)){ + avatar=i; + break; + } + } + assert avatar != null; + Avatar.showProperty(avatar); + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public float getIncome() { + return income; + } + + public void setIncome(float income) { + this.income = income; + } + + public int getIndustryid() { + return industryid; + } + + public void setIndustryid(int industryid) { + this.industryid = industryid; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + + public static ArrayList getEmployees() { + return employees; + } + + public static void setEmployees(ArrayList employees) { + Avatar.employees = employees; + } + + public String getGender() { + + String gender1=gender.toString(); + + return gender1; + } + + public void setGender(Gender gender) { + this.gender = gender; + } + + public float getMoney() { + return money; + } + + public void setMoney(float money) { + this.money = money; + } + + public float getHealth() { + return health; + } + + public void setHealth(float health) { + this.health = health; + } + + public int getSleep() { + return sleep; + } + + public void setSleep(int sleep) { + this.sleep = sleep; + } + + public String getJob() { + return job; + } + + public void setJob(String job) { + this.job = job; + } + + public ArrayList getProperties() { + return properties; + } + + public void setProperties(ArrayList properties) { + this.properties = properties; + } + + public float getCoordinate() { + return coordinate; + } + + public void setCoordinate(float coordinate) { + this.coordinate = coordinate; + } + + public float getWater() { + return Water; + } + + public void setWater(float water) { + Water = water; + } + + public float getFood() { + return Food; + } + + public void setFood(float foodandWater) { + Food = foodandWater; + } + + + @Override + public String toString() { + return "Avatar{" + + "username='" + username + '\'' + + ", password='" + password + '\'' + + ", title='" + title + '\'' + + ", gender=" + gender + + ", money=" + money + + ", coordinate=" + coordinate + + ", health=" + health + + ", sleep=" + sleep + + ", job='" + job + '\'' + + ", properties=" + properties + + '}'; + } +} diff --git a/src/City.java b/src/City.java new file mode 100644 index 0000000..e3f9c7d --- /dev/null +++ b/src/City.java @@ -0,0 +1,115 @@ +package org.example; + +import java.util.ArrayList; + +public class City { + + protected static double output; + protected static Avatar mayor; + protected ArrayList avatars = new ArrayList<>(); + protected ArrayList banks= new ArrayList<>(); + protected ArrayList boutiques = new ArrayList<>(); + protected ArrayList lands = new ArrayList<>(); + protected ArrayList homes = new ArrayList<>(); + protected ArrayList restaurants = new ArrayList<>(); + protected ArrayList supermarkets = new ArrayList<>(); + protected ArrayList factories = new ArrayList<>(); + protected ArrayList clinics = new ArrayList<>(); + protected ArrayList properties= new ArrayList<>(); + + public double getOutput() { + return output; + } + + public void setOutput(double output) { + this.output = output; + } + + public Avatar getMayor() { + return mayor; + } + + public void setMayor(Avatar mayor) { + this.mayor = mayor; + } + + public ArrayList getAvatars() { + return avatars; + } + + public void setAvatars(ArrayList avatars) { + this.avatars = avatars; + } + + public ArrayList getBanks() { + return banks; + } + + public void setBanks(ArrayList banks) { + this.banks = banks; + } + + public ArrayList getBoutiques() { + return boutiques; + } + + public void setBoutiques(ArrayList boutiques) { + this.boutiques = boutiques; + } + + public ArrayList getLands() { + return lands; + } + + public void setLands(ArrayList lands) { + this.lands = lands; + } + + public ArrayList getHomes() { + return homes; + } + + public void setHomes(ArrayList homes) { + this.homes = homes; + } + + public ArrayList getRestaurants() { + return restaurants; + } + + public void setRestaurants(ArrayList restaurants) { + this.restaurants = restaurants; + } + + public ArrayList getSupermarkets() { + return supermarkets; + } + + public void setSupermarkets(ArrayList supermarkets) { + this.supermarkets = supermarkets; + } + + public ArrayList getFactories() { + return factories; + } + + public void setFactories(ArrayList factories) { + this.factories = factories; + } + + public ArrayList getClinics() { + return clinics; + } + + public void setClinics(ArrayList clinics) { + this.clinics = clinics; + } + + public void setProperties(ArrayList properties) { + this.properties = properties; + } + + public ArrayList getProperties() { + return properties; + } +} diff --git a/src/Cityinterface.java b/src/Cityinterface.java new file mode 100644 index 0000000..d3a1492 --- /dev/null +++ b/src/Cityinterface.java @@ -0,0 +1,14 @@ +package org.example; + +public interface Cityinterface { + + public void menu(); + + public void UseProperty(String username); + + public void buy(); + + public void sell(); + + +} diff --git a/src/DataBase.java b/src/DataBase.java new file mode 100644 index 0000000..0e58428 --- /dev/null +++ b/src/DataBase.java @@ -0,0 +1,544 @@ +package org.example; + +import java.sql.*; +import java.util.Objects; + +public class DataBase { + static Connection connection; + static Statement statement; + static ResultSet resultSet; + + public static boolean doctor=true; + public static boolean nurse=true; + + DataBase() { + try { + String url = "jdbc:mysql://localhost:3306/lightcity"; + connection = DriverManager.getConnection(url, "root", "1382"); + statement = connection.createStatement(); + } catch (Exception e) { + System.out.println(e); + } + + } + + + public void selectAll(City city) { + + try { + resultSet = statement.executeQuery("select * from avatars"); +// (int id,String username, String password, String title, String gender, float money, float health,int sleep,String job) + while (resultSet.next()) { +// System.out.println("check"); + city.getAvatars().add(new Avatar( resultSet.getString(1), resultSet.getString(2), + resultSet.getString(3), resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), + resultSet.getInt(7), resultSet.getString(8),resultSet.getFloat(9),resultSet.getFloat(10),resultSet.getFloat(11),resultSet.getInt(12),resultSet.getFloat(13))); + } + } catch (Exception e) { + e.printStackTrace(); + } + + try { + resultSet = statement.executeQuery("select * from bank"); +// (int id, String title, int ownerID, String description, float value, float[] coordinate, boolean status, int prayerID, int recieverID, int transactionID, float amountofMoney, Avatar[] bankstaffs) + while (resultSet.next()) { +// System.out.println("check"); + + city.getBanks().add(new Bank(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7),resultSet.getFloat(8))); + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } + +// Property.setId(city.getBanks().size()+city.getBoutiques().size()+city.getClinics().size()+city.getFactories().size()+city.getHomes().size()+city.getLands().size()+city.getRestaurants().size()+city.getSupermarkets().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + try { + resultSet = statement.executeQuery("select * from boutique"); +// (int id, String title, int ownerID, String description, float value, float[] coordinate, boolean status, String dress, float dressprice, String shoe, float shoeprice, String hat, float hatprice, Avatar[] boutiquestaffs) + while (resultSet.next()) { +// System.out.println("check"); + + + city.getBoutiques().add(new Boutique(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7),resultSet.getFloat(8))); + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } +// Property.setId(city.getBanks().size()+city.getBoutiques().size()+city.getClinics().size()+city.getFactories().size()+city.getHomes().size()+city.getLands().size()+city.getRestaurants().size()+city.getSupermarkets().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + try { + resultSet = statement.executeQuery("select * from clinic"); +// (int id, String title, int ownerID, String description, float value, float[] coordinate, boolean status, Avatar[] doctors, Avatar[] nurses, Avatar[] patient, float clinicprice) + while (resultSet.next()) { +// System.out.println("check"); + + Avatar avatar1 = null; + for(Avatar i : city.getAvatars()){ + if(Objects.equals(i.getUsername(), resultSet.getString(8))){ + avatar1 = i; + } + } + Avatar avatar2 = null; + for(Avatar i : city.getAvatars()){ + if(Objects.equals(i.getUsername(), resultSet.getString(9))){ + avatar2 = i; + } + } + + if (resultSet.getString(9)==null|| Objects.equals(resultSet.getString(9), "")){ + nurse=false; + } + if (resultSet.getString(8)==null||Objects.equals(resultSet.getString(8), "")){ + doctor=false; + } + + city.getClinics().add(new Clinic(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7), + avatar1,avatar2,resultSet.getFloat(10))); + + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } + // Property.setId(city.getBanks().size()+city.getBoutiques().size()+city.getClinics().size()+city.getFactories().size()+city.getHomes().size()+city.getLands().size()+city.getRestaurants().size()+city.getSupermarkets().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + try { + resultSet = statement.executeQuery("select * from factory"); +// (int id, String title, int ownerID, String description, float value, float[] coordinate, boolean status, String product, float productprice, String output, Avatar[] factorystaffs) + while (resultSet.next()) { +// System.out.println("check"); + +// Avatar avatar = null; +// for(Avatar i : city.getAvatars()){ +// if(Objects.equals(i.getUsername(), resultSet.getString(9))){ +// avatar = i; +// } +// } + + city.getFactories().add(new Factory(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7), + resultSet.getFloat(8),resultSet.getFloat(9))); + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } +// Property.setId(city.getBanks().size()+city.getBoutiques().size()+city.getClinics().size()+city.getFactories().size()+city.getHomes().size()+city.getLands().size()+city.getRestaurants().size()+city.getSupermarkets().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + try { + resultSet = statement.executeQuery("select * from home"); +// (int id, String title, int ownerID, String description, float value, float[] coordinate, boolean status, String kind, String roomNo, int age) + while (resultSet.next()) { +// System.out.println("check"); + city.getHomes().add(new Home(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5),resultSet.getFloat(6), resultSet.getBoolean(7), + resultSet.getString(8), resultSet.getInt(9),resultSet.getInt(10))); + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } + // Property.setId(city.getBanks().size()+city.getBoutiques().size()+city.getClinics().size()+city.getFactories().size()+city.getHomes().size()+city.getLands().size()+city.getRestaurants().size()+city.getSupermarkets().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + try { + resultSet = statement.executeQuery("select * from land"); +// (int id, String title, int ownerID, String description, float value, float[] coordinate, boolean status , String kind, boolean status_for_use) + while (resultSet.next()) { +// System.out.println("check"); + city.getLands().add(new Land(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7), + resultSet.getString(8), resultSet.getBoolean(9))); + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } + // Property.setId(city.getBanks().size()+city.getBoutiques().size()+city.getClinics().size()+city.getFactories().size()+city.getHomes().size()+city.getLands().size()+city.getRestaurants().size()+city.getSupermarkets().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + try { + resultSet = statement.executeQuery("select * from restaurant"); +// (int id, String title, int ownerID, String description, float value, float[] coordinate, boolean status, String[] food, String[] drink, float foodprice, float drinkprice, Avatar[] restaurantstaffs) + while (resultSet.next()) { +// System.out.println("check"); + + + city.getRestaurants().add(new Restaurant(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7),resultSet.getFloat(8))); + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } + // Property.setId(city.getBanks().size()+city.getBoutiques().size()+city.getClinics().size()+city.getFactories().size()+city.getHomes().size()+city.getLands().size()+city.getRestaurants().size()+city.getSupermarkets().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + try { + resultSet = statement.executeQuery("select * from supermarket"); +// (int id, String title, int ownerID, String description, float value, float[] coordinate, boolean status, String[] beverage, String[] dairyProduct, String[] snacks, float beverageprice, float dairyProductprice, float snacksprice, Avatar[] supermarketstaffs) + while (resultSet.next()) { +// System.out.println("check"); + + + city.getSupermarkets().add(new Supermarket(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7),resultSet.getFloat(8))); + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } + + // Property.setId(city.getBanks().size()+city.getBoutiques().size()+city.getClinics().size()+city.getFactories().size()+city.getHomes().size()+city.getLands().size()+city.getRestaurants().size()+city.getSupermarkets().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + + try { + resultSet = statement.executeQuery("select * from property"); +// (int id,String title,int ownerID,String description,float value,float coordinate,boolean status) + while (resultSet.next()) { +// System.out.println("check"); + + city.getProperties().add(new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7))); + Property property=new Property(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), + resultSet.getString(4), resultSet.getFloat(5), resultSet.getFloat(6), resultSet.getBoolean(7)); + city.getProperties().add(property); + } + // Property.setId(city.getProperties().size()+1); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + + public static void saveAvatars(City city,Avatar avatar){ + + city.getAvatars().add(avatar); + + try{ + PreparedStatement ps = connection.prepareStatement("insert into avatars ( username, password, title, gender, money, health, sleep, job,coordinate,food,income, industryid,water)"+ + "values (?,?,?,?,?,?,?,?,?,?,?,?,?)"); + + ps.setString(1, avatar.getUsername()); + ps.setString(2, avatar.getPassword()); + ps.setString(3, avatar.getTitle()); + ps.setString(4, avatar.getGender()); + ps.setFloat(5, avatar.getMoney()); + ps.setFloat(6, avatar.getHealth()); + ps.setInt(7, avatar.getSleep()); + ps.setString(8, avatar.getJob()); + ps.setFloat(9,avatar.getCoordinate()); + ps.setFloat(10,avatar.getFood()); + ps.setFloat(11,avatar.getIncome()); + ps.setInt(12,avatar.getIndustryid()); + ps.setFloat(13, avatar.getWater()); + ps.executeUpdate(); + }catch(Exception e){ + e.printStackTrace(); + } + } + + + public static void saveBank(City city,Bank bank){ + + city.getBanks().add(bank); + + + + try{ + + PreparedStatement ps = connection.prepareStatement("insert into bank ( id, title, ownerID, description, value, coordinate, status,salary)"+ + "values (?,?,?,?,?,?,?,?)"); + + ps.setInt(1, bank.getId()); + ps.setString(2, bank.getTitle()); + ps.setString(3, bank.getOwnerusername()); + ps.setString(4, bank.getDescription()); + ps.setFloat(5, bank.getValue()); + ps.setFloat(6, bank.getCoordinate()); + ps.setBoolean(7, bank.isStatus()); + ps.setFloat(8,bank.getSalary()); +// ps.setString(8,bank.getBankstaffs().getUsername() ); + ps.executeUpdate(); + }catch(Exception e){ + e.printStackTrace(); + } + } + + public static void saveBoutique(City city,Boutique boutique){ + + city.getBoutiques().add(boutique); + + try{ + PreparedStatement ps = connection.prepareStatement("insert into boutique ( id, title, ownerID, description, value, coordinate, status,salary)"+ + "values (?,?,?,?,?,?,?,?)"); + + ps.setInt(1, boutique.getId()); + ps.setString(2, boutique.getTitle()); + ps.setString(3, boutique.getOwnerusername()); + ps.setString(4, boutique.getDescription()); + ps.setFloat(5, boutique.getValue()); + ps.setFloat(6, boutique.getCoordinate()); + ps.setBoolean(7, boutique.isStatus()); + ps.setFloat(8,boutique.getSalary()); +// ps.setString(8, boutique.getBoutiquestaffs().getUsername()); + ps.executeUpdate(); + + }catch(Exception e){ + e.printStackTrace(); + } + } + + + public static void saveClinic(City city,Clinic clinic){ + + city.getClinics().add(clinic); + + try{ + + PreparedStatement ps = connection.prepareStatement("insert into clinic ( id, title, ownerID, description, value, coordinate, status,doctorsid, nursesid,salary)"+ + "values (?,?,?,?,?,?,?,?,?,?)"); + + ps.setInt(1, clinic.getId()); + ps.setString(2, clinic.getTitle()); + ps.setString(3, clinic.getOwnerusername()); + ps.setString(4, clinic.getDescription()); + ps.setFloat(5, clinic.getValue()); + ps.setFloat(6, clinic.getCoordinate()); + ps.setBoolean(7, clinic.isStatus()); + ps.setString(8, clinic.getDoctors().getUsername()); + ps.setString(9, clinic.getNurses().getUsername()); + ps.setFloat(10,clinic.getSalary()); + ps.executeUpdate(); + + }catch(Exception e){ + e.printStackTrace(); + } + } + + public static void saveFactory(City city,Factory factory){ + + city.getFactories().add(factory); + + try{ + + PreparedStatement ps = connection.prepareStatement("insert into factory ( id, title, ownerID, description, value, coordinate, status,output,salary)"+ + "values (?,?,?,?,?,?,?,?,?)"); + + ps.setInt(1, factory.getId()); + ps.setString(2, factory.getTitle()); + ps.setString(3, factory.getOwnerusername()); + ps.setString(4, factory.getDescription()); + ps.setFloat(5, factory.getValue()); + ps.setFloat(6, factory.getCoordinate()); + ps.setBoolean(7, factory.isStatus()); + ps.setFloat(8, factory.getOutput()); + ps.setFloat(9,factory.getSalary()); +// ps.setString(9, factory.getFactorystaffs().getUsername()); + ps.executeUpdate(); + + }catch(Exception e){ + e.printStackTrace(); + } + } + + public static void saveHome(City city,Home home){ + + city.getHomes().add(home); + + try{ + + PreparedStatement ps = connection.prepareStatement("insert into home ( id, title, ownerID, description, value, coordinate, status, kind, roomNo, age)"+ + "values (?,?,?,?,?,?,?,?,?,?)"); + + ps.setInt(1, home.getId()); + ps.setString(2, home.getTitle()); + ps.setString(3, home.getOwnerusername()); + ps.setString(4, home.getDescription()); + ps.setFloat(5, home.getValue()); + ps.setFloat(6, home.getCoordinate()); + ps.setBoolean(7, home.isStatus()); + ps.setString(8, home.getKind()); + ps.setInt(9, home.getRoomNo()); + ps.setInt(10, home.getAge()); + ps.executeUpdate(); + + }catch(Exception e){ + e.printStackTrace(); + } + } + + public static void saveLand(City city,Land land){ + + city.getLands().add(land); + + try{ + + PreparedStatement ps = connection.prepareStatement("insert into land ( id, title, ownerID, description, value, coordinate, status, kind, status_for_use)"+ + "values (?,?,?,?,?,?,?,?,?)"); + + ps.setInt(1, land.getId()); + ps.setString(2, land.getTitle()); + ps.setString(3, land.getOwnerusername()); + ps.setString(4, land.getDescription()); + ps.setFloat(5, land.getValue()); + ps.setFloat(6, land.getCoordinate()); + ps.setBoolean(7, land.isStatus()); + ps.setString(8, land.getKind()); + ps.setBoolean(9, land.isStatus_for_use()); + ps.executeUpdate(); + + }catch(Exception e){ + e.printStackTrace(); + } + } + + public static void saveRestaurant(City city,Restaurant restaurant){ + + city.getRestaurants().add(restaurant); + + try{ + + PreparedStatement ps = connection.prepareStatement("insert into restaurant ( id, title, ownerID, description, value, coordinate, status,salary)"+ + "values (?,?,?,?,?,?,?,?)"); + + ps.setInt(1, restaurant.getId()); + ps.setString(2, restaurant.getTitle()); + ps.setString(3, restaurant.getOwnerusername()); + ps.setString(4, restaurant.getDescription()); + ps.setFloat(5, restaurant.getValue()); + ps.setFloat(6, restaurant.getCoordinate()); + ps.setBoolean(7, restaurant.isStatus()); + ps.setFloat(8,restaurant.getSalary()); +// ps.setString(8, restaurant.getRestaurantstaffs().getUsername()); + ps.executeUpdate(); + + }catch(Exception e){ + e.printStackTrace(); + } + } + + public static void saveSupermarket(City city,Supermarket supermarket){ + + city.getSupermarkets().add(supermarket); + + try{ + + PreparedStatement ps = connection.prepareStatement("insert into supermarket ( id, title, ownerID, description, value, coordinate, status,salary)"+ + "values (?,?,?,?,?,?,?,?)"); + + ps.setInt(1, supermarket.getId()); + ps.setString(2, supermarket.getTitle()); + ps.setString(3, supermarket.getOwnerusername()); + ps.setString(4, supermarket.getDescription()); + ps.setFloat(5, supermarket.getValue()); + ps.setFloat(6, supermarket.getCoordinate()); + ps.setBoolean(7, supermarket.isStatus()); + ps.setFloat(8,supermarket.getSalary()); +// ps.setString(8, supermarket.getSupermarketstaffs().getUsername()); + ps.executeUpdate(); + + }catch(Exception e){ + e.printStackTrace(); + } + } + + public static void saveProperty(City city,Property property){ + city.getProperties().add(property); + try{ + + PreparedStatement ps = connection.prepareStatement("insert into property ( id, title, ownerID, description, value, coordinate, status)"+ + "values (?,?,?,?,?,?,?)"); + + ps.setInt(1, property.getId()); + ps.setString(2, property.getTitle()); + ps.setString(3, property.getOwnerusername()); + ps.setString(4, property.getDescription()); + ps.setFloat(5, property.getValue()); + ps.setFloat(6, property.getCoordinate()); + ps.setBoolean(7, property.isStatus()); + ps.executeUpdate(); + + }catch(Exception e){ + e.printStackTrace(); + } + + } + + public static void updateInfo(String changeClass, String element , int id, String newValue){ + try { + PreparedStatement ps = connection.prepareStatement("update "+changeClass+" set "+element+" = ? where id = ?"); + ps.setString(1, newValue); + ps.setInt(2, id); + ps.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void updateInfo(String changeClass, String element , int id, Boolean newValue){ + try { + PreparedStatement ps = connection.prepareStatement("update "+changeClass+" set "+element+" = ? where id = ?"); + ps.setBoolean(1, newValue); + ps.setInt(2, id); + ps.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void updateInfo(String changeClass, String element , int id, long newValue){ + try { + PreparedStatement ps = connection.prepareStatement("update "+changeClass+" set "+element+" = ? where id = ?"); + ps.setLong(1, newValue); + ps.setInt(2, id); + ps.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void updateInfo(String changeClass, String element , String username, String newValue){ + try { + PreparedStatement ps = connection.prepareStatement("update "+changeClass+" set "+element+" = ? where username = ?"); + ps.setString(1, newValue); + ps.setString(2, username); + ps.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void updateInfo(String changeClass, String element , String username, float newValue){ + try { + PreparedStatement ps = connection.prepareStatement("update "+changeClass+" set "+element+" = ? where username = ?"); + ps.setFloat(1, newValue); + ps.setString(2, username); + ps.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void updateInfo(String changeClass, String element , int id, float newValue){ + try { + PreparedStatement ps = connection.prepareStatement("update "+changeClass+" set "+element+" = ? where id = ?"); + ps.setFloat(1, newValue); + ps.setInt(2, id); + ps.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} + + + + + diff --git a/src/Employee.java b/src/Employee.java new file mode 100644 index 0000000..e589016 --- /dev/null +++ b/src/Employee.java @@ -0,0 +1,4 @@ +package org.example; + +public class Employee { +} diff --git a/src/Menu.java b/src/Menu.java new file mode 100644 index 0000000..0caae07 --- /dev/null +++ b/src/Menu.java @@ -0,0 +1,604 @@ +package org.example; + +import java.util.*; +public class Menu { + public static String username; + public static String password; + public static void showMenu() throws Exception { + + + Scanner scanner = new Scanner(System.in); + int choice; + do { + System.out.println("==== Main Menu ===="); + System.out.println("1. Continue"); + System.out.println("2. Start New Game"); + System.out.println("3. Join Server"); + System.out.println("4. Exit"); + System.out.print("Enter your choice: "); + choice = scanner.nextInt(); + switch (choice) { + case 1: + Scanner scanner2=new Scanner(System.in); + System.out.print("Enter your username: "); + username = scanner2.nextLine(); + System.out.print("Enter your password: "); + password = scanner2.nextLine(); + boolean flag = false; + for (int i =0;i