Que saben de esto? o sera wasofi@ , ciberChorrad@s etc ?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
import java.util.Scanner;
public class ProfeAdmin {
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
String nom = new String("Docente2018");
String contra = new String("Docente2018");
String nom2 = new String("Administrador2018");
String contra2 = new String("Administrador2018");
System.out.println("1)Profesor");
System.out.println("2)Administrador");
int Opcion = leer.nextInt();
int count = 1; // uso de contador para contrar la oportunidades que son 3
switch (Opcion) {
case 1:
System.out.println("Ingrese su nombre de usuario: ");
String nombre = leer.next();
System.out.println("Ingrese su contraseña: ");
String contraseña = leer.next();
// establecer 3 oportunidades si se equivoca en el nombre o la contraseña
if (nom.equals(nombre) && contra.equals(contraseña)) {
mostrar("Correcto access granted");
} else {
if (!nom.equals(nombre)) { // se lee, "si nom no es igual a nombre" , dara true
System.out.println("Nombre incorrecto");
int countO = 3;
while (count <= 3) {
ShowData.showLn("Oportunidad " + (countO--));
ShowData.showLn("Ingrese Nombre");
final String newName = leer.next();
if (newName.equals(nom)) {
ShowData.showLn("Nombre Correcto");
break;
} else {
count++;
continue;
}
}
count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
// xq no entrara mas en el while
} else if (!contra.equals(contraseña)) { //si la contra no es igual a contraseña, dara true
System.out.println("Contraseña incorrecta");
int countO = 3;
while (count <= 3) {
mostrar("Oportunidad " + (countO--)); // decremento del count0 en 1
mostrar("Ingrese contraseña");
final String newPass = leer.next();
if (newPass.equals(contra)) {
mostrar("Contraseña correcta");
/*
Aqui introducir siguente menu
*/
break;
} else {
count++;
continue;
}
}
count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
// xq no entrara mas en el while
}
}
break;
case 2:
System.out.println("Ingrese su nombre de usuario: ");
String nombre2 = leer.next();
System.out.println("Ingrese su contraseña: ");
String contraseña2 = leer.next();
if (nom2.equals(nombre2) && contra2.equals(contraseña2)) {
mostrar("Correcto access granted");
} else {
if (!nom2.equals(nombre2)) { // se lee, "si nom no es igual a nombre" , dara true
System.out.println("Nombre incorrecto");
int countO = 3;
while (count <= 3) {
mostrar("Oportunidad " + (countO--));
mostrar("Ingrese Nombre");
final String newName = leer.next();
if (newName.equals(nom2)) {
mostrar("Nombre Correcto");
break;
} else {
count++;
continue;
}
}
count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
// xq no entrara mas en el while
} else if (!contra2.equals(contraseña2)) { //se lee, la contra no es igual a contraseña, dara true
System.out.println("Contraseña incorrecta");
int countO = 3;
while (count <= 3) {
mostrar("Oportunidad " + (countO--)); // decremento del count0 en 1
mostrar("Ingrese contraseña");
final String newPass = leer.next();
if (newPass.equals(contra2)) {
mostrar("Contraseña correcta");
/*
Aqui introducir siguente menu
*/
break;
} else {
count++;
continue;
}
}
count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
// xq no entrara mas en el while
}
}
break;
}
}
private static void mostrar(final String s) {
System.out.println(s);
}
//establecer oportunidades, son 3, creamos un metodo
private void filtrar() {
}
}
getUsersByID()
package foro;
import javax.swing.*;
import java.util.EnumSet;
import java.util.NoSuchElementException;
import java.util.Scanner;
enum Users {
DOCENTE(1),
ADMINISTRADOR(2);
private Integer id;
Users(final Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
//buscando los usarios
public static Users getUsersByID(final Integer id) {
return EnumSet.allOf(Users.class)
.stream()
.filter(object -> id.equals(object.id))
.findFirst() //detienela busqueda de las lista con la primera conincidencia
.get(); // retorna un NoSuchElementException en caso que no exista dicho id
}
}
public class ProfeAdmin2 {
private static final Scanner LEER = new Scanner(System.in);
private static final String ACCESS_GRANTED = "Access Granted.";
private static final String DATOS_INCORRECTOS = "Datos incorrectos.";
private String nom = new String("Docente2018");
private String contra = new String("Docente2018");
private String nom2 = new String("Administrador2018");
private String contra2 = new String("Administrador2018");
public ProfeAdmin2() {
System.out.println("1)Profesor");
System.out.println("2)Administrador");
final int opcion = LEER.nextInt();
try {
final Users users = Users.getUsersByID(opcion);
switch (users) {
case DOCENTE:
process(nom,contra); // pasando parametros correspondientes al metodo process para reutilizarlo
break;
case ADMINISTRADOR:
process(nom2,contra2); // pasando parametros correspondientes al metodo process para reutilizarlo
break;
}
}catch (final NoSuchElementException ex) {
JOptionPane.showMessageDialog(null,"No se encuentra el usuario " + opcion);
mostrar("Saliendo de la aplicacion");
System.exit(0);
}
}
private void process(final String paramNom, final String paramPass) {
System.out.println("Ingrese su nombre de usuario: ");
final String nombre = LEER.next();
System.out.println("Ingrese su contraseña: ");
final String contraseña = LEER.next();
// establecer 3 oportunidades si se equivoca en el nombre o la contraseña
int count = 0;
if (nombre.equals(paramNom) && contraseña.equals(paramPass)) {
mostrar(ACCESS_GRANTED);
/*
Pasar a otro menu aqui
*/
} else {
if(!nombre.equals(paramNom) && !contraseña.equals(paramPass)) {
mostrar(DATOS_INCORRECTOS);
ingresarNombre("", paramNom);
ingresarPass("", paramPass);
mostrar(ACCESS_GRANTED);
}
else if (!nombre.equals(paramNom)) { // se lee, "si nom no es igual a paramNom" , dara true
ingresarNombre("Nombre incorrecto",paramNom);
} else if (!contraseña.equals(paramPass)) { //si la contra no es igual a paramPass, dara true
ingresarPass("Contraseña incorrecta",paramPass);
}
}
}
private void ingresarNombre(final String msg,final String paramNom) {
System.out.println(msg);
int countO = 3;
int count = 0;
while (count <= 3) {
mostrar("Oportunidad " + (countO--));
mostrar("Ingrese Nombre");
final String newName = LEER.next();
if (newName.equals(paramNom)) {
mostrar("Nombre Correcto");
break;
} else {
count++;
continue;
}
}
count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
// xq no entrara mas en el while
}
private void ingresarPass(final String msg, final String paramPass) {
System.out.println(msg);
int countO = 3;
int count = 0;
while (count <= 3) {
mostrar("Oportunidad " + (countO--)); // decremento del count0 en 1
mostrar("Ingrese contraseña");
final String newPass = LEER.next();
if (newPass.equals(paramPass)) {
mostrar("Contraseña correcta");
break;
} else {
count++;
continue;
}
}
count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
// xq no entrara mas en el while
}
private <T> void mostrar(final T s) {
System.out.println(s);
}
public static void main(String ..._0x52) {
new ProfeAdmin2();
}
}
Cita de: z3nth10n en 16 Octubre 2018, 09:14 AM
Hola, en ese caso, significa que tiene la bandeja de entrada llena??
Más en concreto, es por @OmarHack, que hace ya un siglo que no hablo con el...
Un saludo.
Cita de: olimpico10 en 7 Octubre 2018, 17:36 PM
Buenas rub'n ,
estoy conociendo ahora Structs 2, y la verdad es que me está gustando como framework, Springframework no lo he trabajado aun.
En cuanto a tus indicaciones, muchas gracias, lo intentaré así. En cualquier caso, sabes como funciona exactamente Quartz internamente? Me refiero a como programa los trabajos. (Esto último es solo curiosidad )
Un saludo.
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
public class TimerClass implements Job {
public TimerClass() {
}
@Override
public void execute(JobExecutionContext jobExecutionContext) {
//Logica del mail aqui
try {
System.out.println("Hola");
}catch(JobExecutionException ex) {
}
}
}
public void contextInitialized(ServletContextEvent param){
new ExecTimer();
}
public class ExecTimer {
private JobDetail job;
private Trigger trigger;
private Scheduler scheduler;
private static final String TWENTY_SEC = "0/20 * * * * ?"; //cada 20 segundos
//seg,min,hora,dia,mes,diaSemana,Año(Opcional)
//todos los viernes a las 6:30AM
private static final String FECHA_FUTURA = "00 30 6 ? * FRI"; // http://www.cronmaker.com/
public ExecTimer() {
initTask();
}
private void initTask() {
try {
job = JobBuilder.newJob(TimerClass.class)
.withIdentity("EnviarMail")
.build();
trigger = TriggerBuilder
.newTrigger()
.withSchedule(CronScheduleBuilder.cronSchedule(FECHA_FUTURA))
.build();
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
@SpringBootApplication
public class Application {
public static void main(String ...blabla) {
SpringApplication.run(Application.class);
}
}
@Scheduled(cron= "00 30 6 ? * FRI")
public void enviarMail() {
System.out.println("Hola, ");
}
Cita de: 3n31ch en 5 Octubre 2018, 01:27 AM
Conste que yo conteste primero, así que te quedas eternamente agradecido de mi, no del usurpador de respuestas "rub'n".. (dicen que el mastica con la boca abierta).PD: rub'n, uno que se esfuerza por no ponerle el código completo y no hacerle la tarea... y tu llegas y lo arregas, hahahaha
package foro;
import java.util.Scanner;
public class TestDelObligatorioV2 {
private Scanner dato;
private int num, list;
private int datos[];
private String nombre[] = new String[0];
private String apellido[] = new String[0];
private String telefono[] = new String[0];
public TestDelObligatorioV2() {
}
public void iniciar() {
int n;
dato = new Scanner(System.in);
System.out.println("Bienvenido!...");
System.out.println("1- Ingreso de datos");
System.out.println("2- Listado de datos");
System.out.println("3- Buscar por nombre");
System.out.println("4- Buscar por telefono");
do {
System.out.print("Opcion: ");
n = dato.nextInt();
switch (n) {
case 1:
//Aca quiero llamar a op1
op1();
break;
case 2 :
op2();
break;
}
} while (n != 0 && n < 5);
} //Aca se van a cargar los datos y crear los vectores
public void op1() {
System.out.print("Cuantos datos se ingresaran? ");
num = dato.nextInt();
datos = new int[num];
nombre = new String[num];
apellido = new String[num];
telefono = new String[num];
dato.nextLine();
for (int i = 0; i < num; i++) {
System.out.print("Ingrese nombre: ");
nombre[i] = dato.nextLine();
System.out.print("Ingrese apellido: ");
apellido[i] = dato.nextLine();
System.out.print("Ingrese telefono: ");
telefono[i] = dato.nextLine();
}
} //Aca se van a mostrar los datos de los vectores
public void op2() {
System.out.println("Cuantos datos quiere ver? ");
list = dato.nextInt();
System.out.println("Listado de datos:");
System.out.println("--------------------------");
for (int i = 0; i < list; i++) {
System.out.println(apellido[i] + " " + nombre[i] + " - " + telefono[i]);
}
}
public static void main(String[] args) {
TestDelObligatorioV2 prueba = new TestDelObligatorioV2();
prueba.iniciar();
prueba.op1();
prueba.op2();
}
}
public void op2() {
System.out.println("Cuantos datos quiere ver? ");
list = dato.nextInt();
System.out.println("Listado de datos:");
System.out.println("--------------------------");
for (int i = 0; i < list; i++) {
System.out.println(apellido[i] + " " + nombre[i] + " - " + telefono[i]);
}
}
private static final String UPDATE = "UPDATE customer SET first_name=?, last_name=? WHERE id=?";
defaultTableModel.addColumn("Update item");
jTable.getColumn("Update item").setCellEditor(new UpdateItem());
jTable.getColumn("Update item").setCellRenderer(new BotonRenderizado());
jTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int seletedRow = jTable.getSelectedRow();
DefaultTableModel defaultTableModel = (DefaultTableModel) jTable.getModel();
jTextFieldID.setText(defaultTableModel.getValueAt(seletedRow, 0).toString());
jTextFirsName.setText(defaultTableModel.getValueAt(seletedRow, 1).toString());
jTextLastName.setText(defaultTableModel.getValueAt(seletedRow, 2).toString());
}
});
public class BotonRenderizado extends JButton implements TableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (value != null) {
setText("");
} else {
setText("update");
}
if (isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(UIManager.getColor("Button.background"));
}
return this;
}
}
private class UpdateItem extends AbstractCellEditor implements TableCellEditor {
private JButton editor = new JButton();
private Object value;
private int fila;
private JTable table;
public UpdateItem() {
updateItem();
}
private void updateItem() {
editor.addActionListener(e -> {
if (table != null) {
fireEditingStopped();
TableModel model = table.getModel();
if (model instanceof DefaultTableModel) {
try {
int getrow = table.getSelectedRow();
final Long id = Long.valueOf(jTextFieldID.getText());
final String firstName = jTextFirsName.getText();
final String lastName = jTextLastName.getText();
final PreparedStatement ps = connection.prepareStatement(UPDATE);
ps.setString(1, firstName);
ps.setString(2, lastName);
ps.setLong(3, id);
ps.executeUpdate();
//DbUtils
model.setValueAt(id, getrow, 0);
model.setValueAt(firstName, getrow, 1);
model.setValueAt(lastName, getrow, 2);
JOptionPane.showMessageDialog(null, "Updated");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
});
}
@Override
public boolean isCellEditable(EventObject e) {
return true;
}
@Override
public Object getCellEditorValue() {
return value;
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
this.table = table;
this.fila = row;
this.value = value;
if (value != null) {
editor.setText("");
} else {
editor.setText("update");
}
if (isSelected) {
editor.setForeground(table.getSelectionForeground());
editor.setBackground(table.getSelectionBackground());
} else {
editor.setForeground(table.getForeground());
editor.setBackground(UIManager.getColor("Button.background"));
}
return editor;
}
}
package foro;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.*;
import java.util.EventObject;
public class ConnectJDBCTest extends JFrame {
private static final String URL = "jdbc:mysql://localhost:3306/demo?useSSL=false";
private static final String USERNAME = "root"; //mala practica
private static final String PASSWORD = "password"; // mala practica
private static final String SELECT = "SELECT id, first_name, last_name FROM customer";
private static final String UPDATE = "UPDATE customer SET first_name=?, last_name=? WHERE id=?";
private static final String DELETE = "DELETE FROM customer where id = ";
private DefaultTableModel defaultTableModel = new DefaultTableModel();
private JTable jTable = new JTable(defaultTableModel);
private JScrollPane jScrollPane = new JScrollPane(jTable);
private Long id;
private String firstName;
private String lastName;
private JTextField jTextFieldID = new JTextField(10);
private JTextField jTextFirsName = new JTextField(10);
private JTextField jTextLastName = new JTextField(10);
private static Connection connection = null;
public ConnectJDBCTest() {
initLayout();
initConnection();
}
private void initLayout() {
defaultTableModel.addColumn("Id");
defaultTableModel.addColumn("First Name");
defaultTableModel.addColumn("Last Name");
defaultTableModel.addColumn("Update item");
jTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int seletedRow = jTable.getSelectedRow();
DefaultTableModel defaultTableModel = (DefaultTableModel) jTable.getModel();
jTextFieldID.setText(defaultTableModel.getValueAt(seletedRow, 0).toString());
jTextFirsName.setText(defaultTableModel.getValueAt(seletedRow, 1).toString());
jTextLastName.setText(defaultTableModel.getValueAt(seletedRow, 2).toString());
}
});
jTable.getColumn("Update item").setCellEditor(new UpdateItem());
jTable.getColumn("Update item").setCellRenderer(new BotonRenderizado());
final JPanel jPanel = new JPanel();
jPanel.setLayout(new BorderLayout());
jPanel.add(jScrollPane, BorderLayout.NORTH);
final JPanel jPanelSur = new JPanel();
jPanelSur.add(new JLabel("ID"));
jPanelSur.add(jTextFieldID);
jPanelSur.add(new JLabel("First Name"));
jPanelSur.add(jTextFirsName);
jPanelSur.add(new JLabel("Last Name"));
jPanelSur.add(jTextLastName);
jPanel.add(jPanelSur, BorderLayout.SOUTH);
add(jPanel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
pack();
setVisible(true);
}
private void initConnection() {
try {
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
final Statement statement = connection.createStatement();
final ResultSet resultSet = statement.executeQuery(SELECT);
while (resultSet.next()) {
id = resultSet.getLong("id");
firstName = resultSet.getString("first_name");
lastName = resultSet.getString("last_name");
defaultTableModel.addRow(new Object[]{id, firstName, lastName});
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private class UpdateItem extends AbstractCellEditor implements TableCellEditor {
private JButton editor = new JButton();
private Object value;
private int fila;
private JTable table;
public UpdateItem() {
updateItem();
}
private void updateItem() {
editor.addActionListener(e -> {
if (table != null) {
fireEditingStopped();
TableModel model = table.getModel();
if (model instanceof DefaultTableModel) {
try {
int getrow = table.getSelectedRow();
final Long id = Long.valueOf(jTextFieldID.getText());
final String firstName = jTextFirsName.getText();
final String lastName = jTextLastName.getText();
final PreparedStatement ps = connection.prepareStatement(UPDATE);
ps.setString(1, firstName);
ps.setString(2, lastName);
ps.setLong(3, id);
ps.executeUpdate();
//DbUtils
model.setValueAt(id, getrow, 0);
model.setValueAt(firstName, getrow, 1);
model.setValueAt(lastName, getrow, 2);
JOptionPane.showMessageDialog(null, "Updated");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
});
}
@Override
public boolean isCellEditable(EventObject e) {
return true;
}
@Override
public Object getCellEditorValue() {
return value;
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
this.table = table;
this.fila = row;
this.value = value;
if (value != null) {
editor.setText("");
} else {
editor.setText("update");
}
if (isSelected) {
editor.setForeground(table.getSelectionForeground());
editor.setBackground(table.getSelectionBackground());
} else {
editor.setForeground(table.getForeground());
editor.setBackground(UIManager.getColor("Button.background"));
}
return editor;
}
}
public static void main(String... blabla) {
final String osType = System.getProperty("os.name");
try {
if (osType.contains("Win")) {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} else if (osType.contains("Linux")) {
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
}
} catch (Exception ex) {
//do nothing
}
new Thread(() -> {
new ConnectJDBCTest();
}).start();
}
}
String rating = rate(e.getActionCommand(), comAction);
private ActionListener buttonListener = e -> {
// Generate a random action
int random = ThreadLocalRandom.current().nextInt(0, 3);
String comAction = actions[random];
// Rate the current situation
String rating;
if(e.getSource() == bTijeras) {
rating = rate("Tijeras", comAction);
}else if(e.getSource() == bPapel) {
rating = rate("Papel", comAction);
}else {
rating = rate("Piedra", comAction);
}
// Show a result alert
JOptionPane.showMessageDialog(null , rating ,"Resultado" , 1);
};
private static Set<String> correctas = new HashSet<>(); //
usa operador diamante <> de generics public String generaPalabra(int Facil)
{
int n;
n= (int)(Math.random()*4);
if(Facil==0)
return Normal[n];
else
return Dificil[n];
}
public String generaPalabra(final int facil) {
if (facil == 1) {
return Types.FACIL[SR.nextInt(Types.FACIL.length - 1)];
} else if (facil == 2) {
return Types.NORMAL[SR.nextInt(Types.NORMAL.length - 1)];
}
return Types.DIFICIL[SR.nextInt(Types.DIFICIL.length - 1)];
}
SR.nextInt()
para generar un numero aleatorio contenido en el largo del array fácil , y menos 1 para evitar java.lang.ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException: 18
palabraGenerada = Operacion.generaPalabra(1); // ver linea 90
public boolean checarLetra(char letra, String palabra) {
boolean mensaje = false;
for (int i = 0; i < palabra.length(); i++) {
if (letra == palabra.charAt(i)) {
mensaje = true;
break;
}
}
return mensaje;
}
public Set letrasPalabra(String palabra)
{
Set letras = new HashSet();
for (int i=0;i<palabra.length() ;i++)
{
if(palabra.charAt(i) != ' ')
{
letras.add(palabra.charAt(i));
}
}
return letras;
}
package adivinapalabras;
public final class Types {
public static final String FACIL[] = {"reir", "hola", "jugo", "papa", "pala", "pasa",
"para", "alma", "nada", "casa", "mama", "tele",
"mira", "tela", "bala", "cera", "tira"};
public static final String NORMAL[] = {"apretado", "avestruz", "ceramica",
"estimulo", "amarillo", "eleccion", "estrecho",
"invierno", "chatarra", "estrella"};
public static final String DIFICIL[] = {"indiscutible", "participante", "personalismo",
"perturbacion", "contundencia", "supervisamos", "buscapleitos",
"vinculandose"};
}
package adivinapalabras;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.security.SecureRandom;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
public class AdivinarPalabras {
public static BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
private static Set<String> correctas = new HashSet<>();
private static final SecureRandom SR = new SecureRandom();
private static String palabraGenerada = "";
public String generaPalabra(final int facil) {
//int n = (int) (Math.random() * 4); no hace falta
if (facil == 1) {
return Types.FACIL[SR.nextInt(Types.FACIL.length - 1)];
} else if (facil == 2) {
return Types.NORMAL[SR.nextInt(Types.NORMAL.length - 1)];
}
return Types.DIFICIL[SR.nextInt(Types.DIFICIL.length - 1)];
}
public boolean checarLetra(char letra, String palabra) {
boolean mensaje = false;
for (int i = 0; i < palabra.length(); i++) {
if (letra == palabra.charAt(i)) {
mensaje = true;
break;
}
}
return mensaje;
}
public Set<String> letrasPalabra(String palabra) {
//Set letras = new HashSet(); no hace falta
for (int i = 0; i < palabra.length(); i++) {
if (palabra.charAt(i) != ' ') {
correctas.add(String.valueOf(palabra.charAt(i)));
}
}
return correctas;
}
public String actualizaVisible(Set<String> correctas, String palabra, String visible) {
visible = "";
boolean bandera = false;
Iterator it = correctas.iterator();
for (int i = 0; i < palabra.length(); i++) {
while (it.hasNext()) {
char a = it.next().toString().charAt(0);
System.out.println("palabra " + a + " " + palabra.trim().charAt(i));
if (a == palabra.trim().charAt(i)) {
visible += a;
bandera = true;
break;
}
}
if (bandera == false) {
visible += "_";
}
bandera = false;
it = correctas.iterator();
}
return visible;
}
public static void main(String[] args) throws Exception {
System.out.println("Establezca el nivel de dificultad: ");
System.out.println("Facil(f)");
System.out.println("Normal(n)");
System.out.println("Dificil(d)");
String dificultad = entrada.readLine();
switch (dificultad) {
case "f":
AdivinarPalabras Operacion = new AdivinarPalabras();
try {
palabraGenerada = Operacion.generaPalabra(1);
System.out.println("Palabra generada: ****" + palabraGenerada);
System.out.println("teclea una letra de la palabra");
String letra = entrada.readLine();
char l = letra.charAt(0);
Operacion.checarLetra(l, palabraGenerada);
Operacion.letrasPalabra(palabraGenerada);
Operacion.actualizaVisible(correctas, letra, letra);
} catch (Exception ex) {
ex.printStackTrace(); // usado para ver la pila de error generada
System.out.println("No introdujo una letra valida " + ex.getMessage());
}
case "n":
}
}
}