El 21 mayo, 2011 ·
0 Comentarios
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.0 , Ver 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Í.
El 24 marzo, 2011 ·
3 Comentarios
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;
}
}
El 24 marzo, 2011 ·
10 Comentarios
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