Juego de ajedrez

Este es un nuevo juego de ajedrez avanzado programado en Delphi que incorpora un algoritmo de cálculo de posiciones bastante bueno, aún en los niveles de juego básicos el programa tiene bastante fuerza.
Permite seleccionar el bando con el quieres jugar, tiene diferentes niveles de profundidad de cálculo de posiciones, posee una biblioteca de aperturas muy básica pero creo que suficiente para lo que pretende el programa y un diseño de tablero modificable por el usuario.

Autor: Montero-Ribas
Licencia: GNU GPL

Descargar codigo fuente

Relacionado:
http://delphimagic.blogspot.com/2008/11/ajedrez-con-delphi-chess-with-delphi.html

Biblioteca de funciones matemáticas MPArith

Esta es una impresionante biblioteca de funciones matemáticas en Delphi, para cálculos en punto flotante, con números racionales y operaciones en alta precisión con enteros.
Según el autor el código no es el más eficiente, pero a cambio es comprensible, compacto, open source y puede ser compilado a partir de Delphi 7.
Para ejecutar los demos hay que cambiar la extensión del archivo demo *.pas a *.dpr y se iniciará en modo consola.

Ejemplo:
Si queremos calcular la operación z=1/3 habría que hacer lo siguiente:

uses
BTypes, mp_types, mp_base, mp_supp, mp_real,sysutils;

var
p,r,s,t,z:mp_float;
r1:real;
begin

//se inicializan las variables
mpf_initp3(s,t,z,mpf_get_default_prec);
mpf_set_ext(s,1);
mpf_set_ext(t,3);
mpf_div(s,t,z);
writeln('Rdo con MPArit ',mpf_decimal(z,80));
mpf_clear3(s,t,z); //Se liberan las variables
//El rdo es: 3.333333333333333333333333333333333333333333E-1

//comparación con el método habitual para calcular 1/3
r1:=1/3.0;
writeln('Rdo con Delphi: '+FloatToStrF(r1,ffexponent,8,20));
//el Rdo es: 3.3333333E-1

end;


Descargar biblioteca de funciones

Pagina oficial



Relacionados:

Funciones matemáticas, estadísticas y XML en delphi

Dibujo de funciones matematicas

Funciones matematicas


LIBROS:

Matemáticas, el fascinante mundo de los números

Matrix computations (Matematical Science)

Geometría analítica del plano y del espacio

Mecánica de fluidos

Geometría Afín y Euclidea

Modelado 3D con Delphi


Para los entusiastas del modelado 3D aquí tienen un soft realizado en Delphi que permite construir piezas basándose en primitivas simples cilindros, cubos, etc y con las operaciones topológicas habituales como fusión, intersección, recorte, etc...

Dar capacidades de scripting a tu aplicacion

Hoy os presento el componente freeware Artformula que permite dar capacidades de scripting a una aplicación Delphi , para que un usuario pueda escribir y ejecutar código dentro de nuestro programa. En el programa demo asimila los scripts a macros y los utiliza para aplicarlos en un tRichEdit haciéndonos ver lo fácil que es utilizarlos en caso de que tengamos que programar un editor de textos.

Ejemplo de scripts:
1) Abrir un fichero y mostrar su contenido:

begin
print('This is a TArtFormula Demo');
print('==========================');
print('');
var 'f' end;
$f := file.new;
file($f).name := 'info';
file($f).open('read');
while not file($f).eof do
print(file($f).readln);
wend;
file.freeall;
end

2) Resolver una ecuación lineal utilizando matrices:

begin
var "n","i","j","k","d" end;
$n := input("Input dimension","Dimension of matrix:",3);

for $i:=1; $i <= $n; $i++ do
for $j:=1; $j <= $n; $j++ do
var "a"+$i+"_"+$j end;
$a[$i,$j] := input("Input element","a["+$i+","+$j+"] = ",if $i = $j ; 1 ; 0 end);
next;
next;

for $i:=1; $i <= $n; $i++ do
var "b"+$i, "x"+$i end;
$b[$i] := input("Input element","b["+$i+"] = ",1);
next;

