domingo, 22 de febrero de 2015

123


Name Surname Age
Raja Dey 18
Mamata Sharma 20
Avijit Sharma 21
Sharanya Dutta 26
Nabin Roy 27

jueves, 16 de junio de 2011

Practicas de PLE

Publico en mi blog todas practicas que realice el primer año de curso. Cualquer interesado puede echar un vistazo o cojer una funcion para sus ideas. Espero que sirva para algo en vuestros programas.

Se trata de 5 juegos y 2 aplicaciones:
1. Laberinto
2. Runner (prototipo)
3. Batalla marina (Battle ship)
4. Juego de los tanques
5. Buscaminas
6. Chat
7. Matrix

viernes, 6 de mayo de 2011

Colocar un script "propio" entre las llamadas de unos programas mediante tuberias



Supongamos:
$ls | grep s
Esto va a retornar todos los nombres de archivos que tengan "s", pero ahora supongamos:
$ls | ./miscript.sh | grep s
¿Qué debería contener el archivo miscript.sh para que eso siga funcionado como si no estuviera?
La respuesta: que miscript.sh sea capaz de leer la salida de ls y pasarla a grep.

¿Como?
Bien, tenemos que diseñar un script que su entrada "por parámetro" sea fijo. Vamos ver en caso de comando grep.


grep - sin pasar ninguna opción, funcionaría:
$grep PATRÓN FICHERO, habrá que pasar DOS PARÁMETROS para que funcione el comando.
$ls | grep PATRÓN, en este caso 1 parámetro y salida de ls será como de "FICHERO", porqué esperará la salida de tubería.

$grep, saldrá un mensaje ayuda.

Bien, grep funcionara en tres modos: sin pasar nada (generará el mensaje de ayuda), con 1 parámetro (cuando antes está una tubería y al parámetro tomará como PATRON) y con 2 parámetros (cuando buscamos un patrón en un FICHERO) y cuando mas de 2 busca en todos FICHEROs pasados por parámetro.

Probamos esto:
$ls | grep - (numero de parametro 0) - NO FUNCIONA

$ls | grep s miscript.sh - (numero de parametro 2) busca PATRON en FICHERO, como si no estuviera "ls |"
$grep miscript.sh - (numero de parametro 1) NO FUNCIONA

Conclusión: Nuestro script debe tener una regla especial para determinar en que momento ejecutar una orden adecuada.

Volvemos a nuestra pregunta:
 $ls | ./miscript.sh | grep s
¿Como hacer que funcione esto?

Diseñamos miscript.sh de siguiente manera: Si a miscript.sh le pasamos un parámetro que sea el nombre fichero, imprime linea-por-linea su contenido. Si le pasamos mas de 1, generará mensaje de error. Y si no le pasamos nada, entonces la entrada será de una tubería.

if [ $# -gt 1 ]; then
     echo "Pasar solo un parametro"!
elif [ $# -eq 1 ]; then
     while read line; do echo -e "$line"; done < $1
else
     while read A; do
              echo $A
     done
fi


Si rompemos las reglas, nuestro script no funcionará bien. (Como en grep que hemos visto).
 
De este modo, funcionara bien:
$ls | ./miscript.sh | grep s   =  $ls | grep s
 
[Puede descargar el script aqui.]

jueves, 5 de mayo de 2011

Trabajo 3. Evaluación 1. Gestor de descargas de fotos con wget

Crear un script que descargue las diferentes imágenes del blog de viñetas http://blogs.publico.es/manel/ y las guarde en carpetas por meses y años.


Como opcional, he diseñado otro script que obtiene todos los vinculos a otras publicaciones y baja sus fotos.

jueves, 28 de abril de 2011

Noticias de Windows 8. History Vault

Se han filtrado unos imágenes de una aplicación de Windows 8 llamada "History Vault". Recordamos que a partir de Windows Vista  el sistema de restauración de archivos de sistema, claves de Registro y etc... con una interfaz de usuario se llama "Shadow Copy". Lo que permite esta tecnología, que los cambios a nivel de bloqueo en cualquier archivo del disco duro pueden monitorizarse y restaurarse, sin importar su ubicación.
"History Vault" tendrá una amigable interfaz que permitirá explorar versiones anteriores de archivos usando una “línea de tiempo” (la misma ventaja que actualmente tiene ahora "Time Machine" de Apple sobre las Shadow copies).

La primera noticia del desarrollo de Windows 8:
En noviembre de 2009, una diapositiva del ciclo de desarrollo de software mostrada por Microsoft en la Professional Developers Conference 2009 permitió entrever que la siguiente versión de Windows (conocida con el nombre clave temporal de "Windows 8") está programada para ser publicada alrededor de 2012.
 Para mas información de "History Vault" pulsar aquí.

lunes, 28 de febrero de 2011

Crear dimensiones en C con Ncurses

Imaginemos que tenemos un mapa de juego. Cuando lo imprimimos "tal cual", será de un caracter no se intiende nada.

Y si queremos dibujar de "dos caracteres," habrá que tocatear el codigo mucho. En un juego un caracter es nada interesante, cuando representando un caracter en 2 o mas dimensiones podemos dibujar objetos.

por ejemplo: 
$=un tanque en 1 caracter






Pero cuando dibujamos en 2 dimensiones  (5x5) parece mas a un tanque de juego.




Pues para dibujar el mapa en 2 dimensiones SIN TOCAR EL MAPA ORIGINAL, diseñamos esta función:

#include <stdio.h>
#include <string.h>
#include <curses.h>
#include <unistd.h>

void Dimension(int x, int y, char caracter, int Dimension);

int main(int argc, char** argv)
{
    initscr();
    char palabra[5][30]={"#####","#$  #","#  b#","#####"};
   
    int i,j;
        for (i=0;i<4;i++)
            for (j=0;j<strlen(palabra[i]);j++)
            Dimension(i,j,palabra[i][j],5);
        refresh();
       
    getch();
    endwin();
    return 0;
}

void Dimension(int x, int y, char caracter, int Dimension){
    int i,j;
    char tanque[25]={'$','$','$','$','$',
                    ' ','$','$','$',' ',
                    ' ','$','$','$','$',
                    ' ','$','$','$',' ',
                    '$','$','$','$','$',};

   int k=0;
    for (i=x*Dimension;i<x*Dimension+Dimension;i++){
        for (j=y*Dimension;j<y*Dimension+Dimension;j++){
             if (caracter=='$' && Dimension==5)
                 mvprintw(i+1,j+1,"%c",tanque[k++]);
             else mvprintw(i+1,j+1,"%c",caracter);
        }
    }
}
El resultado sería esta imagen.
Para poder compilar tiene que instalar primero Ncurses (Linux) o Pdcurses (Windows).