diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..39e72f6
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+MyApp.java
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..4258c62
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..886dc5c
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..9988acd
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ org.example
+ Quidditch
+ 1.0-SNAPSHOT
+
+
+ 18
+ 18
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/example/Beater.java b/src/main/java/org/example/Beater.java
new file mode 100644
index 0000000..9e83253
--- /dev/null
+++ b/src/main/java/org/example/Beater.java
@@ -0,0 +1,12 @@
+package org.example;
+import java.lang.Math;
+public class Beater extends Player implements Success{
+ Beater(String name, int number) {
+ super(name, number);
+ }
+
+ @Override
+ public boolean isSuccessful() {
+ return 0.4 > Math.random();
+ }
+}
diff --git a/src/main/java/org/example/Chaser.java b/src/main/java/org/example/Chaser.java
new file mode 100644
index 0000000..1dd5774
--- /dev/null
+++ b/src/main/java/org/example/Chaser.java
@@ -0,0 +1,11 @@
+package org.example;
+import java.lang.Math;
+public class Chaser extends Player{
+ Chaser(String name, int number) {
+ super(name, number);
+ }
+ @Override
+ public boolean isSuccessful() {
+ return 0.3 > Math.random();
+ }
+}
diff --git a/src/main/java/org/example/Keeper.java b/src/main/java/org/example/Keeper.java
new file mode 100644
index 0000000..3eaaefc
--- /dev/null
+++ b/src/main/java/org/example/Keeper.java
@@ -0,0 +1,11 @@
+package org.example;
+import java.lang.Math;
+public class Keeper extends Player {
+ Keeper(String name, int number) {
+ super(name, number);
+ }
+ @Override
+ public boolean isSuccessful(){
+ return 0.7 > Math.random();
+ }
+}
diff --git a/src/main/java/org/example/Match.java b/src/main/java/org/example/Match.java
new file mode 100644
index 0000000..e5fbe01
--- /dev/null
+++ b/src/main/java/org/example/Match.java
@@ -0,0 +1,29 @@
+package org.example;
+import java.lang.Math;
+public class Match {
+ Team team1 = new Team();
+ Team team2 = new Team();
+ public void start(){
+ for (int i = 0; i < 100; i++) {
+ team1.play();
+ team2.play();
+ }
+ System.out.format("Team1 = %d\n", team1.numberOfGoals);
+ System.out.format("Team2 = %d\n", team2.numberOfGoals);
+ if (team1.findsGoldenSnitch){
+ System.out.println("Team1 finds the golden snitch & won.");
+ }
+ else if(team2.findsGoldenSnitch){
+ System.out.println("Team2 finds the golden snitch & won.");
+ }
+ else {
+ if (team1.numberOfGoals > team2.numberOfGoals) {
+ System.out.println("Result: Team1 won.");
+ } else if (team2.numberOfGoals > team1.numberOfGoals) {
+ System.out.println("Result: Team2 won.");
+ } else if (team1.numberOfGoals == team2.numberOfGoals) {
+ System.out.println(" Result: draw");
+ }
+ }
+ }
+}
diff --git a/src/main/java/org/example/MyApp.java b/src/main/java/org/example/MyApp.java
new file mode 100644
index 0000000..2f63e31
--- /dev/null
+++ b/src/main/java/org/example/MyApp.java
@@ -0,0 +1,8 @@
+package org.example;
+
+public class MyApp {
+ public static void main(String[] args) {
+ Match match = new Match();
+ match.start();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/example/Player.java b/src/main/java/org/example/Player.java
new file mode 100644
index 0000000..68d66a5
--- /dev/null
+++ b/src/main/java/org/example/Player.java
@@ -0,0 +1,14 @@
+package org.example;
+
+public class Player implements Success{
+ private String name;
+ private int number;
+ Player(String name, int number){
+ this.name = name;
+ this.number = number;
+ }
+ @Override
+ public boolean isSuccessful() {
+ return false;
+ }
+}
diff --git a/src/main/java/org/example/Seeker.java b/src/main/java/org/example/Seeker.java
new file mode 100644
index 0000000..e75b29a
--- /dev/null
+++ b/src/main/java/org/example/Seeker.java
@@ -0,0 +1,11 @@
+package org.example;
+import java.lang.Math;
+public class Seeker extends Player {
+ Seeker(String name, int number) {
+ super(name, number);
+ }
+ @Override
+ public boolean isSuccessful(){
+ return 0.05 > Math.random();
+ }
+}
diff --git a/src/main/java/org/example/Success.java b/src/main/java/org/example/Success.java
new file mode 100644
index 0000000..14939f6
--- /dev/null
+++ b/src/main/java/org/example/Success.java
@@ -0,0 +1,5 @@
+package org.example;
+
+public interface Success {
+ public boolean isSuccessful();
+}
diff --git a/src/main/java/org/example/Team.java b/src/main/java/org/example/Team.java
new file mode 100644
index 0000000..e52bfae
--- /dev/null
+++ b/src/main/java/org/example/Team.java
@@ -0,0 +1,29 @@
+package org.example;
+
+public class Team {
+ Keeper keeper = new Keeper("Mr.NoorBakhsh", 1);
+ Seeker seeker = new Seeker("Mr.Ranaei",2);
+ Beater beater1 = new Beater("Mr.Jalali", 3);
+ Beater beater2 = new Beater("Mr.Matin", 4);
+ Chaser chaser1 = new Chaser("Mr.Lotfipoor",5);
+
+ Chaser chaser2 = new Chaser("Mr.Izadi" ,6);
+ Chaser chaser3 = new Chaser("Mr.Tahmasbi" ,7);
+ int numberOfGoals = 0;
+ boolean findsGoldenSnitch = false;
+
+ private void setGoal(){
+ numberOfGoals+=1;
+ }
+ public void play(){
+
+ if (seeker.isSuccessful()){
+ findsGoldenSnitch = true;
+ }
+ boolean chasersSuccess = (chaser1.isSuccessful() && chaser2.isSuccessful()) || (chaser1.isSuccessful() && chaser3.isSuccessful()) || (chaser2.isSuccessful() && chaser3.isSuccessful());
+ boolean beatersSuccess = beater1.isSuccessful() || beater2.isSuccessful();
+ if (keeper.isSuccessful() && chasersSuccess && beatersSuccess){
+ setGoal();
+ }
+ }
+}