English     Español
[Main Index] : Programming : Languages : Perl : CPAN Modules : Data Type Utilities : Math
 Math::MagicSquare CPAN (Perl) Module 

Search

 

Categories

Math::MagicSquare::Generator  

Documents

Math::MagicSquare - Magic Square Checker and Designer (Displayed)
README 

Math::MagicSquare - Magic Square Checker and Designer



NAME

Math::MagicSquare - Magic Square Checker and Designer


SYNOPSIS

  use Math::MagicSquare;
  $a= Math::MagicSquare -> new ([num,...,num],
                                 ...,
                                [num,...,num]);
  $a->print("string");
  $a->printhtml();
  $a->printimage();
  $a->check();
  $a->rotation();
  $a->reflection();


DESCRIPTION

The following methods are available:

new

Constructor arguments are a list of references to arrays of the same length.

    $a = Math::MagicSquare -> new ([num,...,num],
                                    ...,
                                   [num,...,num]);

check

This function can return 4 value

  • 0: the Square is not Magic

  • 1: the Square is a Semimagic Square (the sum of the rows and the columns is equal)

  • 2: the Square is a Magic Square (the sum of the rows, the columns and the diagonals is equal)

  • 3: the Square ia Panmagic Square (the sum of the rows, the columns, the diagonals and the broken diagonals is equal)

print

Prints the Square on STDOUT. If the method has additional parameters, these are printed before the Magic Square is printed.

printhtml

Prints the Square on STDOUT in an HTML format (exactly a inside a TABLE)

printimage

Prints the Square on STDOUT in png format.

rotation

Rotates the Magic Square of 90 degree clockwise

reflection

Reflect the Magic Square


REQUIRED

GD perl module.


EXAMPLE

    use Math::MagicSquare;
    $A = Math::MagicSquare -> new ([8,1,6],
                                   [3,5,7],
                                   [4,9,2]);
    $A->print("Magic Square A:\n");
    $A->printhtml();
    $i=$A->check();
    if($i == 2) {print "This is a Magic Square.\n";}
    $A->rotation();
    $A->print("Rotation:\n");
    $A->reflection();
    $A->print("Reflection:\n");
    $A->printimage();
 This is the output:
    Magic Square A:
        8     1     6 
        3     5     7 
        4     9     2 
    <TABLE border=3 width="2" height="2" cellpadding=1 cellspacing=1>
    <TR>
    <TD align=right><FONT size=+2><B>8</B></font></TD>
    <TD align=right><FONT size=+2><B>1</B></font></TD>
    <TD align=right><FONT size=+2><B>6</B></font></TD>
    </TR>
    <TR>
    <TD align=right><FONT size=+2><B>3</B></font></TD>
    <TD align=right><FONT size=+2><B>5</B></font></TD>
    <TD align=right><FONT size=+2><B>7</B></font></TD>
    </TR>
    <TR>
    <TD align=right><FONT size=+2><B>4</B></font></TD>
    <TD align=right><FONT size=+2><B>9</B></font></TD>
    <TD align=right><FONT size=+2><B>2</B></font></TD>
    </TR>
    </TABLE>
    This is a Magic Square.
    Rotation:
        4     3     8 
        9     5     1 
        2     7     6
    Reflection:
        8     3     4
        1     5     9
        6     7     2


AUTHOR

 Fabrizio Pivari fabrizio@pivari.com
 http://www.pivari.com/


Copyright

 Copyright 2003, Fabrizio Pivari fabrizio@pivari.com
 This library is free software; you can redistribute it and/or modify it under
 the same terms as Perl itself. 
 Are you interested in a Windows cgi distribution?
 Test http://www.pivari.com/squaremaker.html and contact me.


Availability

 The latest version of this library is likely to be available from:
 http://www.pivari.com/magicsquare.html
 and at any CPAN mirror


Information about Magic Square

 Do you like Magic Square?
 Do you want to know more information about Magic Square?
 Try to visit
A very good introduction on Magic Square
http://mathworld.wolfram.com/MagicSquare.html

Whole collections of links and documents in Internet
http://mathforum.org/alejandre/magic.square.html http://mathforum.org/te/exchange/hosted/suzuki/MagicSquare.html

A good collection of strange Magic Square
http://www.geocities.com/pivari/examples.html

Information

This site is currently in testing, it is not yet operating using the full database. Until it is officially launched you may wish to visit Help-Site Computer Manuals. After launch, this site (HelpSpy) will replace Help-Site. Information about the spider which is currently trawling the Internet looking for links to add to this directory can be found here.
   

©Copyright Nicholas Reynolds 2004