Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package soccerexceptions; //asta e vrajeala din eclipse se pune cand creezi o clasa noua
- import java.util.Random; //pachetul asta trebuie importat ca ai nevoie de el ca sa dea numere random
- public class Ball {
- //Coordonatele de inceput ca sa initializezi obiectul nou creat, cand creezi obiectul o sa fie (50,50)
- //pentru ca se incepe meciul de la mijloc
- int x;
- int y;
- //Variabila de care te folosesti ca sa obtii numere random
- Random r;
- //Constructor
- public Ball(int x,int y) {
- this.x = x;
- this.y = y;
- }
- //Getter ca sa iei X-ul
- public int GetX() {
- return x;
- }
- //Getter ca sa iei Y-ul
- public int GetY() {
- return y;
- }
- //Metoda ca sa incepi jocul
- public void Play() throws OutException, GoalException, CornerException {
- //Initializezi variabila de ti ai declarat o mai sus ca fiind un obiect de tipul clasei Random
- //e deja o clasa implementat default cand apelezi pachetul ala de sus de tot
- r = new Random();
- //aici egalez x,y cu r.metodaCareDaNumarRandom si anume r.nextInt() si am pus in paranteza 101 si
- //51 ca sa dea numere de la 0 la 100 si numere de la 0 la 50 ca altfel daca puneam 100 lua numere
- //de la 0 la 99
- x = r.nextInt(101);
- y = r.nextInt(51);
- //Aici printez unde e mingea dupa ce se baga random un X si un Y
- System.out.println("Ball:("+x+","+y+")");
- //Tot ce e in jos e ce iti apare in enuntul problemei
- if( y == 0 || y == 50) {
- throw new OutException();
- }
- else {
- if( (x == 0 || x == 100) && (y>=20 && y<=30) ) {
- throw new GoalException();
- }
- else {
- if( (x == 0 || x == 100) && ( ((y>0)&&(y<20)) || ((y>30)&&(y<50)) ) ) {
- throw new CornerException();
- }
- }
- }
- }
- }
- package soccerexceptions;
- //Clasa asta si celelalte asa cu numele Exception extind clasa mare Exception
- //si suprascriu in constructor numele exceptiei
- public class CornerException extends Exception{
- public CornerException() {
- super("CornerException");
- }
- }
- package soccerexceptions;
- //Clasa asta si celelalte asa cu numele Exception extind clasa mare Exception
- //si suprascriu in constructor numele exceptiei
- public class OutException extends Exception{
- public OutException() {
- super("OutException");
- }
- }
- package soccerexceptions;
- //Clasa asta si celelalte asa cu numele Exception extind clasa mare Exception
- //si suprascriu in constructor numele exceptiei
- public class GoalException extends Exception{
- public GoalException() {
- super("GoalException");
- }
- }
- package soccerexceptions;
- public class Game {
- //Primele doua variabile numele echipelor, ultimele 3 contoare practic pentru ce zice fiecare
- String teamOne;
- String teamTwo;
- int outs;
- int goals;
- int corners;
- //Constructor
- public Game(String teamOne, String teamTwo) {
- this.teamOne = teamOne;
- this.teamTwo = teamTwo;
- }
- //Metoda ca sa incepem si noi meciul ca pe arena electrica
- public void StartGame() {
- //Cum am zis si in clasa Ball, initializezi mingea cu 50,50 ca incepe de la mijloc
- Ball B = new Ball(50,50);
- //Aici iti zice in enunt ca pentru 2000 de cazuri sa faci
- for(int i = 0 ; i<2000 ; i++) {
- //In variabilele astea retin mereu ultimele coordonate
- int lastX = B.GetX();
- int lastY = B.GetY();
- //De aici incepe show-ul
- try {
- B.Play(); //Executam metoda Play din clasa Ball de la care mereu obtinem
- //coordonate noi si ai if-urile alea daca se indeplineste unul
- //se "arunca" o exceptie si mai jos ai ce se intampla cand se
- //"arunca" adica "throw" fiecare exceptie
- }catch(GoalException e) {
- goals++;
- B = new Ball(50,25); //Daca e gol se reincepe de la mijloc adica X e 50 si Y e 25
- System.out.println(e);
- }catch(OutException e) {
- outs++;
- B = new Ball(lastX,lastY); // Daca e out se creeaza un nou obiect si se reia de unde a iesit adica de la
- // ultimul X si ultimul Y
- System.out.println(e);
- System.out.println("Se executa outul de la:("+lastX+","+lastY+")");
- }catch(CornerException e) {
- corners++;
- B = new Ball(lastX,lastY); //Aceeasi poveste ca mai sus;
- System.out.println(e);
- System.out.println("Se executa cornerul de la:("+lastX+","+lastY+")");
- }
- }
- }
- //o metoda de toString aici intelegi tu ce se intampla
- public String toString() {
- String s = "";
- s = s+"Team1:"+teamOne+"\n";
- s = s+"Team2:"+teamTwo+"\n";
- s = s+"Goals:"+goals+"\n";
- s = s+"Outs:"+outs+"\n";
- s = s+"Corners:"+corners+"\n";
- return s;
- }
- }
- package soccerexceptions;
- public class Main {
- public static void main(String [] args) {
- //Creez un nou obiect de tip Game
- Game G = new Game("Electrica","FC Barcelona");
- //Apelez metoda din clasa Game;
- G.StartGame();
- System.out.println(G);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement