Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- package luola;
- import java.util.*;
- public class Hirvio {
- private int x;
- private int y;
- public Hirvio(int leveys, int korkeus) {
- this.x = leveys;
- this.y = korkeus;
- }
- public int palautaX() {
- return this.x;
- }
- public int palautaY() {
- return this.y;
- }
- public void siirry(String komento, int leveys, int korkeus, List<Hirvio> hirviot) {
- if (komento.equals("w")) {
- int onkoRuudussaKaksi = 0;
- this.y--;
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == this.x && hirvio.palautaY() == this.y) {
- onkoRuudussaKaksi++;
- }
- }
- if (onkoRuudussaKaksi > 1) {
- this.y++;
- }
- if (this.y < 0) {
- this.y = 0;
- }
- }
- if (komento.equals("s")) {
- int onkoRuudussaKaksi = 0;
- this.y++;
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == this.x && hirvio.palautaY() == this.y) {
- onkoRuudussaKaksi++;
- }
- }
- if (onkoRuudussaKaksi > 1) {
- this.y--;
- }
- if (this.y > korkeus) {
- this.y = korkeus - 1;
- }
- }
- if (komento.equals("a")) {
- int onkoRuudussaKaksi = 0;
- this.x--;
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == this.x && hirvio.palautaY() == this.y) {
- onkoRuudussaKaksi++;
- }
- }
- if (onkoRuudussaKaksi > 1) {
- this.x++;
- }
- if (this.x < 0) {
- this.x = 0;
- }
- }
- if (komento.equals("d")) {
- int onkoRuudussaKaksi = 0;
- this.x++;
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == this.x && hirvio.palautaY() == this.y) {
- onkoRuudussaKaksi++;
- }
- }
- if (onkoRuudussaKaksi > 1) {
- this.x--;
- }
- if (this.x > leveys) {
- this.x = leveys;
- }
- }
- }
- }
- src/luola/Luola.java
- ?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- package luola;
- import java.util.*;
- public class Luola {
- private int leveys;
- private int korkeus;
- private int hirvioita;
- private int siirtoja;
- private boolean hirviotLiikkuvat;
- private List<Hirvio> hirviot;
- public Luola(int leveys, int korkeus, int hirvioita, int siirtoja, boolean hirviotLiikkuvat) {
- this.leveys = leveys;
- this.korkeus = korkeus;
- this.hirvioita = hirvioita;
- this.siirtoja = siirtoja;
- this.hirviotLiikkuvat = hirviotLiikkuvat;
- this.hirviot = new ArrayList<Hirvio>();
- }
- public void luoHirviot(Pelaaja pelaaja) {
- int i = 0;
- boolean samakoordinaatti = false;
- while (i < this.hirvioita) {
- int hirvionY = new Random().nextInt(this.korkeus);
- int hirvionX = new Random().nextInt(this.leveys);
- for (Hirvio hirvio : this.hirviot) {
- if (hirvionX == hirvio.palautaX() && hirvionY == hirvio.palautaY()) {
- samakoordinaatti = true;
- break;
- }
- }
- if (samakoordinaatti == false) {
- this.hirviot.add(new Hirvio(hirvionX, hirvionY));
- i++;
- } else {
- continue;
- }
- }
- }
- public void getHirviot() {
- for (Hirvio hirvio : this.hirviot) {
- System.out.println("h " + hirvio.palautaX() + " " + hirvio.palautaY());
- }
- }
- public void run() {
- Scanner lukija = new Scanner(System.in);
- Pelikentta pelikentta = new Pelikentta(this.leveys, this.korkeus, this.hirvioita, this.hirviotLiikkuvat);
- Pelaaja pelaaja = new Pelaaja(this.leveys, this.korkeus, this.hirviotLiikkuvat);
- luoHirviot(pelaaja);
- while (this.siirtoja > 0) {
- this.hirviot.removeAll(pelaaja.palautaPoistettavat());
- if (this.hirviot.isEmpty()) {
- System.out.println("VOITIT");
- break;
- }
- System.out.println(this.siirtoja);
- System.out.println("");
- System.out.println("@ " + pelaaja.palautaX() + " " + pelaaja.palautaY());
- if (this.hirviot.isEmpty()) {
- System.out.println("VOITIT");
- break;
- }
- getHirviot();
- System.out.println("");
- System.out.println(pelikentta.getKentta(pelaaja, hirviot));
- this.siirtoja--;
- pelikentta.teeSiirto(lukija, pelaaja, this.hirviot);
- if (this.siirtoja == 0) {
- System.out.println("HÄVISIT");
- break;
- }
- }
- }
- }
- src/luola/Paaohjelma.java
- ?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- package luola;
- public class Paaohjelma {
- public static void main(String[] args) {
- new Luola(10,7,5,5,false).run();
- }
- }
- src/luola/Pelaaja.java
- ?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- package luola;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- public class Pelaaja {
- private int x;
- private int y;
- private int kentanLeveys;
- private int kentanKorkeus;
- private ArrayList<Hirvio> poistettavat;
- private boolean hirviotLiikkuvat;
- public Pelaaja(int leveys, int korkeus, boolean hirviotLiikkuvat) {
- this.x = 0;
- this.y = 0;
- this.kentanLeveys = leveys - 1;
- this.kentanKorkeus = korkeus - 1;
- this.poistettavat = new ArrayList<Hirvio>();
- this.hirviotLiikkuvat = hirviotLiikkuvat;
- }
- public List palautaPoistettavat() {
- return this.poistettavat;
- }
- public int palautaX() {
- return this.x;
- }
- public int palautaY() {
- return this.y;
- }
- public void siirry(String komento, List<Hirvio> hirviot) {
- String suoritettavaKomento = "";
- double komento1 = 0.0;
- if (komento.equals("w")) {
- this.y--;
- if (this.y < 0) {
- this.y = 0;
- }
- if (hirviotLiikkuvat == true) {
- komento1 = new Random().nextDouble();
- if (komento1 > 0 && komento1 < 0.26) {
- suoritettavaKomento = "w";
- }
- if (komento1 > 0.25 && komento1 < 0.51) {
- suoritettavaKomento = "s";
- }
- if (komento1 > 0.50 && komento1 < 0.76) {
- suoritettavaKomento = "a";
- }
- if (komento1 > 0.75 && komento1 < 1.01) {
- suoritettavaKomento = "d";
- }
- for (Hirvio hirvio1 : hirviot) {
- hirvio1.siirry(suoritettavaKomento, this.kentanLeveys, this.kentanKorkeus, hirviot);
- }
- }
- }
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == this.x && hirvio.palautaY() == this.y) {
- this.poistettavat.add(hirvio);
- }
- }
- if (komento.equals("s")) {
- this.y++;
- if (this.y > this.kentanKorkeus) {
- this.y = this.kentanKorkeus - 1;
- }
- if (hirviotLiikkuvat == true) {
- komento1 = new Random().nextDouble();
- if (komento1 > 0 && komento1 < 0.26) {
- suoritettavaKomento = "w";
- }
- if (komento1 > 0.25 && komento1 < 0.51) {
- suoritettavaKomento = "s";
- }
- if (komento1 > 0.50 && komento1 < 0.76) {
- suoritettavaKomento = "a";
- }
- if (komento1 > 0.75 && komento1 < 1.01) {
- suoritettavaKomento = "d";
- }
- for (Hirvio hirvio1 : hirviot) {
- hirvio1.siirry(suoritettavaKomento, this.kentanLeveys, this.kentanKorkeus, hirviot);
- }
- }
- }
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == this.x && hirvio.palautaY() == this.y) {
- this.poistettavat.add(hirvio);
- }
- }
- if (komento.equals("a")) {
- this.x--;
- if (this.x < 0) {
- this.x = 0;
- }
- if (hirviotLiikkuvat == true) {
- komento1 = new Random().nextDouble();
- if (komento1 > 0 && komento1 < 0.26) {
- suoritettavaKomento = "w";
- }
- if (komento1 > 0.25 && komento1 < 0.51) {
- suoritettavaKomento = "s";
- }
- if (komento1 > 0.50 && komento1 < 0.76) {
- suoritettavaKomento = "a";
- }
- if (komento1 > 0.75 && komento1 < 1.01) {
- suoritettavaKomento = "d";
- }
- for (Hirvio hirvio1 : hirviot) {
- hirvio1.siirry(suoritettavaKomento, this.kentanLeveys, this.kentanKorkeus, hirviot);
- }
- }
- }
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == this.x && hirvio.palautaY() == this.y) {
- this.poistettavat.add(hirvio);
- }
- }
- if (komento.equals("d")) {
- this.x++;
- if (this.x > this.kentanLeveys) {
- this.x = this.kentanLeveys;
- }
- if (hirviotLiikkuvat == true) {
- komento1 = new Random().nextDouble();
- if (komento1 > 0 && komento1 < 0.26) {
- suoritettavaKomento = "w";
- }
- if (komento1 > 0.25 && komento1 < 0.51) {
- suoritettavaKomento = "s";
- }
- if (komento1 > 0.50 && komento1 < 0.76) {
- suoritettavaKomento = "a";
- }
- if (komento1 > 0.75 && komento1 < 1.01) {
- suoritettavaKomento = "d";
- }
- for (Hirvio hirvio1 : hirviot) {
- hirvio1.siirry(suoritettavaKomento, this.kentanLeveys, this.kentanKorkeus, hirviot);
- }
- }
- }
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == this.x && hirvio.palautaY() == this.y) {
- this.poistettavat.add(hirvio);
- }
- }
- }
- }
- src/luola/Pelikentta.java
- ?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- package luola;
- import java.util.*;
- public class Pelikentta {
- private int leveys;
- private int korkeus;
- private int hirvioita;
- private String siirto;
- private boolean hirviotLiikkuvat;
- public Pelikentta(int leveys, int korkeus, int hirvioita, boolean hirviotLiikkuvat) {
- this.leveys = leveys;
- this.korkeus = korkeus;
- this.hirvioita = hirvioita;
- this.hirviotLiikkuvat = hirviotLiikkuvat;
- }
- public String getKentta(Pelaaja pelaaja, List<Hirvio> hirviot) {
- String kenttaMerkkiJonona = "";
- int x = 0;
- int y = 0;
- int b = 0;
- while (true) {
- if (kenttaMerkkiJonona.length() == this.leveys * this.korkeus + this.korkeus) {
- return kenttaMerkkiJonona;
- }
- if (x == this.leveys) {
- y++;
- kenttaMerkkiJonona += "\n";
- x = 0;
- }
- if (pelaaja.palautaX() == x && pelaaja.palautaY() == y) {
- kenttaMerkkiJonona += "@";
- x++;
- } else {
- for (Hirvio hirvio : hirviot) {
- if (hirvio.palautaX() == x && hirvio.palautaY() == y) {
- kenttaMerkkiJonona += "h";
- if (x == this.leveys) {
- kenttaMerkkiJonona += "\n";
- }
- x++;
- }
- }
- kenttaMerkkiJonona += ".";
- x++;
- }
- if (x == this.leveys) {
- y++;
- kenttaMerkkiJonona += "\n";
- x = 0;
- }
- }
- }
- public void teeSiirto(Scanner lukija, Pelaaja pelaaja, List<Hirvio> hirviot) {
- String siirrot = "wsad";
- String komento = "";
- this.siirto = lukija.nextLine();
- int i = 0;
- while (i < this.siirto.length()) {
- if (this.siirto.charAt(i) == siirrot.charAt(0)) {
- komento = "w";
- pelaaja.siirry(komento, hirviot);
- }
- if (this.siirto.charAt(i) == siirrot.charAt(1)) {
- komento = "s";
- pelaaja.siirry(komento, hirviot);
- }
- if (this.siirto.charAt(i) == siirrot.charAt(2)) {
- komento = "a";
- pelaaja.siirry(komento, hirviot);
- }
- if (this.siirto.charAt(i) == siirrot.charAt(3)) {
- komento = "d";
- pelaaja.siirry(komento, hirviot);
- }
- i++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement