Latest Entries »

Blog de Shersoft

La idea de este blog es aparte de “contar mi vida”  es la de poner noticias de  mis Aficiones.

Podríamos resumir que toda la cultura de Japón, lugar donde me empezó a fascinar de pequeño, aparte de esta son la de hardware de ordenadores, sistemas operativos y tecnología en general .

( Recomiendo: www.hispamp3.comwww.noticias3d.com ).

Espero vuestros comentarios sobre el blog, vuestra opinión importa!!

Por seguridad, vuestros comentarios tardan un día (O “MAS”) en hospedar-se al blog hasta la verificación del emissor y procedencia del mensaje e tema.

Ah y bienvenido!!


———————————————————————————————–
Normas del BLOG 
La información contenida en este blog y en cualquiera de sus anexos es confidencial y sólo debe ser leída por la persona o entidad a la que se le a dado el pertinente acreditativo. Si ha entrado o accedido a este blog por error, le rogamos que lo cierre inmediatamente, así como todas las copias del mismo, de su sistema y lo comunique al administrador o creador del blog pertinente. Su uso no autorizado está prohibido y podría ser ilegal. Si usted no es el destinatario o acreditativo no debe, directa o indirectamente, usar, revelar, difundir, imprimir o copiar ninguna de las partes de este Blog.

 

Undir La Flota (Visual Basic) Ejecutado en Excel.

Const ancho = 9
Const alto = 9
Const maxmin = 10
Dim tablero(alto, ancho) As Integer
Dim jugador As Integer
Dim inicio As Long
Dim fin As Long
Dim iniciado As Boolean

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub aviso(texto As String)
Range(“K1″).Value = texto
End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub comprobar_zona_central()
Dim i, fil, col As Integer
Dim minas As Integer

For fil = 2 To alto – 1
For col = 2 To ancho – 1
If tablero(fil, col) <> -2 Then
minas = 0
For i = col – 1 To col + 1
If tablero(fil – 1, i) = -2 Then minas = minas + 1
If tablero(fil + 1, i) = -2 Then minas = minas + 1
Next i
If tablero(fil, col – 1) = -2 Then minas = minas + 1
If tablero(fil, col + 1) = -2 Then minas = minas + 1
If minas > 0 Then tablero(fil, col) = minas
End If
Next col
Next fil
End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub comprobar_primera_ultima_fila()
Dim i, col As Integer
Dim minas As Integer

For col = 2 To ancho – 1
If tablero(1, col) <> -2 Then
minas = 0
For i = col – 1 To col + 1
If tablero(2, i) = -2 Then minas = minas + 1
Next i
If tablero(1, col – 1) = -2 Then minas = minas + 1
If tablero(1, col + 1) = -2 Then minas = minas + 1
If minas > 0 Then tablero(1, col) = minas
End If
If tablero(alto, col) <> -2 Then
minas = 0
For i = col – 1 To col + 1
If tablero(alto – 1, i) = -2 Then minas = minas + 1
Next i
If tablero(alto, col – 1) = -2 Then minas = minas + 1
If tablero(alto, col + 1) = -2 Then minas = minas + 1
If minas > 0 Then tablero(alto, col) = minas
End If
Next col
End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub comprobar_primera_ultima_columna()
Dim i, fil As Integer
Dim minas As Integer

For fil = 2 To alto – 1
If tablero(fil, 1) <> -2 Then
minas = 0
For i = fil – 1 To fil + 1
If tablero(i, 2) = -2 Then minas = minas + 1
Next i
If tablero(fil – 1, 1) = -2 Then minas = minas + 1
If tablero(fil + 1, 1) = -2 Then minas = minas + 1
If minas > 0 Then tablero(fil, 1) = minas
End If
If tablero(fil, ancho) <> -2 Then
minas = 0
For i = fil – 1 To fil + 1
If tablero(i, ancho – 1) = -2 Then minas = minas + 1
Next i
If tablero(fil – 1, ancho) = -2 Then minas = minas + 1
If tablero(fil + 1, ancho) = -2 Then minas = minas + 1
If minas > 0 Then tablero(fil, ancho) = minas
End If
Next fil
End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub comprobar_cuatro_esquinas()
Dim i, col As Integer
Dim minas As Integer

If tablero(1, 1) <> -2 Then
minas = 0
If tablero(1, 2) = -2 Then minas = minas + 1
If tablero(2, 1) = -2 Then minas = minas + 1
If tablero(2, 2) = -2 Then minas = minas + 1
If minas > 0 Then tablero(1, 1) = minas
End If
If tablero(1, ancho) <> -2 Then
minas = 0
If tablero(1, ancho – 1) = -2 Then minas = minas + 1
If tablero(2, ancho – 1) = -2 Then minas = minas + 1
If tablero(2, ancho) = -2 Then minas = minas + 1
If minas > 0 Then tablero(1, ancho) = minas
End If
If tablero(alto, 1) <> -2 Then
minas = 0
If tablero(alto – 1, 1) = -2 Then minas = minas + 1
If tablero(alto – 1, 2) = -2 Then minas = minas + 1
If tablero(alto, 2) = -2 Then minas = minas + 1
If minas > 0 Then tablero(alto, 1) = minas
End If
If tablero(alto, ancho) <> -2 Then
minas = 0
If tablero(alto – 1, ancho – 1) = -2 Then minas = minas + 1
If tablero(alto – 1, ancho) = -2 Then minas = minas + 1
If tablero(alto, ancho – 1) = -2 Then minas = minas + 1
If minas > 0 Then tablero(alto, ancho) = minas
End If
End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub marcar_celda()
Dim fil, col, marcadas As Integer

If ActiveCell.Interior.ColorIndex > 0 Then

ActiveCell.Interior.ColorIndex = 38
marcadas = marcadas + 1
fil = ActiveCell.Row
col = ActiveCell.Column
tablero(fil, col) = -3
End If

End Sub

Sub desmarcar_celda()
ActiveCell.Interior.ColorIndex = 19
End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub vaciar_celdas(ByVal fil As Integer, ByVal col As Integer)

Cells(fil, col).Interior.ColorIndex = 0         ‘Pone la celda en blanco
If tablero(fil, col) > 0 Then                   ‘Muestra el número en la celda
Cells(fil, col).Value = tablero(fil, col)
ElseIf tablero(fil, col) = 0 Then               ‘Busca celdas vacías adyacentes
tablero(fil, col) = -1  ‘El valor -1 indica una celda vacía destapada

If fil > 1 And col > 1 Then vaciar_celdas fil – 1, col – 1          ‘Arriba izquierda
If fil > 1 And col < ancho Then vaciar_celdas fil – 1, col + 1      ‘Arriba derecha
If fil < alto And col > 1 Then vaciar_celdas fil + 1, col – 1       ‘Abajo izquierda
If fil < alto And col < ancho Then vaciar_celdas fil + 1, col + 1   ‘Abajo derecha

If fil > 1 Then vaciar_celdas fil – 1, col      ‘Arriba
If fil < alto Then vaciar_celdas fil + 1, col   ‘Abajo
If col > 1 Then vaciar_celdas fil, col – 1      ‘Izquierda
If col < ancho Then vaciar_celdas fil, col + 1  ‘Derecha
End If
End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub destapar_celda()
Dim fil, col, fi, co As Integer

If iniciado = False Then
inicio = Timer
iniciado = True
End If
”Range(“P2″).Value = inicio
fil = ActiveCell.Row
col = ActiveCell.Column
If tablero(fil, col) = -2 Then  ‘Fin del juego si pisamos una mina
For fi = 1 To alto
For co = 1 To ancho
If tablero(fi, co) <> -2 Then
Cells(fi, co).Interior.ColorIndex = 0
If tablero(fi, co) > 0 Then Cells(fi, co).Value = tablero(fi, co)
Else
Cells(fi, co).Interior.ColorIndex = 38
Cells(fi, co).Value = “X”
End If
Next co
Next fi

”Range(“P2″).Value = inicio
fin = CLng(Timer) – inicio
Range(“O2″).Value = 10
Range(“P2″).Value = fin & ” Seg.”

MsgBox (“GAME OVER!”)

ElseIf tablero(fil, col) > 0 Then   ‘Muestra el número en la celda
Cells(fil, col).Interior.ColorIndex = 0
Cells(fil, col).Value = tablero(fil, col)
tablero(fil, col) = -1      ‘La celda ha sido destapada

End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub final_juego()
Dim fi, col As Integer

