elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 [3]
21  Programación / .NET (C#, VB.NET, ASP) / Una ayudadita no? peleandome con un gato grandote c# en: 21 Abril 2008, 23:34 pm
Hola denuevo yo miren haora estoy haciendo un juego en c# (visual estudio 2008)donde es una espesie de gato gigante.

bien les explico las reglas puesto que supongo que algunos no lo conoce a por cierto el juego existe solo que no se como se llama  :xD

reglas

1.- consta de 2 jugadores,  cada uno tiene un turno alternamente pueden presionar un boton que se marcara segun el jugador X ú O en cualquier parte del tablero en su turno

2.- si en algun momento un jugador junta 5 de sus simbolos horizontales, verticales o diagonales gana sin ningu espacio vasio u otro caracter me refiero XXXXX bien no XXXOXX o algo hasi

miren miproblema esta en determinar el ganador podria hacerse con if pero tardaria milenios  :o esta es una forma de como pensaba hacerle y esta linea iria en la funcion GanaO
(ya lo veran en el codigo) por ejemplo:
Código:
if (button1.Text.Equals("O") && button2.Text.Equals("O") && button3.Text.Equals("O") && button4.Text.Equals("O") && button5.Text.Equals("O"))
{
messagebox.show ("Gana jugador O");
}
else if () /*y asi hasta acabar con todas las posibles victorias de O y X*/
{
}

a por cierto mis bottones estan ordenados de izquierda a derecha de arriva a bajo es decir
button1  2  3..
13  14 15 ..

para mas informacion

y no se si alguien prodria ayudarme a redusir ese codigo que pretendo hacer


bien una imagen de tablero y formulario



bien el codigo del formulario

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            radioButton1.Select();      /*seleciona de inicio radio button 1*/
            radioButton1.Enabled = false;        /*inabilita el radio button para que no alteren los turnos*/
            radioButton2.Enabled = false;
        }

        private void sendN(object sender, EventArgs e)  /*Cada vez que un boton del grupo tablero es clikeado viene a este void */
        {
            Button bnt = (Button)sender;    /* bnt gana las propiedader de el boton para luego pasarselas al boton clikeado*/
            if (radioButton1.Checked)   /*viene a esta linea del codigo si es el turno de X*/
            {
                bnt.Text = "X";      /*Aqui se escribe el texto en este caso X por que es el turno de X*/
                bnt.Enabled = false;    /*aqui el boton queda inutilizado para que ninguno de los jugadores pueda clikearlo otra vez*/
                radioButton2.Select();  /*aqui seleccionamos radiobutton2 o jugador "O" que es el proximo en el turno*/
                label3.Text = "Es el turno de el jugador O";    /*aqui escribimos en un label cual es el turno correspondiente*/
            }
            else if (radioButton2.Checked)  /*el proseso anterior es el mismo solo que haora ablamos del jugador O*/
            {
                bnt.Text = "O";
                bnt.Enabled = false;
                radioButton1.Select();
                label3.Text = "Es el turno de el jugador X";
            }
            this.GanaO();   /*aqui revisa si O es el ganador*/
            this.GanaX();   /*aqui revisa si X es el ganador*/
        }

        private void SALIR_Click(object sender, EventArgs e)
        {
            DialogResult a = MessageBox.Show("¿De verdad desas salir de esta aplicacion?", "Confimacion", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                MessageBoxDefaultButton.Button2, MessageBoxOptions.ServiceNotification);     /*MUESTRA UN CUADRO DE DIALOGO EL CUAL PREGUNTA SI SALIR*/
            if (a == DialogResult.Yes)  /*si presiono que si viene a este if*/
            {
                Dispose();      /*Cierra la aplicacion*/
            }
            else
            {
                /*no hace nada*/
            }
        }
       
        private void GanaX()
        {
            // aqui se supone que deberia verificar si X gana
        }
        private void GanaO()
        {
            //aqui se que verifica si O gano
        }

    }
}


bien cuando se clikea un boton del tablero va a la funcion sendN por el evento click_event
pues de antemano se los agradezco si tiene dudas con el codigo o el metodo pues aqui estoy

graxx ;D



22  Programación / .NET (C#, VB.NET, ASP) / Re: [Propuesta] Curso online C# en: 10 Abril 2008, 20:16 pm
en que nivel se encuentran en este lenguaje de programacion.

Bueno la verdad ya se un poco de prog orientada a objeto (Flata polimorfismo, herencia y otras cosas un poco mas avanzadas) y graficas (me faltan varios conponentes solo se los basicos) lo que me hace falta o de plano no se nada es conexion con bases de datos y progamacion .net

pero seria bueno desde lo basico para los que aun no saben mucho del lenguaje lo aprendan.
23  Programación / .NET (C#, VB.NET, ASP) / Re: [Propuesta] Curso online C# en: 9 Abril 2008, 21:23 pm
Que ondas :D

Se me ocurre y si alguien mas sigue con el proyecto ya que es una buena propuesta y seria malo que no se llevase acabo por lo tanto seria bueno que alguien que sepa c# se ofresca para dar el curso dejar tareas y ejersisios de analisis en fin guiarnos y si hackpsycho aun esta interesado pues que tambien de el curso claro cuando se desocupe :¬¬
24  Programación / .NET (C#, VB.NET, ASP) / Re: Cuadro de texto C# en: 29 Marzo 2008, 19:05 pm
 ;D grss por tu respuesta ya pude hacer lo que queria pero no quiero vovelme a estrellar :xD con una pared cuando tenga que hacer otro tipo de cosas como en una tabla o otro objeto de ambiente grafico conoses algun tutorial o manual que me guie al programar con interface grafica??
25  Programación / .NET (C#, VB.NET, ASP) / Cuadro de texto C# en: 28 Marzo 2008, 20:14 pm
Hola que tal!! :D

Miren estoy tratando de enviar un cuardro de texto en el cual se le informa al usuario aserca de un error (Excepcion) pero no tengo idea  :huh: de como ponerla ya que apenas estoy familiarizandome con la interface garfica de C# (Si alguien tan caritativo tenga un manual de como trabajar con C# y sus interface grafica)
o en su defecto un codigo para hacer mandar un cuadro de texto.

a otra cosa Estoy trabajando con visual c# 2008 para mayor referencia

Gracias espero su respuesta.
26  Programación / Java / Re: Duda con con codigo chat ayuda!!! en: 26 Marzo 2008, 21:07 pm
Oky gracias por la ayuda me sirvio mucho

Tratare de no tener tantos errores :xD  de dedo pero ese error no me dejeba ver la los otros ya que uso el net beans de nuevo gracias  ;D
27  Programación / Java / Duda con con codigo chat ayuda!!! en: 26 Marzo 2008, 19:38 pm
haber aqui va de nuevo moderadores

Mi problema es con Java ya que estoy intentando hacer un programa donde haya una comunicacion entre un cliente y un servidor (un chat) el problema es que ya revise mi codigo de arriba para ver si habia algun error e consultado con maestros y en otros foros y en teorial en el codigo fuente no deberia haber ningun erro vien este es el problema

tengo dos programas un que es el cliente en este no hay ningun problema pero lo pondre para mayor referencia

 codigo de el cliente
Código:
import java.io.PrintStream;
import java.net.*;
import java.awt.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.event.*;

public class ClienteGraficoChat extends JFrame
{
    private static final int PUERTO=9000;
    protected Socket socketCliente;
    private Sesion sesion;
    protected PrintStream salida;
    protected BufferedReader entrada;
   
    private JPanel contentPane;
    private JTextField txtMensaje=new JTextField ();
    protected JTextArea txtArea=new JTextArea ();
    private JButton btnCerrar=new JButton ();
    private JScrollPane scrollPane = new JScrollPane ();
    private JLabel lblTexto = new JLabel ();
   
    public ClienteGraficoChat ()
    {
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        iniciar();
        try
        {
            socketCliente = new Socket ("Local Host",PUERTO);
            salida = new PrintStream(socketCliente.getOutputStream());
            entrada = new BufferedReader (new InputStreamReader(socketCliente.getInputStream()));
            sesion = new Sesion(this);
            System.out.println("Arrancando cliente");           
        }
        catch (IOException e2)
        {
            if (socketCliente != null)
            {
                try
                {
                    socketCliente.close();
                }
                catch (IOException e3)
                {
                }
               
               
            }
            errorFatal(e2,"Fallo Al Intentar Conectar Con el servidor");
        }       
    }
     
    public static void main (String []args) throws IOException, ConnectException
     {
        try
        {
            System.out.println("Arrancando CLiente");
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            ClienteGraficoChat f=new ClienteGraficoChat ();
       
            Dimension ScreenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension frameSize = f.getSize();
       
            if (frameSize.height > ScreenSize.height)
            {
                frameSize.height =ScreenSize.height;           
            }
            if (frameSize.width > ScreenSize.width)
            {
                frameSize.width = ScreenSize.width;
            }
            f.setLocation((ScreenSize.height - frameSize.height)/2, (ScreenSize.width - frameSize.width)/2);
            f.show();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            errorFatal(e,"Error al Gestionar la apariencioa y el estilo");
        }
       
     }
    private void iniciar ()
        {
            contentPane = (JPanel)this.getContentPane();
            txtMensaje.setBounds(new Rectangle(117,49,256,29));
            txtMensaje.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e)
                {
                    txtMensaje_actionPerformed(e);
                }
            });
            contentPane.setLayout(null);
            this.setSize(new Dimension (400,400));
            this.setTitle("Chat");
            btnCerrar.setText("CERRAR");
            btnCerrar.setBounds(new Rectangle(150, 323, 76 ,29));
            btnCerrar.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e)
                {
                    btnCerrar_actionPerformed(e);
                }
            });
            scrollPane.setBounds(new Rectangle(9,106,370,205));
            lblTexto.setBackground(Color.red);
            lblTexto.setFont(new java.awt.Font("Dialogo",1,12));
            lblTexto.setText("Escriba el texto");
            lblTexto.setBounds(new Rectangle(17, 49, 87, 32));
            contentPane.add(txtMensaje, null);
            contentPane.add(btnCerrar, null);
            contentPane.add(lblTexto, null);
            contentPane.add(scrollPane, null);
            scrollPane.getViewport().add(txtArea, null);
      }   
     
    protected void processWindowEvent(WindowEvent e)
    {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING)
        {
            salida.println("Desconectar");
        }
    }
    void txtMensaje_actionPerformed(ActionEvent e)
    {
        salida.println(txtMensaje.getText());
        txtMensaje.setText("");
    }
    void btnCerrar_actionPerformed(ActionEvent e)
    {
        salida.println("Desconectar");
    }
    private static void errorFatal(Exception exception,String mensajeError)
    {
        exception.printStackTrace();
        JOptionPane.showMessageDialog(null,"Error Fatal"+System.getProperty("line.separator")+mensajeError, "Informacion para el usuario",JOptionPane.WARNING_MESSAGE);
        System.exit(-1);
    }
    class Sesion extends Thread
    {
        private ClienteGraficoChat clienteChat;
        public Sesion(ClienteGraficoChat clienteChat) throws IOException
        {
            this.clienteChat = clienteChat;
            start();
        }
       
        public void run()
        {
            String fin1="Adios";
            String fin2="Hasta la vista";
            String linea = null;
            try
            {
                while ((linea=clienteChat.entrada.readLine())!=null)
                {
                    clienteChat.txtArea.setText(clienteChat.txtArea.getText()+linea+System.getProperty("linea Separador"));
                    if (linea.equals(fin1)|| linea.equals(fin2))
                    {
                        try
                        {
                            this.sleep(5000);
                        }
                        catch (java.lang.InterruptedException e1)
                        {
                           
                        }
                        break;
                    }
                }                   
            }
        catch (IOException e2)
        {
            e2.printStackTrace();
        }
            finally
            {
                try
                {
                    clienteChat.dispose();
                    clienteChat.entrada.close();
                    clienteChat.salida.close();
                    clienteChat.socketCliente.close();
                }
           
                catch (IOException e3){}
                System.exit(-1);
            }
            }
        }

    }

