Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - jmoney

Páginas: [1]
1
¡Muchas gracias por toda tu ayuda Kabuto!!!!! <3

¡Ya terminé el programa! Te lo comparto para completar el thread. (si tienes algún otro feedback, por favor - adelante!)

Main
Código: [Seleccionar]
public class Main {

    public static void main(String[] args) {

        Deck mazo = new Deck();

        System.out.println("Deck de Cartas para Iniciar: " + mazo.getSize());

        for (Card elemento : mazo.getDeck()) {
            System.out.print(elemento + " / ");
        }
        System.out.println("\n");
        mazo.suflle();
        System.out.println("\n");
        mazo.head();
        System.out.println("\n");
        mazo.pick();
        System.out.println("\n");
        mazo.hand();

    }

}

Card
Código: [Seleccionar]
public class Card {

    private final String palo;
    private final String color;
    private final String valor;

    public Card(String palo, String color, String valor) {
        this.palo = palo;
        this.color = color;
        this.valor = valor;
    }

    @Override
    public String toString() {
        return "Palo: " + palo + " | " + "Color: " + color +
                " | " + "Valor: " + valor;
    }
}

Deck
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Deck {

    private final String[] paloDeck = {"corazones", "diamantes", "trébol", "picas"};
    private final String[] colorDeck = {"rojo", "negro"};
    private final String[] valorDeck = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "A", "J", "Q", "K"};

    private ArrayList<Card> deck;

    public Deck() {
        deck = new ArrayList<Card>();

        for (int palo = 0; palo < 2; palo++)
            for (int valor = 0; valor < valorDeck.length; valor++)
                deck.add(new Card(paloDeck[palo], colorDeck[0], valorDeck[valor]));

        for (int palo = 2; palo < 4; palo++)
            for (int valor = 0; valor < valorDeck.length; valor++)
                deck.add(new Card(paloDeck[palo], colorDeck[1], valorDeck[valor]));
    }

    public int getSize() {
        return deck.size();
    }

    public ArrayList<Card> getDeck() {
        return deck;
    }

    public void suflle() {
        Collections.shuffle(deck);
        System.out.println("Se mezcló el Deck.");
        for (Object elemento : deck) {
            System.out.print(elemento + " / ");
        }
    }

    public void head(){
        System.out.println(deck.get(0));
        deck.remove(0);
        System.out.println("Quedan " + deck.size() + " cartas");
    }


    public void pick() {
        Random random = new Random();
        System.out.println(deck.get(random.nextInt(deck.size())));
        deck.remove(random.nextInt(deck.size()));
        System.out.println("Quedan " + deck.size() + " cartas");
    }

    public void hand() {
        for(int i=0; i<=4; i++){
            System.out.println(deck.get(i));
        }
        for(int i=0; i<=4; i++){
            deck.remove(i);
        }
        System.out.println("Quedan " + deck.size()+ " cartas");
    }
}

Ya pude limpiar mucho la clase main()... honestamente se ve más bonita así... sin tanto código dentro de ella.

¡Gracias otra vez Kabuto!

2
Muchas gracias Kabuto!

Sé que estoy haciendo algo mal - pero no he podido salirme de este problema.

Antes de implementar los cambios que sugeriste, el código corría completo (pero con 104 cartas). Después de realizar los cambios, los cuales estoy 100% que los hice mal, ahora me surgen otros errores.



Card
Código: [Seleccionar]
import java.util.ArrayList;

public class Card {

    private String palo;
    private String color;
    private String valor;

    public Card(String palo, String color, String valor) {
        this.palo = palo;
        this.color = color;
        this.valor = valor;
    }

    public Card() {
    }

    public String getPalo() {
        return palo;
    }

    public void setPalo(String palo) {
        this.palo = palo;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getValor() {
        return valor;
    }

    public void setValor(String valor) {
        this.valor = valor;
    }

}


Deck
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Deck {

    public static void main(String[] args)
    {
        Card card = new Card();
         final String[] PALO = {"corazones", "diamantes", "trébol", "picas"};
         final String[] COLOR = {"rojo", "negro"};
         final String[] VALOR = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "A", "J", "Q", "K"};

        System.out.println("Deck de Cartas para Iniciar:");
        ArrayList<Card> deck = new ArrayList<Card>();
        for (int palo = 0; palo < 2; palo++) //Se usa PALO[0] y PALO[1]
            for (int valor = 0; valor < VALOR.length; valor++)
                deck.add(new Card(PALO[palo], COLOR[0], VALOR[valor]));
        for (int palo = 2; palo < 4; palo++) //Se usa PALO[2] y PALO[3]
            for (int valor = 0; valor < VALOR.length; valor++)
                deck.add(new Card(PALO[palo], COLOR[1], VALOR[valor]));

        for (Card elemento : deck) {
            System.out.print(elemento + " / ");
        }
        System.out.println("\n");
        suflle(deck);
        System.out.println("\n");
        head(deck);
        System.out.println("\n");
        pick(deck);
        System.out.println("\n");
        hand(deck);
    }

    public static void suflle(ArrayList deck){
        Collections.shuffle(deck);
        System.out.println("Se mezcló el Deck.");
        for (String elemento : (Iterable<String>) deck) {
            System.out.print(elemento + " / ");
        }
    }

    public static void head(ArrayList deck){
        System.out.println(deck.get(0));
        deck.remove(0);
        System.out.println("Quedan " + deck.size() + " cartas");
    }

    public static void pick(ArrayList  deck){
        Random random = new Random();
        System.out.println(deck.get(random.nextInt(deck.size())));
        deck.remove(random.nextInt(deck.size()));
        System.out.println("Quedan " + deck.size() + " cartas");
    }

    public static void hand(ArrayList deck){
        for(int i=0; i<=4; i++){
            System.out.println(deck.get(i));
        }
        for(int i=0; i<=4; i++){
            deck.remove(i);
        }
        System.out.println("Quedan " + deck.size()+ " cartas");
    }
}

Sé que me falta mucha práctica, pero donde comúnmente batallo es en organizar bien las clases y no juntar todo dentro de main(). :(


3
Hola a tod@s!

Estoy batallando con un programa que estoy trabajando - el programa debe de cumplir con lo siguente, entre varias cosas.

Citar
1. Escribe una clase llamada Deck, que representará el deck o conjunto de cartas de poker.
2. Escribe una clase llamada Card, que representará una carta de poker.
3. Deck deberá tener dos atributos de algún tipo definido en el Collection Framework.
4. Card deberá tener tres atributos.

    a. Palo: tréboles, corazones, picas o diamantes.
    b. Color: rojo, negro.
    c. Valor: 2 al 10, A, J, Q o K.

5. En Deck se inicializarán las 52 cartas de poker y las almacenará en uno de los atributos del tipo de estructura de datos seleccionada del Collection Framework.

En donde estoy batallando, es al inicializarán las 52 Cartas del Deck, si intendo inicializar con 52, Java me da el Error "ArrayIndexOutOfBoundsException".

-Tal cual y como esta el programa, inicializa con 104 Cartas.


Card

Código: [Seleccionar]
import java.util.ArrayList;

public class Card {

            ArrayList<String> deck = new ArrayList<String>();

            String[] palo = {"trébol", "corazones", "picas", "diamantes"};
            String[] color = {"rojo", "negro"};
            String[] valor = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "A", "J", "Q", "K" };


}



Deck

Código: [Seleccionar]
    public static void main(String[] args)
    {
        Card card = new Card();

        System.out.println("Deck de Cartas para Iniciar:");
        ArrayList<String> deck = new ArrayList<String>();
        for (int i = 0; i < 52; i++) {
            for (int j = 0; j < card.palo.length; j++) {
                deck.add(card.palo[j]+ " " + card.color[0] + " " + card.valor[i]);
                deck.add(card.palo[j]+ " " + card.color[1] + " " + card.valor[i]);
            }
        }

Gracias de antemano!

4
Muchas gracias Kabuto!  ;D

¡Todo funciono! Me acabo de dar cuenta que estaba buscando él .txt en el lugar incorrecto, entonces por eso pensaba que no se estaba actualizando  :-[

¡Ya también lo cambié el archivo a .csv!

Voy a seguir trabajando en el resto del programa, tengo varias clases que tengo que hacer. ¿Una preguntita, si quiero poder crear él .csv con su títulos de columna fijo, y que esos no se repitan - como se hace eso?

Actualmente, si agrego los títulos de las columnas, se están repitiendo cada vez que corro el programa.

Código: [Seleccionar]
    public static void  saveRecord(String id,String doctor,String especialidad, String filepath){
        try{
            FileWriter fw = new FileWriter(filepath, true);
            BufferedWriter bw = new BufferedWriter(fw);

            bw.write("#ID"+","+ "Doctor" + ","+ "Especialidad");
            bw.newLine();
            bw.write(id+","+doctor+","+especialidad);
            bw.newLine();
            bw.close();

            JOptionPane.showMessageDialog(null,"Record Saved!");
        }
        catch(Exception E){
            JOptionPane.showMessageDialog(null,"Record Not Saved!");

        }
    }

5
Hola a tod@s!

Estoy batallando con un programa de Java, no encuentro la manera de guardar la información que capturo a un .txt file.

(Soy nuevo en Java) - Cualquier ayuda seria agredecida! Les comparto mi código.

El código funciona, aunque no lo he terminado al 100%, pero quiero ver cómo es que puedo guardar la información que ingrese a un archivo de .txt. Tambien, es posible guardar en un archivo .csv en Excel?


MAIN
Código: [Seleccionar]
package Evidencia.java;
import javax.swing.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    private static ArrayList<Admin> administradores = new ArrayList<Admin>();
    private static Scanner scanner = new Scanner(System.in);


    public static void main(String[] args) {
        crearAdmins();
        Doctor nuevoDoctor = new Doctor();
        String filepath = "citas.txt";


        if (validarAcceso()) {
            System.out.println("\nUsuario autorizado\n");

            System.out.println("Cual es el Nombre del Doctor?");
            nuevoDoctor.setNombre(scanner.nextLine());

            System.out.println("Cual es el Apellido del Doctor?");
            nuevoDoctor.setApellidos(scanner.nextLine());

            System.out.println("Cual es el ID del Doctor?");
            nuevoDoctor.setId(scanner.nextLine());

            System.out.println("Cual es la Especialidad del Doctor?");
            nuevoDoctor.setEspecialidad(scanner.nextLine());

            System.out.println(nuevoDoctor.mostrar());

            saveRecord(nuevoDoctor.getId(),nuevoDoctor.getNombre(),nuevoDoctor.getEspecialidad(),filepath);
        }
        else
            System.out.println("\nUsuario no autorizado.");

        System.out.println("\n Fin del Programa");

    }

    private static void crearAdmins() {
        administradores.add(new Admin("Admin", "007"));
        administradores.add(new Admin("SuperAdmin", "ajit0oCt5!"));
    }

    private static boolean validarAcceso( ) {

        System.out.println("Accediendo al Programa");
        System.out.print("Usuario: ");
        String nombre = scanner.nextLine();
        System.out.print("Password: ");
        String password = scanner.nextLine();

        Admin admin = new Admin(nombre, password);

        return administradores.contains(admin);

    }

    public static void  saveRecord(String id,String doctor,String especialidad, String filepath){
        try{
            FileWriter fw = new FileWriter(filepath, true);
            BufferedWriter bw = new BufferedWriter(fw);
            PrintWriter pw = new PrintWriter(bw);

            pw.println(id+","+doctor+","+especialidad);
            pw.flush();
            pw.close();

            JOptionPane.showMessageDialog(null,"Record Saved!");
        }
        catch(Exception E){
            JOptionPane.showMessageDialog(null,"Record Not Saved!");

        }
    }
}

Doctor
Código: [Seleccionar]
package Evidencia.java;

import javax.swing.JOptionPane;

public class Doctor {

    private String id;
    private String nombre;
    private String apellidos;
    private String especialidad;

    public String generaLineaCSV() {
        return String.format("%s;%s;%s;%s\n", id, nombre, apellidos, especialidad);
    }

    public Doctor() {
        super();
        this.id = id;
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.especialidad = especialidad;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public String getEspecialidad() {
        return especialidad;
    }

    public void setEspecialidad(String especialidad) {
        this.especialidad = especialidad;
    }


    public String mostrar() {
        return "ID: " + id + "\nNombre: " + nombre
                + "\nApellidos: " + apellidos + "\nEspecialidad: " + especialidad;
    }

}

Admin
Código: [Seleccionar]
package Evidencia.java;

public class Admin {

    private String nombre;
    private String password;

    public Admin(String nom, String pass) {
        nombre = nom;
        password = pass;
    }

    @Override
    public boolean equals(Object objeto) {
        if (objeto instanceof Admin) {
            Admin otroAdmin = (Admin)objeto;
            if (nombre.equals(otroAdmin.nombre) && password.equals(otroAdmin.password))
                return true;
            else
                return false;
        }
        else
            return false;
    }

}

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".