for $i:=1; $i < $n; $i++ do
for $k:=$i+1; $k <= $n; $k++ do
$d:=$a[$k,$i]/$a[$i,$i];
for $j:=$i+1; $j <= $n; $j++;
$a[$k,$j]:=$a[$k,$j]-$a[$i,$j]*$d;
end;
$b[$k]:=$b[$k]-$b[$i]*$d;
next;
next;

for $i:=$n; $i >= 1; $i-- do
for $j:=$i+1; $j <= $n; $j++;
$b[$i]:=$b[$i]-$a[$i,$j]*$x[$j];
end;
$x[$i]:=$b[$i]/$a[$i,$i];
next;
print("Result:");
for $i:=1; $i <= $n; $i++; print("x["+$i+"] = "+$x[$i]); end;

end


El lenguaje de script tiene las siguientes características:
-Permite definir variables
-Tiene comandos de asignación
-Operadores de incremento y decremento
-Función Return
-Utiliza:
BEGIN...END
Sentencias IF
Bucles WHILE, UNTIL y LOOP
funciones de interface como: msg('text','caption',props), input('caption', 'text', defvalue)


El componente incorpora la posibilidad de evaluación de expresiones y el cálculo de derivadas con respecto a "x" o "y" de una función.
Las funciones que permite son las siguientes: (tomado de la ayuda del programa)

Arithmetic operation:

x + y, x - y, x * y, x / y, x % y (Mod), x ^ y (power), x\ y (Div)

Logical operation (true=1, false=0):
x > y, x < y, x >= y, x <= y, x = y, x <> y, ! x (not), x & y (and), x | y (or), x xor y

Bitwise operations:
x && y (band), x || y (bor), !!x (bnot), x bxor y, x >> y (shr), x << y (shl)

Predefined constants:
Pi = 3.1415926535897932385
True = 1
False = 0

Functions:

sin, cos, tan, sinh, cosh, tanh, asin, acos, atan, asinh, acosh, atanh, sqrt, exp, log, lg (log base 10), int (integer part of a number), frac (fractional part of a number), abs, sign, rnd, randomize,max(x,y...), min(x,y,...), count(x,y,...), sum(x,y,...), sumofsquares(x,y,...), avg(x,y,...), variance(x,y,...), variancep(x,y,...), stddev(x,y,...), stddevp(x,y,...) , iff(cond,x,y) (if cond = true then result = x else result = y), isnumber(x), chr(x), length(s), trim(s), trimleft(s), trimright(s) lowercase(s), uppercase(s), midstr(s,x,y), leftstr(s,x), rightstr(s,x), pos(s,t), code(s), format(s,x), formatf(s,x), stringofchar(c,n), concat(s1,s2,...), date(s), now, formatdate(s,d), year(d), month(d), day(d), hour(d), minute(d), second(d), millisecond(d), isleapyear(n), dayofweek(d), encodedate(y,m,d)


Autor:

Artem V. Parlyuk, e-mail:artsoft@nm.ru, http://artsoft.nm.ru

Descargar codigo


Solucion del cubo de Rubik con Delphi



Este soft permite ver de una forma gráfica y paso a paso cada uno de los movimientos que hay que hacer para solucionar el cubo de Rubik.
Realmente es espectacular ver el cubo moviéndose en 3D siguiendo cada uno de los patrones calculados por el programa.
Las animaciones se implementan en Delphi "a pelo" sin utilizar módulos parecidos a OpenGL o GLScene, por lo que es muy instructivo ver cómo se hace la transformación de coordenadas del cubo 3D a 2D junto con su rotación.
Pulsando con el botón derecho del ratón sobre la imagen del cubo podremos rotarlo en la dirección que nos interese.
Si hacéis clic sobre el cubo en la ventana "Vue 3D"  veréis cómo se mueve en 3 dimensiones.
¿Sabías que hay muchos tipos de cubo de rubik, los puedes ver aquí ?

Descargar programa

Descargar codigo

Sitio Web

LINKS:

Relacionados sobre juegos:

Juego del masterming

Juego de damas

Juego de ajedrez