Bien el problema esta en el servidor ya que el la linea 108 hay un error de compilacion el cual me dice (no se encuentra identificado).

Código:

import java.io.*;
import java.net.*;
import javax.swing.*;
import java.util.*;

public class ServidorChat
{
    private static final int PUERTO=9000;
    protected static final int TIEMPO_DE_DESCONEXION_AUTOMATICA=600000;
    private ServerSocket socketServidor;   
   
    public static void main (String []args)
    {
        new ServidorChat();       
    }
   
    public ServidorChat()
    {
        System.out.println("Arrancando Servidor por el puerto "+PUERTO);
        arrancarServidor();
        procesarClientes();       
    }
   
    private void arrancarServidor()
    {
        try
        {
            socketServidor = new ServerSocket(PUERTO);
            System.out.println("El servidor esta en marcha escuchando por el puerto: "+PUERTO);
        }
        catch (java.net.BindException e1)
        {
            String mensaje="No se puede arrancar el servido es posible que el puerto "+PUERTO+" este ocupado";
            errorFatal(e1,mansaje);
        }
        catch (java.lang.SecurityException e2)
        {
            String mansaje="No se puede arrancar el servidor es posible que el puerto "+PUERTO+" Tenga restricciones de seguridad";
            errorFatal(e2,mensaje);
        }
        catch (IOException e3)               
        {
            String mansaje="IMposible arrancar el servidor";
            errorFatal(e3,mensaje);
        }
    }
    private void procesarClientes()
    {
        Socket socketCliente =null;
        while (true)
        {
            try
            {
                socketCliente = socketServidor.accept();
                try
                {
                    new ThreadServidor(socketCliente);
                }
                catch (IOException e1)
                {
                    if (socketCliente !=null)
                    {
                        try
                        {
                            socketCliente.close();
                        }
                        catch (IOException e2)
                        {
                           
                        }
                    }
                }
            }
            catch (java.lang.SecurityException e3)
            {
                if (socketServidor !=null)
                {
                    try
                    {
                        socketServidor.close();
                    }
                    catch (IOException e4)
                    {
                        //nothing
                    }
                }
                String mensaje="Con su configuracion de seguridad, Los clientes no podran conectarse por el puerto "+PUERTO;
                errorFatal(e3,mensaje);               
            }
            catch (IOException e5)
            {
                //no se hace nada por que no se pudo crear el socket
            }
        }
    }
    public static void errorFatal(Exception excepcion, String mensajeError)
    {
        excepcion.printStackTrace();
        JOptionPane.showMessageDialog(null,"Error Fatal."+System.getProperty("line.separator")+mensajeError,"Informacion Para el usuario",JOptionPane.WARNING_MESSAGE);
        System.exit(-1);
    }
}