For fi = 1 To alto
For co = 1 To ancho
If tablero(fi, co) = -1 Then
destapas = destapas + 1
ElseIf tablero(fi, co) = -2 And Cells(fi, co).Interior.ColorIndex = 38 Then
minas = minas + 1
End If
Next co
Next fi
If destapadas = alto * ancho – maxmin And minas = maxmin Then
fin = CLng(Timer) – inicio
Range(“O2″).Value = minas
Range(“P2″).Value = fin & ” Seg.”
MsgBox (“WINNER!”)
End If

Else
vaciar_celdas fil, col  ‘Muestra celda vacía y las adyacentes
End If

End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub colocar_numeros()
Dim fil, col As Integer
Dim minas As Integer

For fil = 1 To alto
For col = 1 To ancho
If tablero(fil, col) <> -2 Then
minas = 0
If fil > 1 And col > 1 Then If tablero(fil – 1, col – 1) = -2 Then minas = minas + 1          ‘Arriba izquierda
If fil > 1 And col < ancho Then If tablero(fil – 1, col + 1) = -2 Then minas = minas + 1       ‘Arriba derecha
If fil < alto And col > 1 Then If tablero(fil + 1, col – 1) = -2 Then minas = minas + 1       ‘Abajo izquierda
If fil < alto And col < ancho Then If tablero(fil + 1, col + 1) = -2 Then minas = minas + 1    ‘Abajo derecha

If fil > 1 Then If tablero(fil – 1, col) = -2 Then minas = minas + 1      ‘Arriba
If fil < alto Then If tablero(fil + 1, col) = -2 Then minas = minas + 1   ‘Abajo
If col > 1 Then If tablero(fil, col – 1) = -2 Then minas = minas + 1      ‘Izquierda
If col < ancho Then If tablero(fil, col + 1) Then minas = minas + 1  ‘Derecha
tablero(fil, col) = minas
End If
Next col
Next fil
End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Sub comenzar_juego()
Dim i, fil, col As Integer

Erase tablero
iniciado = False
Range(“P2″).Value = “”
Range(“O2″).Value = “”

Range(“A1:I9″).Clear
Range(“A1:I9″).HorizontalAlignment = xlCenter
Range(“A1:I9″).VerticalAlignment = xlCenter
Range(“A1:I9″).Borders.ColorIndex = 9
Range(“A1:I9″).Interior.ColorIndex = 19

For i = 1 To maxmin          ‘Colocar 10 minas al azar
Randomize
fil = Int(alto * Rnd + 1)
Randomize
col = Int(ancho * Rnd + 1)
If tablero(fil, col) = 0 Then
tablero(fil, col) = -2  ‘El valor -2 indica una mina
Cells(fil, col).Interior.ColorIndex = 38
Else
i = i – 1
End If
Next
colocar_numeros
‘comprobar_zona_central
‘comprobar_primera_ultima_fila
‘comprobar_primera_ultima_columna
‘comprobar_cuatro_esquinas

End Sub

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

Estas lineas separan los subs, teneís que borrarlos, visual basic no lo tolera como comentario (el Comentario es  (–>  ‘ <– ))

View full article »

JAVA, TEST RED (JDK, ECLIPSE)

Enunciado:
- Tenemos aparatos que se encienden y se apagan
 - cada aparato tiene un consumo cuando esta encendido
 - una red tiene un conjunto de aparatos enchufados
 - cada red puede proporcionar un maximo de energia
 - una red puede tener distintos sistemas de seguridad
 - Un sistema de seguridad, al activarse, ha de mirar si el
   consumo de la red es mayor al soportado
   Si es asi, ha de apagar los aparatos necesarios para
   volver a los limites de seguridad.
 - Puede haber distintas implementaciones de sistemas de seguridad
   (que apaguen primero los mas potentes, que apagen primero los menos potentes, etc...)
 - El sistema no puede apagar aparatos criticos (un tipo especial de aparato).
   Estos solo se pueden apagar manualmente.
 - Una red tiene un sistema de alarma
 - Puede haber muchos tipos de alarma (que envian sms, que hacen sonar un aparato, etc...).
   Todos funcionan igual: se activan y se desactivan.
 - Si el sistema de seguridad no puede bajar el consumo por debajo del nivel soportado,
   ha de activar el sistema de alarma.
 - El sistema de alarma no se alimenta de la red (no tiene un consumo, como los aparatos)
//——————————————————————————————————————————————–//——————————————————————————————————————————————–
package red;

import org.junit.Test;
import static org.junit.Assert.*;

public class TestRed {

