forked from mmasias/22-23-prg1-examenfinal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
PacmanV4.java
96 lines (85 loc) · 4.25 KB
/
PacmanV4.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
import java.util.Scanner;
public class PacmanV4 {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
char inputUsuario;
boolean terminar = false;
int[][] unaMatriz = {
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 },
{ 1, 4, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 4, 1 },
{ 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1 },
{ 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1 },
{ 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 0 },
{ 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1 },
{ 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1 },
{ 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1 },
{ 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1 },
{ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
};
int[] posicionPersonaje = { 7, 10 };
int[] posicionFantasma = { 5, 10 };
int puntos=0;
int invencibilidad=0;
int limiteInferior=0;
int limiteSuperior=unaMatriz.length-1;
int limiteIzquierdo=0;
int limiteDerecho=unaMatriz[0].length-1;
do {
System.out.println("Puntos: [" + puntos + "] / Invencibilidad: [" + invencibilidad + "]");
for (int laFila = 0; laFila < unaMatriz.length; laFila++) {
for (int laColumna = 0; laColumna < unaMatriz[laFila].length; laColumna++) {
if (laFila == posicionPersonaje[0] && laColumna == posicionPersonaje[1]) {
System.out.print("P");
} else if (laFila == posicionFantasma[0] && laColumna == posicionFantasma[1]) {
System.out.print("F");
} else {
if (unaMatriz[laFila][laColumna] == 0) {
System.out.print(" ");
} else if (unaMatriz[laFila][laColumna] == 1) {
System.out.print("#");
} else if (unaMatriz[laFila][laColumna] == 2) {
System.out.print(".");
} else if (unaMatriz[laFila][laColumna] == 4) {
System.out.print("X");
}
}
}
System.out.println();
}
inputUsuario = entrada.nextLine().charAt(0);
switch (inputUsuario) {
case 's', 'S', '8':
posicionPersonaje[0] = posicionPersonaje[0] + 1;
break;
case 'w', 'W', '2':
posicionPersonaje[0] = posicionPersonaje[0] - 1;
break;
case 'a', 'A', '4':
posicionPersonaje[1] = posicionPersonaje[1] - 1;
break;
case 'd', 'D', '6':
posicionPersonaje[1] = posicionPersonaje[1] + 1;
break;
case 'f', 'F':
terminar = true;
}
if (posicionPersonaje[0]<limiteInferior) {posicionPersonaje[0]=limiteSuperior;}
if (posicionPersonaje[0]>limiteSuperior) {posicionPersonaje[0]=limiteInferior;}
if (posicionPersonaje[1]<limiteIzquierdo) {posicionPersonaje[1]=limiteDerecho;}
if (posicionPersonaje[1]>limiteDerecho) {posicionPersonaje[1]=limiteIzquierdo;}
if (unaMatriz[posicionPersonaje[0]][posicionPersonaje[1]] == 2){
unaMatriz[posicionPersonaje[0]][posicionPersonaje[1]]=0;
puntos = puntos+3;
} else if (unaMatriz[posicionPersonaje[0]][posicionPersonaje[1]] == 4) {
unaMatriz[posicionPersonaje[0]][posicionPersonaje[1]]=0;
puntos = puntos+6;
invencibilidad=invencibilidad+15;
}
if (invencibilidad>0) {
invencibilidad=invencibilidad-1;
}
} while (!terminar);
}
}