eXorithm – Execute Algorithm: View / Run Algorithm draw_playing_card

Logo Beta

function draw_playing_card ($suit$value$face_down$size$x$y

{

  //based in part on http://www.brainjar.com/css/cards/

  

  switch ($suit) {

    case 'diamonds'

      $color = 'red'

      $symbol = '♦'

      break

    case 'hearts'

      $color = 'red'

      $symbol = '♥'

      break

    case 'clubs'

      $color = 'black'

      $symbol = '♣'

      break

    case 'spades'

      $color = 'black'

      $symbol = '♠'

      break

    default

      return ''

  }

  

  if ($face_down) {

    $bgcolor = "brown"

  } else {

    $bgcolor = "#fffff2"

  }

  

  // card container

  $card = "<div style=""

    "border:1px solid black;"

    "background-color:$bgcolor;"

    "position:absolute;"

    "font-size:{$size}px;"

    "font-family:Arial,sans-serif;"

    "width:3.7em;"

    "height:5em;"

    "border-radius:.2em;"

    "-moz-border-radius:.2em;"

    "-webkit-border-radius:.2em;"

    "color:$color;"

    "left:{$x}px;"

    "top:{$y}px;"

    "">"

  

  if (!$face_down) {

    

    // number & symbol in top corner

    $card .= "<div style=""

      "position:absolute;"

      "font-size:50%;"

      "font-weight:bold;"

      "text-align:center;"

      "left:0.25em;"

      "top:0.25em;"

      "">$value<br />$symbol</div>"

    

    // non-face card

    if (($value>=2) && ($value<=10)) {

      

      /****** column 1 symbols *****/

      if (($value>=4) && ($value<=10)) {

        $card .= "<div style="".  //row 1

          "position:absolute;"

          "left:0.6em;"

          "top:0.5em;"

          "">$symbol</div>"

        $card .= "<div style="".  //row 5

          "position:absolute;"

          "left:0.6em;"

          "top:3.5em;"

          "">$symbol</div>"

      }

      if (($value==9) || ($value==10)) {

        $card .= "<div style="".  //row 2

          "position:absolute;"

          "left:0.6em;"

          "top:1.5em;"

          "">$symbol</div>"

        $card .= "<div style="".  //row 4

          "position:absolute;"

          "left:0.6em;"

          "top:2.5em;"

          "">$symbol</div>"

      }

      if (($value==6) || ($value==7) || ($value==8)) {

        $card .= "<div style="".  //row 3

          "position:absolute;"

          "left:0.6em;"

          "top:2em;"

          "">$symbol</div>"

      }

      

      /****** column 2 symbols *****/

      if (($value==2) || ($value==3)) {

        $card .= "<div style="".  //row 1

          "position:absolute;"

          "left:1.55em;"

          "top:0.5em;"

          "">$symbol</div>"

        $card .= "<div style="".  //row 5

          "position:absolute;"

          "left:1.55em;"

          "top:3.5em;"

          "">$symbol</div>"

      }

      if (($value==7) || ($value==8) || ($value==10)) {

        $card .= "<div style="".  //row 2

          "position:absolute;"

          "left:1.55em;"

          "top:1em;"

          "">$symbol</div>"

        if ($value!=7) {

          $card .= "<div style="".  //row 4

            "position:absolute;"

            "left:1.55em;"

            "top:3em;"

            "">$symbol</div>"

        }

      }

      if (($value==3) || ($value==5) || ($value==9)) {

        $card .= "<div style="".  //row 3

          "position:absolute;"

          "left:1.55em;"

          "top:2em;"

          "">$symbol</div>"

      }

      

      /****** column 3 symbols *****/

      if (($value>=4) && ($value<=10)) {

        $card .= "<div style="".  //row 1

          "position:absolute;"

          "left:2.5em;"

          "top:0.5em;"

          "">$symbol</div>"

        $card .= "<div style="".  //row 5

          "position:absolute;"

          "left:2.5em;"

          "top:3.5em;"

          "">$symbol</div>"

      }

      if (($value==9) || ($value==10)) {

        $card .= "<div style="".  //row 2

          "position:absolute;"

          "left:2.5em;"

          "top:1.5em;"

          "">$symbol</div>"

        $card .= "<div style="".  //row 4

          "position:absolute;"

          "left:2.5em;"

          "top:2.5em;"

          "">$symbol</div>"

      }

      if (($value==6) || ($value==7) || ($value==8)) {

        $card .= "<div style="".  //row 3

          "position:absolute;"

          "left:2.5em;"

          "top:2em;"

          "">$symbol</div>"

      }

      

    }

    

    // ace

    else if ($value=='A') {

      $card .= "<div style=""

        "font-size:300%;"

        "position:absolute;"

        "text-align:center;"

        "width:100%;"

        "top:0.25em;"

        "">$symbol</div>"

    }

    

    // jack, king, queen

    else if (($value=='J')|| ($value=='Q')|| ($value=='K')) {

      if ($value=='J'$sym'&#9822;'

      else if ($value=='Q'$sym'&#9819;'

      else if ($value=='K'$sym'&#9818;'

      

      $card .= "<div style=""

        "border:1px solid black;"

        "position:absolute;"

        "left:0.6em;"

        "top:0.55em;"

        "width:2.45em;"

        "height:3.85em;"

        "">"

      $card .= "<div style=""

        "font-size:300%;"

        "position:absolute;"

        "text-align:center;"

        "width:100%;"

        "">$sym</div>"

      $card .= "<div style=""

        "position:absolute;"

        "left:0.05em;"

        "top:0em;"

        "">$symbol</div>"

      $card .= "<div style=""

        "position:absolute;"

        "right:0.05em;"

        "bottom:0em;"

        "">$symbol</div>"

      $card .= "</div>"

    }

  }

  

  $card .= "</div>"

  

  return $card