	@Test public void test_aparato_consumo() {
		// Cread en la clase aparato una variable consumo

		Aparato aparato = new Aparato();
		aparato.consumo = 3;
	}

	@Test public void test_aparato_encendido () {
		//--cread en la clase aparato una variable encendido del tipo boolean
		//--Descomentad lo que viene a continuación hasta el final del metodo
		//--Descomentad tambien el ultimo metodo del test (metodo estado)

		Aparato aparato = new Aparato();
		aparato.encendido = true;

	}

	@Test public void test_aparato_consumoActual () {
		// cread un metodo en aparato que devuelva cual es el consumo
		// actual de un aparato. Sera 0 si esta apagado y lo que indique
		// la variable consumo cuando esta encendido
		// El metodo tiene que estar declarado de esta forma:
		//   int consumoActual() {
		//        aqui vuestro codigo
		//   }

		// Descomentad lo que viene a continuación hasta el final del metodo

		Aparato aparato = new Aparato();
		aparato.consumo = 4;
		aparato.encendido = true;

		assertEquals("aparato de consumo 4 encendido", 4, aparato.consumoActual());
		aparato.encendido = false;
		assertEquals("aparato de consumo 4 apagado", 0, aparato.consumoActual());

	}

	@Test public void test_red_constructor() {
		// cread un constructor de la case Red con un parametro que
		// sea el numero de aparatos que tiene que caber
		// Si el parametro es 4, por ejemplo, aparatos se tiene que
		// inicializar en un array de tamanyo 4
		//    Ayuda : aparatos = new Aparato[4]

		// Descomentad lo que viene a continuación hasta el final del metodo

		Red red = new Red(6);
		assertNotNull("no se ha creado el array!", red.aparatos);
		assertEquals("El tamanyo no es el adecuado", 6, red.aparatos.length);

	}

	@Test public void test_red_consumo_actual() {
		// cread un metodo en la clase Red que devuelva que consumo
		// esta teniendo actualmente. Para ello, debera recorrer todos
		// sus aparatos y ir sumando el consumo de cada uno de ellos, teniendo
		// en cuenta si estan encendidos o no.
		// Cread el metodo con la siguiente plantilla:
		// int consumoActual() {
		//     aqui vuestro codigo
		// }

		// Descomentad lo que viene a continuación hasta el final del metodo

		Red red = new Red(3);
		red.aparatos[0] = new Aparato();
		red.aparatos[0].consumo = 1;
		red.aparatos[1] = new Aparato();
		red.aparatos[1].consumo = 2;
		red.aparatos[2] = new Aparato();
		red.aparatos[2].consumo = 3;

		assertEquals(estado(red.aparatos), 0, red.consumoActual());

		red.aparatos[0].encendido = true;
		assertEquals(estado(red.aparatos), 1, red.consumoActual());

		red.aparatos[2].encendido = true;
		assertEquals(estado(red.aparatos), 4, red.consumoActual());

	}

	@Test public void test_red_consumo_actual_con_nulls() {
		// Si no lo habeis hecho ya, modificad el metodo
		// consumoActual de red, para que tenga en cuenta
		// que puede haber posiciones del array que no estan
		// ocupadas (pueden valer null)

		// Descomentad lo que viene a continuación hasta el final del metodo

        Red red = new Red(3);
        assertEquals("una red si aparatos enchufados no consume nada", 0, red.consumoActual());

        red.aparatos[2] = new Aparato();
        red.aparatos[2].consumo = 3;
        red.aparatos[2].encendido = true;
		assertEquals(estado(red.aparatos), 3, red.consumoActual());

	}

	private String estado (Aparato[] aparatos) {

		StringBuilder buf = new StringBuilder();

		buf.append("estado red:");

		for (Aparato aparato: aparatos) {
			buf.append("- ");
			if (aparato == null) {
				buf.append(" posicion vacia ");
				continue;
			}
			if (aparato.encendido) {
				buf.append("encendido");
			} else {
				buf.append("apagado");
			}
			buf.append(" aparato de consumo " );
			buf.append(aparato.consumo);
		}

		return buf.toString();
	}

}

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

package red;

public class Aparato {

	int consumo;
	boolean encendido;

		int consumoActual(){
			if (encendido){
			 return consumo;}
			 else{
				 return 0;}
		}
}

//——————————————————————————————————————————————–//——————————————————————————————————————————————–

package red;

public class Red {

	Aparato[] aparatos;

