Skip to content

Commit cc7115f

Browse files
authored
Merge pull request mouredev#7085 from Josegs95/main
#20 y #21 - Java
2 parents 35867f6 + 5afec43 commit cc7115f

File tree

2 files changed

+208
-0
lines changed

2 files changed

+208
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
import com.google.gson.JsonArray;
2+
import com.google.gson.JsonElement;
3+
import com.google.gson.JsonObject;
4+
import com.google.gson.JsonParser;
5+
6+
import java.io.IOException;
7+
import java.net.URI;
8+
import java.net.http.HttpClient;
9+
import java.net.http.HttpRequest;
10+
import java.net.http.HttpResponse;
11+
import java.net.http.HttpResponse.BodyHandlers;
12+
import java.util.ArrayList;
13+
import java.util.List;
14+
import java.util.Scanner;
15+
16+
public class Josegs95 {
17+
public static void main(String[] args) {
18+
//Ejercicio
19+
HttpClient client = HttpClient.newHttpClient();
20+
HttpRequest request = HttpRequest.newBuilder()
21+
.uri(URI.create("https://www.google.es"))
22+
.GET()
23+
.build();
24+
try {
25+
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
26+
//Si no salta excepción, la petición fue exitosa.
27+
if (response.statusCode() != 200)
28+
System.out.println("Ha habido algún problema con la conexión. Cod: " + response.statusCode());
29+
else{
30+
System.out.println("La conexión ha sido un éxito.");
31+
System.out.println(response.body());
32+
}
33+
} catch (IOException e) {
34+
throw new RuntimeException(e);
35+
} catch (InterruptedException e) {
36+
throw new RuntimeException(e);
37+
}
38+
39+
//Reto
40+
retoFinal();
41+
}
42+
43+
public static void retoFinal(){
44+
//Voy a escribirlo todo en un método para hacerlo más sencillo y porque ya existen librerías especializadas
45+
//en trabajar con la pokeapi.
46+
47+
Scanner sc = new Scanner(System.in);
48+
System.out.print("Introduzca el nombre o el número del Pokémon: ");
49+
String pokemon = sc.nextLine().toLowerCase();
50+
51+
HttpClient client = HttpClient.newHttpClient();
52+
HttpRequest request = HttpRequest.newBuilder()
53+
.uri(URI.create("https://pokeapi.co/api/v2/pokemon/" + pokemon))
54+
.build();
55+
try {
56+
HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
57+
58+
if(response.statusCode() != 200)
59+
System.out.println("Error " + response.statusCode() + ". Pokémon desconocido.");
60+
else{
61+
JsonObject pokemonData = JsonParser.parseString(response.body()).getAsJsonObject();
62+
63+
//ID, nombre, peso, altura y tipos
64+
String id = pokemonData.get("id").getAsString();
65+
String name = pokemonData.get("name").getAsString();
66+
double weight = pokemonData.get("weight").getAsDouble() / 10.0;
67+
double height = pokemonData.get("height").getAsDouble() / 10.0;
68+
69+
List<String> typeList = new ArrayList<>();
70+
for (JsonElement type : pokemonData.get("types").getAsJsonArray()) {
71+
JsonObject aux = type.getAsJsonObject();
72+
typeList.add(aux.get("type").getAsJsonObject().get("name").getAsString());
73+
}
74+
75+
System.out.println("ID: " + id);
76+
System.out.println("Nombre: " + name);
77+
System.out.println("Peso: " + weight + " kg.");
78+
System.out.println("Altura: " + height + " m.");
79+
System.out.print("Tipos: ");
80+
for (String type : typeList)
81+
System.out.print(type + " ");
82+
System.out.println();
83+
84+
//Evoluciones
85+
request = HttpRequest.newBuilder(URI.create("https://pokeapi.co/api/v2/pokemon-species/" + id))
86+
.build();
87+
response = client.send(request, BodyHandlers.ofString());
88+
89+
if (response.statusCode() == 200){
90+
JsonObject specieData = JsonParser.parseString(response.body()).getAsJsonObject();
91+
String evoChainURL = specieData.get("evolution_chain").getAsJsonObject().get("url").getAsString();
92+
93+
request = HttpRequest.newBuilder(URI.create(evoChainURL))
94+
.build();
95+
response = client.send(request, BodyHandlers.ofString());
96+
97+
if (response.statusCode() == 200){
98+
JsonObject evolutionData = JsonParser.parseString(response.body()).getAsJsonObject();
99+
JsonElement auxElement = evolutionData.get("chain");
100+
List<String> evolutionList = new ArrayList<>();
101+
String basePokemonName = auxElement.getAsJsonObject()
102+
.get("species").getAsJsonObject()
103+
.get("name").getAsString();
104+
evolutionList.add(basePokemonName);
105+
for(JsonElement evolution : auxElement.getAsJsonObject().get("evolves_to").getAsJsonArray()){
106+
String aux = evolution.getAsJsonObject().get("species").getAsJsonObject().get("name").getAsString();
107+
evolutionList.add(aux);
108+
for (JsonElement evolution2 : evolution.getAsJsonObject().get("evolves_to").getAsJsonArray()){
109+
aux = evolution2.getAsJsonObject().get("species").getAsJsonObject().get("name").getAsString();
110+
evolutionList.add(aux);
111+
}
112+
}
113+
System.out.println("Línea evolutiva: " + evolutionList);
114+
//Juegos
115+
List<String> gameList = new ArrayList<>();
116+
for (JsonElement game : pokemonData.get("game_indices").getAsJsonArray())
117+
gameList.add(game.getAsJsonObject()
118+
.get("version").getAsJsonObject()
119+
.get("name").getAsString());
120+
System.out.print("Juegos: ");
121+
for (String gameName : gameList)
122+
System.out.print("[Pokémon " + gameName + "] ");
123+
System.out.println();
124+
}
125+
}
126+
}
127+
} catch (IOException e) {
128+
throw new RuntimeException(e);
129+
} catch (InterruptedException e) {
130+
throw new RuntimeException(e);
131+
}
132+
133+
}
134+
}
+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import java.util.Random;
2+
3+
public class Josegs95 {
4+
public static void main(String[] args) {
5+
//Ejercicio
6+
int n1 = 25;
7+
int n2 = 67;
8+
int result = sum(n1, n2, new Farewell() {
9+
@Override
10+
public void goodbye() {
11+
System.out.println("Los números han sido sumados. Hasta otra!");
12+
}
13+
});
14+
15+
System.out.println(n1 + " + " + n2 + " = " + result);
16+
17+
//Reto
18+
retoFinal();
19+
}
20+
21+
public static void retoFinal(){
22+
ClientMessages clientMessages = new ClientMessages() {
23+
@Override
24+
public void confirmed(String orderName) {
25+
System.out.println("Tu pedido '" + orderName + "' está confirmado.");
26+
}
27+
28+
@Override
29+
public void ready(String orderName) {
30+
System.out.println("Tu pedido '" + orderName + "' está listo para enviar.");
31+
}
32+
33+
@Override
34+
public void delivered(String orderName) {
35+
System.out.println("Tu pedido '" + orderName + "' ha sido enviado.");
36+
}
37+
};
38+
order("Hamburguesa doble", clientMessages);
39+
order("Ensalada de pasta", clientMessages);
40+
}
41+
42+
public static int sum(int n1, int n2, Farewell farewell){
43+
int result = n1 + n2;
44+
45+
farewell.goodbye();
46+
47+
return result;
48+
}
49+
50+
public static void order(String name, ClientMessages clientMessages){
51+
Random rnd = new Random();
52+
try{
53+
clientMessages.confirmed(name);
54+
Thread.sleep(rnd.nextInt(1, 11) * 1000);
55+
56+
clientMessages.ready(name);
57+
Thread.sleep(rnd.nextInt(1, 11) * 1000);
58+
59+
clientMessages.delivered(name);
60+
} catch (InterruptedException e) {
61+
throw new RuntimeException(e);
62+
}
63+
}
64+
65+
public interface Farewell{
66+
void goodbye();
67+
}
68+
69+
public interface ClientMessages{
70+
void confirmed(String orderName);
71+
void ready(String orderName);
72+
void delivered(String orderName);
73+
}
74+
}

0 commit comments

Comments
 (0)