Actividad Evaluativa 3

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

1 ACTIVIDAD EVALUATIVA 3

VICTOR MANUEL BOLIVAR ARIZA


FERNANDO CORONELL
MARZO 2024.

INSTITUCIÓN AREANDINA.
MODELOS DE PROGRAMACIÓN II
YASHIN ALBERTO RUEDA MATOS
Objetivos

1. En el ejercicio el objetivo lograr hacer una conexión del cliente con el


servidor con los temas de hilos y socket para después crear un juego.
Posteriormente, que el juego ofrezca las siguientes funcionalidades:

 Que el servidor adivine los números generados por él cliente.


 Que el juego contabilice los aciertos y desaciertos cuando finalice el
programa.
 Cuando el servidor lleve 3 desaciertos seguidos debe salir un mensaje de
“Perdiste”.
 Terminar la aplicación cuando el cliente envíe la palabra “terminar”.
Ejercicio

En el ejercicio se creó un proyecto llamado Cliente en el cual esta una carpeta


llamada src y dentro de esta hay dos carpetas, una llamada Servidor lo cual tiene un
archivo llamado Servidor; Y la otra carpeta llamada Cliente en el cual tiene un
archivo llamado Cliente, así como se muestra en la siguiente imagen:
En el archivo Servidor tenemos el siguiente código:

package Servidor;

import java.io.*;
import java.net.*;
import java.util.Random;

public class Servidor {


private static int fallos = 0;
private static int desaciertos = 3;
private static int desaciertos2 = 0;
private static int aciertos = 0;

public static void main(String[] args) {


try {
ServerSocket servidor = new ServerSocket(12345);
System.out.println("Esperando conexiones...");

while (true) {
Socket clientenuevo = servidor.accept();
System.out.println("Cliente conectado desde " +
clientenuevo.getInetAddress().getHostAddress());
cliente clientHandler = new cliente(clientenuevo);
clientHandler.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}

private static void sumafallos() {


fallos++;
if (fallos >= desaciertos) {
System.out.println("Perdiste!");
System.out.println("Desaciertos: "+ fallos);
System.out.println("Aciertos: " + aciertos);
System.exit(0);
}
}

private static void sumaaciertos() {


aciertos++;

static class cliente extends Thread {


private final Socket clientenuevo;
public cliente(Socket socket) {
this.clientenuevo = socket;
}

@Override
public void run() {
try {
BufferedReader in = new BufferedReader(new
InputStreamReader(clientenuevo.getInputStream()));
PrintWriter out = new PrintWriter(clientenuevo.getOutputStream(), true);

while (true) {
String guess = in.readLine();
if (guess.equals("terminar")) {
out.println("El juego ha terminado");
break;
}

int serverNumber = generarnumeros();


if (Integer.parseInt(guess) == serverNumber) {
out.println("¡Adivinaste!");
sumaaciertos();
} else {
sumafallos();
out.println("El número correcto era " + serverNumber);
}
}

clientenuevo.close();
} catch (IOException e) {
e.printStackTrace();
}
}

private int generarnumeros() {


Random random = new Random();
return random.nextInt(10) + 1;
}
}
}

Y en el archivo Cliente tenemos este otro código:

package cliente;

import java.io.*;
import java.net.*;

public class Cliente {


public static void main(String[] args) {
try {
Socket cliente = new Socket("localhost", 12345);
BufferedReader userInput = new BufferedReader(new
InputStreamReader(System.in));
BufferedReader in = new BufferedReader(new
InputStreamReader(cliente.getInputStream()));
PrintWriter out = new PrintWriter(cliente.getOutputStream(), true);

String response;
while (true) {
System.out.print("Adivina un número del 1 al 10 (o escribe 'terminar' para salir):
");
String guess = userInput.readLine();
out.println(guess);

response = in.readLine();
System.out.println(response);

if (guess.equals("terminar") || response.equals("Perdiste!")) {
out.println("El juego ha terminado");
break;
}
}

cliente.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Conclusiones

En este programa ofrece participar al cliente en un juego con el servidor de adivinar los
números del 1 al 9, si el cliente adivina le saldrá la frase “adivinaste”, pero si el cliente
fracasa 3 veces consecutivas le va a salir un mensaje de “Perdiste” con los aciertos u
desaciertos que haya realizado; También si el cliente quiere salirse del juego puede hacerlo
escribiendo la palabra terminar y le saldrá la frase “El juego a terminado”.

También podría gustarte