   public Red(int numAparatos){
	   this.aparatos = new Aparato[numAparatos];
   }

  //class red extends Aparato{};

   int consumoActual(){
	  int consumir=0;
	  int cantidad=this.aparatos.length-1;

	  for (int i=0;i<=cantidad;i++){
		if (this.aparatos[i]!= null){
		if (this.aparatos[i].encendido){
			consumir += this.aparatos[i].consumo;
		}
		}
	  }
	   return consumir;
   }
}

//——————————————————————————————————————————————–//——————————————————————————————————————————————–
Pronto Cuelgo El Ejercicio.rar Para importar en el Eclipse:
Eclipse Java EE IDE for Web Developers.

Version: Helios Service Release 1
Build id: 20100917-0705

Todos Los Derechos Reservados. Shersoft Co.Ltd. 2008



			

Base de Dades en C++ || Base de Datos en C++ –> Lista Enlazada

Buenas buenas, hoy traigo una autentica base de datos en c++ estandart, funciona en todos los compiladores, pero os recomiendo el builderc++.
Lo he hecho lo mas esquemático posible por una mejor entendimiento del código , todo mismo alguna duda en el foro,jeje. Chao.

Por cierto Toda obra mia, en media horita, y lo importante es que FUNCIONA al 100%.


Builder c++ Compiler (Faltan Las librerias del Include standars, ej: conio,msdos,…)//———————————————————————#include

#include  ***

#include ***

#include  ***

#include  ***

#include   ***

#include  ***

#include  ***

#pragma hdrstop

//———————————————————————
USERES(“Project1.res”);

//———————————————————————
struct FITXA

{

char nom[20];

char cognom[20];

struct FITXA *enllac;

}*inici,*aux,*aux2,*darrer,*anterior;

//———————————————————————

FILE *punter;

//———————————————————————
int x,contador1,contador2;

char nome[20];

//———————————————————————
void carregar();

void mostrar();

void insertar();

void cercar();

void borrar();

void primerRegistre();

void enmigRegistre();

void ultimRegistre();

//———————————————————————
void carregar()

{

punter= fopen(“alumne.txt”,”a+”);

inici=(struct FITXA*)malloc(sizeof(struct FITXA));

if(malloc==NULL){printf(“n ERROR ERROR ERROR !!”);sleep(2);exit(1);}

fscanf(punter,”%s %s”,inici->nom,inici->cognom);

inici->enllac=NULL;

darrer=inici;

while(feof(punter)==0)

{

aux=(struct FITXA*)malloc(sizeof(struct FITXA));

darrer->enllac=aux;

aux->enllac=NULL;

darrer=aux;

fscanf(punter,”%s %s”,darrer->nom,darrer->cognom);

}

}

//———————————————————————
//———————————————————————
void mostrar()

{

aux=inici;

while(aux!=NULL)

{

printf(“n %s %s “,aux->nom,aux->cognom);

aux=aux->enllac;

}

printf(“n”);

printf(“n Polseu Una Tecla Per Continuar…”);

getch();

}

//———————————————————————
//———————————————————————
void insertar()

{

darrer=(struct FITXA*)malloc(sizeof(struct FITXA));

aux=inici;

while(aux->enllac!=NULL)

{

aux=aux->enllac;

}

aux->enllac=darrer;

darrer->enllac=NULL;

clrscr();

printf(“n INSERCIO DE REGISTRES “);

printf(“n”);

printf(“n”);

printf(“n Introdueix NOM:”);

scanf(“%s”,darrer->nom);

printf(“n”);

printf(“n Introdueix COGNOM:”);

scanf(“%s”,darrer->cognom);

printf(“n %s %s”,darrer->nom,darrer->cognom);

//fprintf(punter,”n%s %s”,darrer->nom,darrer->cognom);

printf(“n”);

fclose(punter);

//carregar();

mostrar();

}

//———————————————————————
//———————————————————————
void cercar()

{

clrscr();

printf(“n CERCAR REGISTRES “);

printf(“n”);

printf(“n”);

printf(“n Introdueix NOM a Cercar:”);

scanf(“%s”,&nome);

aux=inici;

while(aux!=NULL)

{

if(strcmp(aux->nom,nome)==0)

{

printf(“n %s %s “,aux->nom,aux->cognom);

}

aux=aux->enllac;

}

printf(“n”);

printf(“n Polseu Una Tecla Per Continuar…”);

getch();

}

