El proyecto Aeroseth es distribuido porque se ejecuta dentro de una red de computadoras que comparten información a través de un protocolo.
Cada computadora puede tener o no la misma hora, y aunque sea distinta, la comunicación entre las mismas no se ve distorsionada, puesto que se sincronizan utilizando mensajes.
Las computadoras envían y reciben información, con el objetivo de satisfacer las necesidades de la empresa Aeromar, entre las cuales están: la falta de un control en la entrada y salida de piezas, un registro de las bitácoras realizadas por los mecánicos, la planeación de las fechas de reparación y de los vuelos y la administración del personal.
Si dentro de la red, alguna computadora falla o presenta un desperfecto, las demás no resultan afectadas por el error.
Se pueden agregar varias computadoras al sistema original sin que haya errores entre las mismas, y pueden poseer distintas características, pero de preferencia deben poseer Windows 7.
Las unidades de procesamiento pueden realizar distintas tareas, como navegar por internet, reproducir música o escribir algún texto, al mismo tiempo que se comunican entre ellas.
viernes, 29 de noviembre de 2013
miércoles, 20 de noviembre de 2013
Clase ClienteJuego
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ahorcado;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.JOptionPane;
/**
*
* @author Alumnos
*/
public class ClienteJuego extends Frame implements ActionListener{
private TextField letra = new TextField(1);
private Label palabra = new Label("");
private Label letras_ocupadas = new Label("");
private Label ganador = new Label("");
private Button ok = new Button("Ingresar");
private Graphics g;
private int comparador[];
private String palabra_actual = "";
private int errores = 0;
Label turno;
Label turno2;
int jugador;
BufferedReader entrada;
PrintWriter salida;
public ClienteJuego(){
super("Juego del Ahorcado");
Socket socket = new Socket();
try {
socket = new Socket("localhost",2250);
entrada = new BufferedReader(new InputStreamReader(socket.getInputStream()));
salida = new PrintWriter(socket.getOutputStream(), true);
Thread lectura = new Thread( new Lector());
lectura.start();
System.out.println("Conexion Establecida con Servidor");
} catch (IOException e) {
System.err.println("No se pudo establecer la conexión");
System.exit(1);
}
setLayout(new BorderLayout());
setBackground(Color.yellow);
setResizable(false);
Canvas canvas = new Canvas();
canvas.setSize(200,300);
Panel p = new Panel(new GridLayout(5,1));
Panel p1 = new Panel();
turno = new Label("Es Turno del jugador 1 : ");
turno2 = new Label("Es Turno del jugador 1 : ");
p1.add(turno);
p1.add(letra);
p1.add(ok);
Panel p2 = new Panel();
p2.add(new Label("Palabra : "));
p2.add(palabra);
Panel p3 = new Panel();
p3.add(new Label("Ha ingresado las siguientes Letras : "));
p.add(p1);p.add(p2);p.add(p3);p.add(letras_ocupadas);p.add(ganador);
add("West",canvas);
add("Center",p);
ok.addActionListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent w){
System.exit(0);
}});
setSize(500,330);
show();
g = canvas.getGraphics();
}
@Override
public void actionPerformed(ActionEvent e) {
String l = String.valueOf( letra.getText().charAt(0) );
System.out.println("La letra a mandar es: " + l);
salida.println(l.toUpperCase());
System.out.println("Mandando Letra a salida");
}
public static void main( String args[] ){
new ClienteJuego();
}
private class Lector implements Runnable{
String cadena;
@Override
public void run() {
try {
while(true){
cadena = entrada.readLine();
if( cadena != null ){
System.out.println("Recibiendo distinto de nulo en cliente");
String caracter = String.valueOf(cadena.charAt(2));
System.out.println("Caracter es: " + caracter );
if( cadena.charAt(0) == 'N' ){
jugador = cadena.charAt(1) - 47;
setTitle("JUGADOR " + jugador);
palabra_actual = cadena.substring(2).trim();
String aux = "";
System.out.println(palabra_actual);
comparador = new int[ palabra_actual.length() ];
System.out.println("llega");
for(int i = 0; i < palabra_actual.length(); i++){
aux = aux + "_ ";
comparador[i] = 0;
}
System.out.println("el auxiliar es: " + aux);
palabra.setText(aux);
}else if( cadena.charAt(0) == 'C' ){
if( (cadena.charAt(4)-47) == jugador ){
letra.enable(true);
turno.setText("Ingresa una letra:");
}else{
letra.enable(false);
turno.setText("Espera tu turno:");
}
String aux="";
for(int i = 0; i < comparador.length; i++){
if(caracter.equals(""+palabra_actual.charAt(i)) ){
comparador[i] = 1;
}
if(comparador[i]==1)
aux += palabra_actual.charAt(i);
else
aux += "_ ";
}
palabra.setText(aux);
}else if( cadena.charAt(0) == 'I' ){
System.out.println("el jugador es: " + jugador );
System.out.println("Y el caracter es: " + (cadena.charAt(4)-47) );
if( (cadena.charAt(4)-47) == jugador ){
letra.enable(true);
turno2.setText("Ingresa una letra: ");
}else{
turno2.setText("Espera tu turno:");
letra.enable(false);
}
turno.setText("");
errores++;
String aux = letras_ocupadas.getText();
if( aux.indexOf(caracter) < 0 )
aux += " " + caracter;
letras_ocupadas.setText(aux);
switch(errores){
case 1:
g.setColor(Color.red);
g.fillRect(110,220,30,10);break;
case 2:
g.fillRect(120,20,10,200);break;
case 3:
g.fillRect(70,20,50,10);break;
case 4:
g.fillRect(68,20,5,20);break;
case 5:
g.setColor(Color.black);
g.drawOval(50,40,40,40);break;
case 6:// Cuerpo
g.drawLine(70,80,70,150);break;
case 7:// Brazos
g.drawLine(70,100,40,100);break;
case 8:
g.drawLine(70,100,100,100);break;
case 9:// Piernas
g.drawLine(70,150,40,190);break;
case 10:
g.drawLine(70,150,100,190);
ganador.setText("Perdiste!!!");
palabra.setText(palabra_actual);
}
}else if(cadena.charAt(0) == 'P' ){
String puntos = cadena.substring(1);
JOptionPane.showMessageDialog(null, "Has Perdido con " + puntos);
}else{
String puntos = cadena.substring(1);
JOptionPane.showMessageDialog(null, "Has Ganado con " + puntos);
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("CONEXIÓN FINALIZADA");
System.exit(0);
}
}
}
}
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ahorcado;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.JOptionPane;
/**
*
* @author Alumnos
*/
public class ClienteJuego extends Frame implements ActionListener{
private TextField letra = new TextField(1);
private Label palabra = new Label("");
private Label letras_ocupadas = new Label("");
private Label ganador = new Label("");
private Button ok = new Button("Ingresar");
private Graphics g;
private int comparador[];
private String palabra_actual = "";
private int errores = 0;
Label turno;
Label turno2;
int jugador;
BufferedReader entrada;
PrintWriter salida;
public ClienteJuego(){
super("Juego del Ahorcado");
Socket socket = new Socket();
try {
socket = new Socket("localhost",2250);
entrada = new BufferedReader(new InputStreamReader(socket.getInputStream()));
salida = new PrintWriter(socket.getOutputStream(), true);
Thread lectura = new Thread( new Lector());
lectura.start();
System.out.println("Conexion Establecida con Servidor");
} catch (IOException e) {
System.err.println("No se pudo establecer la conexión");
System.exit(1);
}
setLayout(new BorderLayout());
setBackground(Color.yellow);
setResizable(false);
Canvas canvas = new Canvas();
canvas.setSize(200,300);
Panel p = new Panel(new GridLayout(5,1));
Panel p1 = new Panel();
turno = new Label("Es Turno del jugador 1 : ");
turno2 = new Label("Es Turno del jugador 1 : ");
p1.add(turno);
p1.add(letra);
p1.add(ok);
Panel p2 = new Panel();
p2.add(new Label("Palabra : "));
p2.add(palabra);
Panel p3 = new Panel();
p3.add(new Label("Ha ingresado las siguientes Letras : "));
p.add(p1);p.add(p2);p.add(p3);p.add(letras_ocupadas);p.add(ganador);
add("West",canvas);
add("Center",p);
ok.addActionListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent w){
System.exit(0);
}});
setSize(500,330);
show();
g = canvas.getGraphics();
}
@Override
public void actionPerformed(ActionEvent e) {
String l = String.valueOf( letra.getText().charAt(0) );
System.out.println("La letra a mandar es: " + l);
salida.println(l.toUpperCase());
System.out.println("Mandando Letra a salida");
}
public static void main( String args[] ){
new ClienteJuego();
}
private class Lector implements Runnable{
String cadena;
@Override
public void run() {
try {
while(true){
cadena = entrada.readLine();
if( cadena != null ){
System.out.println("Recibiendo distinto de nulo en cliente");
String caracter = String.valueOf(cadena.charAt(2));
System.out.println("Caracter es: " + caracter );
if( cadena.charAt(0) == 'N' ){
jugador = cadena.charAt(1) - 47;
setTitle("JUGADOR " + jugador);
palabra_actual = cadena.substring(2).trim();
String aux = "";
System.out.println(palabra_actual);
comparador = new int[ palabra_actual.length() ];
System.out.println("llega");
for(int i = 0; i < palabra_actual.length(); i++){
aux = aux + "_ ";
comparador[i] = 0;
}
System.out.println("el auxiliar es: " + aux);
palabra.setText(aux);
}else if( cadena.charAt(0) == 'C' ){
if( (cadena.charAt(4)-47) == jugador ){
letra.enable(true);
turno.setText("Ingresa una letra:");
}else{
letra.enable(false);
turno.setText("Espera tu turno:");
}
String aux="";
for(int i = 0; i < comparador.length; i++){
if(caracter.equals(""+palabra_actual.charAt(i)) ){
comparador[i] = 1;
}
if(comparador[i]==1)
aux += palabra_actual.charAt(i);
else
aux += "_ ";
}
palabra.setText(aux);
}else if( cadena.charAt(0) == 'I' ){
System.out.println("el jugador es: " + jugador );
System.out.println("Y el caracter es: " + (cadena.charAt(4)-47) );
if( (cadena.charAt(4)-47) == jugador ){
letra.enable(true);
turno2.setText("Ingresa una letra: ");
}else{
turno2.setText("Espera tu turno:");
letra.enable(false);
}
turno.setText("");
errores++;
String aux = letras_ocupadas.getText();
if( aux.indexOf(caracter) < 0 )
aux += " " + caracter;
letras_ocupadas.setText(aux);
switch(errores){
case 1:
g.setColor(Color.red);
g.fillRect(110,220,30,10);break;
case 2:
g.fillRect(120,20,10,200);break;
case 3:
g.fillRect(70,20,50,10);break;
case 4:
g.fillRect(68,20,5,20);break;
case 5:
g.setColor(Color.black);
g.drawOval(50,40,40,40);break;
case 6:// Cuerpo
g.drawLine(70,80,70,150);break;
case 7:// Brazos
g.drawLine(70,100,40,100);break;
case 8:
g.drawLine(70,100,100,100);break;
case 9:// Piernas
g.drawLine(70,150,40,190);break;
case 10:
g.drawLine(70,150,100,190);
ganador.setText("Perdiste!!!");
palabra.setText(palabra_actual);
}
}else if(cadena.charAt(0) == 'P' ){
String puntos = cadena.substring(1);
JOptionPane.showMessageDialog(null, "Has Perdido con " + puntos);
}else{
String puntos = cadena.substring(1);
JOptionPane.showMessageDialog(null, "Has Ganado con " + puntos);
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("CONEXIÓN FINALIZADA");
System.exit(0);
}
}
}
}
Clase ServidorJuego
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ahorcado;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Alumnos
*/
public class ServidorJuego {
public static final int PUERTO = 2250;
Socket jugadores[] = new Socket[100];
int puntos[] = new int[100];
BufferedReader entrada[] = new BufferedReader[100];
PrintWriter salida[] = new PrintWriter[100];
Thread hilos[] = new Thread[100];
String palabras[] = {"Victor","Francisco","investigacion", "Archivo",
"Computacion","Astronomia","Ingenieria",
"Felicidad","Salud","Dinero","Energia",
"Fuerza","Flojera"};
public String actual = "lkdjakj";
String respuesta;
int contador;
int errores;
int turnoActual;
int numJugadores = 4;
Random generador = new Random();
public static void main( String args[] ){
new ServidorJuego().inicia();
}
public ServidorJuego(){
actual = palabras[generador.nextInt(palabras.length-1)].toUpperCase();
}
public void inicia(){
System.out.println(actual);
try {
ServerSocket servidor = new ServerSocket(PUERTO);
for( int i = 0; i < numJugadores; i++ ){
jugadores[i] = new Socket();
System.out.println("Esperando jugador " + i+1);
jugadores[i] = servidor.accept();
System.out.println("Aceptado ");
System.out.println("Palabra: " + actual );
entrada[i] = new BufferedReader( new InputStreamReader( jugadores[i].getInputStream() ) );
salida[i] = new PrintWriter(jugadores[i].getOutputStream(), true);
salida[i].println("N" + i + " " + actual);
}
System.out.println("Palabra: " + actual );
System.out.println("Turno Actual " + turnoActual );
while( contador < actual.length() && errores < 10 ){
System.out.println(" contador de correctas = " + contador);
System.out.println("Numero de errores: " + errores );
String cadena = entrada[turnoActual].readLine();
if( cadena != null ){
System.out.println("Distinto de nulo");
char letra = cadena.charAt(0);
System.out.println("Letra recibida: " + letra );
if( actual.indexOf(letra) != -1){
System.out.println("Letra Encontrada");
int temp = 0;
for( int i = 0; i < actual.length(); i++ ){
if( actual.charAt(i) == letra ){
temp++;
}
}
System.out.println("Se encontro " + temp + " veces");
contador += temp;
System.out.println("El contador es " + contador);
puntos[turnoActual] += (temp*10);
turnoActual++;
if( turnoActual == numJugadores ){
turnoActual = 0;
}
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("C " + letra + " " + turnoActual+1);
}
}else{
puntos[turnoActual] -= 2;
errores++;
System.out.println("No se encontro, hay: " + errores);
turnoActual++;
if( turnoActual == numJugadores ){
turnoActual = 0;
}
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("I " + letra + " " + turnoActual+1);
}
}
System.out.println("Turno ahora es: " + turnoActual );
}
}
if( errores == 10 ){
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("P " + puntos[i] );
}
}else{
int max = -1;
int posicion = -1;
for( int i = 0; i < numJugadores; i++ ){
if( puntos[i] > max ){
max = puntos[i];
posicion = i;
}
}
for( int i = 0; i < numJugadores; i++ ){
if( i == posicion ){
salida[i].println("G " + puntos[i] );
}else{
salida[i].println("P " + puntos[i] );
}
}
}
} catch (IOException ex) {
Logger.getLogger(ServidorJuego.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ahorcado;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Alumnos
*/
public class ServidorJuego {
public static final int PUERTO = 2250;
Socket jugadores[] = new Socket[100];
int puntos[] = new int[100];
BufferedReader entrada[] = new BufferedReader[100];
PrintWriter salida[] = new PrintWriter[100];
Thread hilos[] = new Thread[100];
String palabras[] = {"Victor","Francisco","investigacion", "Archivo",
"Computacion","Astronomia","Ingenieria",
"Felicidad","Salud","Dinero","Energia",
"Fuerza","Flojera"};
public String actual = "lkdjakj";
String respuesta;
int contador;
int errores;
int turnoActual;
int numJugadores = 4;
Random generador = new Random();
public static void main( String args[] ){
new ServidorJuego().inicia();
}
public ServidorJuego(){
actual = palabras[generador.nextInt(palabras.length-1)].toUpperCase();
}
public void inicia(){
System.out.println(actual);
try {
ServerSocket servidor = new ServerSocket(PUERTO);
for( int i = 0; i < numJugadores; i++ ){
jugadores[i] = new Socket();
System.out.println("Esperando jugador " + i+1);
jugadores[i] = servidor.accept();
System.out.println("Aceptado ");
System.out.println("Palabra: " + actual );
entrada[i] = new BufferedReader( new InputStreamReader( jugadores[i].getInputStream() ) );
salida[i] = new PrintWriter(jugadores[i].getOutputStream(), true);
salida[i].println("N" + i + " " + actual);
}
System.out.println("Palabra: " + actual );
System.out.println("Turno Actual " + turnoActual );
while( contador < actual.length() && errores < 10 ){
System.out.println(" contador de correctas = " + contador);
System.out.println("Numero de errores: " + errores );
String cadena = entrada[turnoActual].readLine();
if( cadena != null ){
System.out.println("Distinto de nulo");
char letra = cadena.charAt(0);
System.out.println("Letra recibida: " + letra );
if( actual.indexOf(letra) != -1){
System.out.println("Letra Encontrada");
int temp = 0;
for( int i = 0; i < actual.length(); i++ ){
if( actual.charAt(i) == letra ){
temp++;
}
}
System.out.println("Se encontro " + temp + " veces");
contador += temp;
System.out.println("El contador es " + contador);
puntos[turnoActual] += (temp*10);
turnoActual++;
if( turnoActual == numJugadores ){
turnoActual = 0;
}
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("C " + letra + " " + turnoActual+1);
}
}else{
puntos[turnoActual] -= 2;
errores++;
System.out.println("No se encontro, hay: " + errores);
turnoActual++;
if( turnoActual == numJugadores ){
turnoActual = 0;
}
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("I " + letra + " " + turnoActual+1);
}
}
System.out.println("Turno ahora es: " + turnoActual );
}
}
if( errores == 10 ){
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("P " + puntos[i] );
}
}else{
int max = -1;
int posicion = -1;
for( int i = 0; i < numJugadores; i++ ){
if( puntos[i] > max ){
max = puntos[i];
posicion = i;
}
}
for( int i = 0; i < numJugadores; i++ ){
if( i == posicion ){
salida[i].println("G " + puntos[i] );
}else{
salida[i].println("P " + puntos[i] );
}
}
}
} catch (IOException ex) {
Logger.getLogger(ServidorJuego.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Suscribirse a:
Entradas (Atom)