class ThreadServidor extends Thread
{
    private String nombreCliente;
    private static String historial = "C:historial.txt";
    private static clientesActivos = new ArryList();
    private Socket socket;
    private BufferedReader entrada;
    private PrintWriter salida;
   
    public ThreadServidor(Socket socket) throws IOException
    {
        this.socket = socket;
        PrintWriter salidaArchivo=null;
        salida=new PrintWriter(socket.getOutputStream(),true);
        entrada = new BufferedReader (new InputStreamReader(socket.getInputStream()));
        escribirHistorial("conexion desde la direccion");
        start();       
    }
   
    public void run()
    {
        String textoUsuario="";
        try
        {
            salida.println("> Bienvenido a este chat.");
            salida.println(">introduce tu nombre");
            nombreCliente = (entrada.readLine()).trim();
            if ((nombreCliente.equals(""))||(nombreCliente==null))
            {
                nombreCliente="invitado";
            }
            Iterator it= clientesActivos.iterator();
            while (it.hasNext())
            {
                if (nombreCliente.equals(((ThreadServidor)it.next()).nombreCliente))
                {
                    nombreCliente = nombreCliente + socket.getPort();
                    break;
                }
            }
            anyadirConexion(this);
            salida.println(">Se le asigno el alias de"+nombreCliente);
            socket.setSoTimeout(ServidorChat.TIEMPO_DESCONEXION_AUTOMATICA);
            while ((textoUsuario=entrada.readLine())!=null)
            {
                if ((textoUsuario=entrada.equals("DESCONECTAR")))
                {
                    salida.println("****************adios************");
                    break;
                }
                else if ((textoUsuario.equals("LISTAR")))
                {
                    escribirCliente (this,">"+clientesActivos());
                }
                else
                {
                    escribirATODOS(nombreCliente+">"+textoUsuario);
                }
            }
        }
        catch (java.io.InterruptedIOException e1)
        {
            escribirCliente(this,">"+"Se paso el tiempo:Conexion Cerrada");
            escribirCliente(this,">"+"Si desea continuar, abra otra sesion");
            escribirHistorial("desconexion Involuntaria por fin de tiempo desde la direccion:");
        }
        catch (IOException e2)
        {
            escribirHistorial("desconexion Involuntaria desde la direccion:");
        }
        finally
        {
            eliminarConexion(this);
            limpiar();
        }
    }
    private void limpiar ()
    {
        if (entrada !=null)
        {
            try
            {
                entrada.close();
            }
            catch(IOException e1)
            {
               
            }       
        }
        if (salida!=null)
        {
            salida.close();
            salida=null;
        }
        if (socket !=null)
        {
            try
            {
                socket.close();
            }
            catch (IOException e2)
            {
               
            }
            socket=null;
        }       
    }
   
