Síguenos en Facebook


Síguenos en Twitter

Compartir este tema:
El 21 mayo, 2011 · 0 Comentarios
  • Compartir en Delicious
  • Compartir en Digg
  • Compartir en Linkedin
  • Compartir en MySpace
  • Compartir en Technorati
  • Compartir en Tuenti

Nombre del Programa: SharkTube

Versión del Programa: 1.1 ( Renaissance )

Autor(es): Sebastián Castaño (.:WindHack:.)

Sistema Operativos: Multiplataforma.

- Lenguaje en que fue programado: Python 2.6.x

Licencia bajo la que fue liberado: Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0Ver Registro en SafeCreative.org

Fecha de lanzamiento: 12 de abril de 2011

Idioma(s): Español/Inglés

Funcionalidad/Tópico del Programa: Script para descargar directamente vídeos de YouTube.

Captura de pantalla del programa ejecutándose:

Para ver la información completa y los enlaces de descarga, clic AQUÍ.

 

Compartir este tema:
El 24 marzo, 2011 · 3 Comentarios
  • Compartir en Delicious
  • Compartir en Digg
  • Compartir en Linkedin
  • Compartir en MySpace
  • Compartir en Technorati
  • Compartir en Tuenti

Sudokux es una aplicación en Java, capaz de resolver en menos de un segundo cualquier sudoku que le propongas.

Nombre del Programa: Sudokux.

Versión del Programa: 1.0.

Autor(es): Pablo Martínez Insua (pablomi).

Sistema Operativo: Multiplataforma.

Lenguaje en que fue programado: Java 1.6.x.

Licencia bajo la que fue liberado: Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0. Ver registro en Safe Creative.

Fecha de lanzamiento: 06 – 09 – 2010.

Idioma(s): Español.

Captura:

Código:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
 
// Sudokux 1.0 - Pablo Martínez Insua
//
// Programa registrado.
// Licencia: -http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es_PE
 
public class Sudokux {
 
	private static int[][] casilla;
 
	JFrame ventana = new JFrame("Sudokux 1.0");
	JMenuBar menus = new JMenuBar();
	JMenu menuArchivo = new JMenu("Archivo");
	JMenu menuHelp = new JMenu("Ayuda");
	JMenuItem archivoSalir = new JMenuItem("Salir");
	JMenuItem helpAcercaDe = new JMenuItem("Acerca de");
 
	Font fontRespuesta = new Font("Verdana", Font.BOLD, 20);
	JButton resolver = new JButton("Resolver");
	JButton borrar = new JButton("Borrar");
 
	JTextField numeros[][] = new JTextField[10][10];
 
	String solucion;
 
	public static void main(String[] args){
 
		casilla = new int[10][10];
 
		for(int col=0; col<9; col++)
			for(int fil=0; fil<9 ; fil++)
				casilla[fil][col] = 0;
 
		Sudokux mostrarVentana = new Sudokux();
	}
 
	public Sudokux(){
		configurar();
		acciones();
	}
 
	void configurar(){
		menuArchivo.add(archivoSalir);
		menuHelp.add(helpAcercaDe);
		menus.add(menuArchivo);
		menus.add(menuHelp);
 
		for(int i=1; i<10; i++){
			for(int j=1; j<10; j++){
				numeros[i][j] = new JTextField(1);
				ventana.add(numeros[i][j]);
				numeros[i][j].setFont(fontRespuesta);
			}
		}	
 
		ventana.add(menus);
		ventana.setJMenuBar(menus);
		ventana.add(resolver);
		ventana.add(borrar);
		ventana.setVisible(true);
		ventana.setSize(300, 420);
		ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		ventana.setLayout(new FlowLayout(FlowLayout.CENTER));
	}
 
	void acciones(){
 
		archivoSalir.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				System.exit(0);
			}
		});
 
		helpAcercaDe.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				JOptionPane.showMessageDialog(null, "Programa: Sudokux\nAutor: Pablo Martínez Insua\nVersión: 1.0", "Acerca de", JOptionPane.INFORMATION_MESSAGE);
			}
		});
 
		resolver.addMouseListener(new MouseAdapter(){
			public void mousePressed(MouseEvent e){
				recoger_datos();
				resuelve(1,1);
				for (int col=1; col<10; col++){
            				for (int fil=1; fil<10 ; fil++){
						numeros[fil][col].setText(""+casilla[fil][col]);
					}
				}
 
			}
		});
		borrar.addMouseListener(new MouseAdapter(){
			public void mousePressed(MouseEvent e){
				for (int col=1; col<10; col++){
            				for (int fil=1; fil<10 ; fil++){
						numeros[fil][col].setText("");
						casilla[fil][col] = 0;
					}
				}
 
			}
		});
	}
 
 
	void recoger_datos(){
		int tiene = 1;
		for (int col=1; col<10; col++){
            		for (int fil=1; fil<10 ; fil++){
				if(!numeros[fil][col].getText().equals(""))
					casilla[fil][col] = Integer.parseInt(numeros[fil][col].getText());
					tiene = 0;
			}
		}
		if(tiene==1){
			JOptionPane.showMessageDialog(null, "Introduce el sudoku a resolver.", "Error", JOptionPane.WARNING_MESSAGE);
		}
	}
 
	private static boolean resuelve(int fil, int col){
 
        	boolean resuelto = false, casillaSegura = false;
        	int num = 1;
 
		if (casilla[fil][col]!=0)
        	{
            		casillaSegura = true;
            		num=9;
		}
 
		while(!resuelto && num<10)
		{
			if(!casillaSegura)
				casilla[fil][col] = num;
			if(es_valida(fil,col))
			{
				if(fil==9 && col==9)
					resuelto = true;
				else if (fil<9)
 					resuelto = resuelve(fil+1, col);
				else if(fil==9)
					resuelto = resuelve(1, col+1);
			}
			num++;
		}
 
		if (!resuelto && !casillaSegura)
			casilla[fil][col] = 0;
 
		return resuelto;
	}
 
	private static boolean es_valida(int fil, int col){
 
		for(int i=1; i<10; i++)
			if(fil!=i && casilla[fil][col] == casilla[i][col])
				return false;
 
		for (int i=1; i<10; i++)
			if (col!=i && casilla[fil][col] == casilla[fil][i] )
				return false;
 
		int cuadroColumna = (int)(Math.floor((col-1)/3)*3)+1,
		    cuadroFila = (int)(Math.floor((fil-1)/3)*3)+1;
 
		for(int i=cuadroColumna; i<cuadroColumna +3; i++)
			for (int j=cuadroFila; j<cuadroFila+3; j++)
				if(col!=i && fil!=j && casilla[fil][col] == casilla[j][i])
					return false;
 
		return true;
	}
}
Compartir este tema:
  • Compartir en Delicious
  • Compartir en Digg
  • Compartir en Linkedin
  • Compartir en MySpace
  • Compartir en Technorati
  • Compartir en Tuenti

Un completo tutorial donde se explica como hacer una actualización no oficial del Motorola DEXT (MB200) a la versión 2.1 de Android. Especialmente dedicada a personas Venezolanas que posean este modelo, debido a características únicas del mismo en este País.

+

Para ver el tutorial click AQUI