//———————————————————————
//———————————————————————
void borrar()

{

contador1=1;

contador2=1;

clrscr();

printf(“n BORRAR REGISTRES “);

printf(“n”);

printf(“n”);

printf(“n Introdueix NOM a Borrar:”);

scanf(“%s”,&nome);

aux=inici;

while(aux!=NULL)

{

if(strcmp(aux->nom,nome)==0)

{

contador1=contador2;

printf(“n Registre a Borrar: %s %s “,aux->nom,aux->cognom);

}

aux=aux->enllac;

contador2++;

}

contador2–;

printf(“n Registre a borrar Num.: %d”,contador1);

printf(“n Num. Total de Registres: %d”,contador2);

getch();

if(contador1==1){primerRegistre();}

if(contador1==contador2){ultimRegistre();}

if((contador1!=1)&&(contador1!=contador2)){enmigRegistre();}

printf(“n”);

printf(“n Polseu Una Tecla Per Continuar…”);

getch();

}

//———————————————————————
void primerRegistre()

{

clrscr();

printf(“n primerRegistre “);

printf(“n”);

printf(“n”);

aux=inici;

inici=inici->enllac;

free(aux);

getch();

}

//———————————————————————
void enmigRegistre()

{

clrscr();

printf(“n enmigRegistre “);

printf(“n”);

printf(“n”);

x=0;

aux=inici;

contador1–;

while(1)

{

x++;

if(contador1==x)

{

aux2=aux->enllac;

aux->enllac=aux2->enllac;

free(aux2);

break;

}

aux=aux->enllac;

}

getch();

}

//———————————————————————
void ultimRegistre()

{

clrscr();

printf(“n ultimRegistre “);

printf(“n”);

printf(“n”);

aux=darrer;

darrer=inici;

while(darrer->enllac!=NULL)

{

darrer=darrer->enllac;

}

darrer->enllac=NULL;

free(aux);

getch();

}

//———————————————————————

main()

{

carregar();

mostrar();

insertar();

cercar();

borrar();

clrscr();

mostrar();

//fprintf(punter,”n%s %s”,darrer->nom,darrer->cognom); //GUARDAR al fitxero

fclose(punter);

}

Todos Los Derechos Reservados. Shersoft Co.Ltd. 2008


PD: Por cierto es necessario que lo mireis pq crea ficheros automaticamente. Y no guarda los datos (registros)por seguridad, todo mismo la función de guardar registros está escrita como comentario , solo teneis que quitar las (//) para que se guarde.
basededatos

Lair, Tecnicamente insuperable:

Este es el planteamiento que ha realizado Factor 5 en el que supone su estreno en una plataforma de Sony, después de varios años ligado a Nintendo, desarrollando dos de los títulos más espectaculares no ya de Gamecube, sino de toda la generación pasada. El estudio, liderado por Julian Eggebrecht, no sólo cuenta su haber con títulos importantes como la saga Turrican, sino que también es uno de los estudios más dotados para explotar la tecnología de las máquinas, algo que han venido demostrado a lo largo de los años tanto en sus juegos como en las diversas herramientas de desarrollo que han creado.

PS3 es el reto perfecto para el estudio. Su intrincada arquitectura y el supuesto potencial de CELL en combinación con el chip gráfico RSX es la clase de trabajo para el que Factor 5 está bien preparado. Lair es el resultado de estos esfuerzos.

Lo que hará brillar a Lair con luz propia desde el principio será sin duda la tecnología que usa. Cada misión se desarrolla en gigantescos mapas cargados con miles de entidades actuando de forma autónoma, diferentes comportamientos de Inteligencia Artificial según la distancia. Nunca un escenario de guerra ha parecido tan realista y cargado como en este título. Julian Eggebretch declaraba hace poco en una entrevista que la clave de todo residía en los SPEs, los siete procesadores que conforman el pilar central de PS3: “empezamos poniendo ahí la física, eso es lo que al menos todo el mundo debería hacer, pero luego fuimos incluyendo más y más cosas: dinámica de fluidos, todas las animaciones, el sistema de colisiones…” El resultado es un motor que genera todo el universo visible al vuelo, sin texturas prefijadas hechas a mano o grandes bloques de contenidos cargados desde la memoria que provoquen tiempos de carga intermedios. Es un sistema muy rápido que funciona gracias a un sistema de reglas, cálculos y millones de operaciones efectuadas al momento.

La cantidad de técnicas avanzadas que se usará en Lair es simplemente espectacular y e increíble hace unos meses: física dinámica, dinámica de fluidos, luz de rango altamente dinámico -conocido como HDR-,… todo en tiempo real, incluyendo el renderizado y los efectos volumétricos de nubes y humos. Además, usando 1080p de forma nativa y con unos 30 FPS fijos, a lo largo y ancho de escenarios que ocupan un territorio de 32 x 32 kilómetros cada uno, una auténtica proeza tecnológica.

CNET considera a PlayStation 3 como el producto más deseado

Ésta es una de las webs más respetadas por los internautas amantes de lo último en imagen, sonido y videojuegos, y sus veredictos suelen ser tenidos muy en cuenta. Pues bien, por segunda semana consecutiva el producto más deseado según CNET es la PlayStation 3, por encima incluso de la Wii, que se alza al segundo puesto. De XBOX 360 como que no sale, su ultima posición fué de quinto. Vamos que la pley es para los sibaritas, y quien lo pueda pagar-la. Salu2.

LINUX A TOPE !!

Wenas, os traigo tres Scripts Para hacer un par de cosillas(calculadora,Escombrar Ips segun mascara subred, averiguar que fitxeros son ejecutables o no segun el directorio elegido):


On Sou Fitxers executables?

#! /bin/bash

for directori in `du $1 | awk ‘{print $2}’`
do

for fitxer in `ls $directori`
do
y=`ls -al $directori| grep $fitxer| awk ‘{print $1}’| grep x`

if [ -n "$y" ]; then
z=`ls -al $directori | grep $fitxer | awk ‘{print $1}’| grep d`
if [ -z "$z" ]; then
echo “`ls -al $directori/$fitxer | awk ‘{print $8 ” ” $5}’`” >> heuristica.txt
fi
fi
done

done


Calculadora:

#!/bin/bash

suma() {
x=`expr $1 + $2`
return $x
}

resta() {
x=`expr $1 – $2`
return $x
}

multiplica() {
x=`expr $1 * $2`
return $x
}

dividir() {
x=`expr $1 / $2`
return $x
}

if [ $1 = "suma" ] ; then
suma $2 $3
fi

if [ $1 = "resta" ]; then
resta $2 $3
fi

if [ $1 = "multiplica" ]; then
multiplica $2 $3
fi

if [ $1 = "dividir" ]; then
dividir $2 $3
fi

echo $x


Script Per Escombrar IP’s de Xarxa:

#!/bin/bash
echo “Introduce IP i Rang (x.x.x.x/n)”
read x

a=`echo $x | tr ‘/’ ‘ ‘ | awk ‘{print $2}’`

# Calcul de Hosts

b=`expr 32 – $a`
d=2
conta=2
while [ $conta -le $b ] //
do
d=`expr $d * 2`
conta=`expr $conta + 1`
continue
done
c=`expr $d – 2`
# NUMERO DE HOSTS ES $c
echo $c

# Separar Ip de la Mask

d=`echo $x | tr ‘/’ ‘ ‘ | awk ‘{print $1}’`
echo $d

# Separar Ips de Xarxa

oct1=`echo $d | tr ‘.’ ‘ ‘ | awk ‘{print $1}’`
echo $oct1
oct2=`echo $d | tr ‘.’ ‘ ‘ | awk ‘{print $2}’`
echo $oct2
oct3=`echo $d | tr ‘.’ ‘ ‘ | awk ‘{print $3}’`
echo $oct3
oct4=`echo $d | tr ‘.’ ‘ ‘ | awk ‘{print $4}’`
echo $oct4

# Calcul

while [ $c -ge 1 ]
do
c=`expr $c – 1`
oct4=`expr $oct4 + 1`
if [ $oct4 -ge 256 ]; then
oct4=0
oct3=`expr $oct3 + 1`
fi
ip=$oct1.$oct2.$oct3.$oct4
ping -c 1 $ip
continue
done


By Avaquero Mas Co. ltd. Todos Los Derechos Reservados. 2008.

Help Desk en la edad media

Diferentes tecnologías, mismos usuarios. La típica resistencia al cambio de un sistema siempre fue igual!!!

Sombras en Estado “Físico” !!

Aquí tenemos un experimento Curioso, cuyo posible aplicación en los videojuegos

Ojalá…

Powered by Blog.com