    private static synchronized void eliminarConexion(ThreadServidor threadServidor)
    {
        clientesActivos.remove(threadServidor);
    }
   
    private static synchronized void anyadirConexion(ThreadServidor threadServidor)
    {
        clientesActivos.add(threadServidor);
    }
   
    private synchronized void escribirATODOS(string textoUsuario)
    {
        Iterator it=clientesActivos.iterator();
        while (it.hasNext())
        {
            ThreadServidor tmp=(ThreadServidor) it.next();
            if (!(tmp.equals(this)))
           
                escribirCliente(tmp.textoUsuario);
           
        }
       
    }
   
    private synchronized void escribirCliente(ThreadServidor threadServidor,String textoUsuario)
    {
        (threadServidor.salida).println(textoUsuario);
    }
   
    private static synchronized StringBuffer clientesActivos()
    {
        StringBuffer cadena = new StringBuffer();
        for (int i=o;i<clientesActivos.size();i++)
        {
            ThreadServidor tmp = (ThreadServidor) (clientesActivos.get(i));
            cadena.append((((ThreadServidor) clientesActivos.get(i)).nombreCliente)).append("||");
        }
        return cadena;
    }
   
    private synchronized void escribirHistorial(String mensaje)
    {
        PrintWriter salidaArchivo=null;
        try
        {
            salidaArchivo = new PrintWriter(new BufferedWriter(new FileWriter(historial,true)));
            salidaArchivo.println(mensaje+""+socket.getInetAddress().getHostName()+" Por el puerto "+socket.getPort()+" en la fecha "+new Date());
        }
        catch(IOException e1)
        {
            System.out.prinln("Fallo en el archivo historial.");
        }
        finally
        {
            if (salidaArchivo !=null)
            {
                salidaArchivo.close();
                salidaArchivo=null;
            }
        }
    }
}



bueno lo que no e podido descifrar es por que  no la encuentra puesto que se declara un arreglo para reunir todos los clientes conectados al servidor y regresa cadena como resultado entonces no se por que el compilador me dice que no encuentra el identificador

posdata:

Espero deverdad que alguien pueda ayudamer deverdad se los agradecería mucho

posdata2:

Porfavor moderadores ya revise el reglamento y en ningun momento vi que faltara a ninguna regla esepto el de no poner mi codigo en las etiquetas y que por eso borraran el tema, por favor mi unico deseo es aprender y ser parte de foro por lo tanto espero que respeten mi duda y no borren el tema por su atencion gracias.
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines