謹賀新年
あけまして、おめでとうございます。
プログラマ書き初め大会をやったら面白いんじゃないかと思った。プログラムで「謹賀新年」を出力するってやつ。出力先はコンソール、Windowsフォーム、ブラウザなんでもあり。もちろんFlashやCanvasを使った動的な視覚化もありってルールで
謹んで以下のプログラムと画像でご挨拶申しあげます。
import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class NewYear { public static void main(String[] args) { try { BufferedImage img = ImageIO.read(new File(args[0])); for(int y = 0; y < img.getHeight(); y++) { for(int x = 0; x < img.getWidth(); x++) { System.out.print(img.getRGB(x, y) == 0xFFFFFFFF ? " " : "*"); } System.out.println(); Thread.sleep(50L); } } catch (Exception ex) { ex.printStackTrace(); } } }
// 出力
** ******* ***** ********* ************ * ******** ************* *** ******* ************* **** ******* ************ ***** ******* ************ ****** ************ ********** ***** ******************* *********** **************************** ************ ******************************* ******** ******************************* ************************* **** ***************** ********* ******* ******* **************** ****** ******** *********************** ****** ******* ****************************** ************* ****************************** *********** *************************** ********* ************** ******* ******* ******* ******* ***** ********************** ** * ************************* ******** **** ***************************** *********** ********************** *********** ************ ******************** *********** ************ ******** ******* *********** ********** ****** ******************* ******* ******* ****************** * **************************** **** ************************** *********** ********************** ************** **************** ************** **** ****** *********** ************** ********* ***************** ******** ******************** ****** ********************* ****** ******************** ***** ***************** **** ****** ** ******** *************** ************ ***************** *** *************** ******************* **** ***************** ******************** ************************ ***************** ************ ********* ************ ********* ******** ********* ******* ******** ********* ******* ********* ************ ******** ********** ********************* ***************** **************************** *************** ******************************** ************** ************************************* ************ ************************************** ********** ************************************* ****** ************ *** ***** ******** ********* ******* ******* ****** ******* ******** *********** ************* ************** ***************** **************** ** ******************* ******************* *** ********************* ************* ****** **** ********************** ************* ****** *********** ********* *********** ****** ******** ********* ********* ******* ******* ********** ******** ****** ******* ********** ******** ******* ******* ********** ********* ******* ******************** *********** ******** ******************* ********************** ******************** ********************* ******************* ******** ************ **** ******* ********** ****** ***** ********* ************ *** ******* ************** ******* ******* ****** *** ***** ******* *** *** ****** **** ******* ************** ******* ************** ******* ***** ********* ******* ***** ******** ******* ***** ****** ******* ****** ***** ******* ****** ***** ******* ****** **** ******* ****** ******** ******* ****** ********* ******* ****** ******** ******* ****** ******* ******* ****** ****** ******* ****** ****** ******* ****** **** *** ******* ****** *************** ****** ****************** ***************************** ********************** ******* ************************ ****** *********************** ****** ********************* **** ******************** ****** ******* ********** ********** *** *********** ********** ********** *********** *********** *********** ************ ********** ************ ********* *********** ********** ********* ********* ****** ******* ****** ** ** ********* ***** *********** ********** ********** ************ ******** *********** ******* ************ ****** ************ ************ * ************ ** **** ********** ************* ********* ************* ********* ************* ******** *********** ******* ************* ****** *************** ***** ***************** ***** ***************** **** ***************** **** ******* ******** ***** **** ******** ***** * ********* ***** ********** ****** ******* ************** ****** ************* **************** ****** ***************** ****************** ****** ********************* ********************** ***************************** *************************** *********************** **************************** ****************** **************************** ******************* **** **************** ******** ******** ****************** ******* ******** ****************** ******* ******** ******************* ******* ******** ***************** ******* ******** **************** ******* ******** **************** ******* ******** ********** ********* ******* ******** ****** ******************* ******** ** ******************* ******** **** ****************** ******** ** ****** ***** ******* ** ******** ************ ****** *** ******** ************* ****** ******** ********** ********** ******** ******** ********** ******** ***** ******** ******** ******* ******** ******* ******** ****** ******** ****** ******** ***** ****** *** ****** ** ****** ****** ***** ****** ***** ***** **** *** *** ***** ***** ****** ******* ************** ******* ********************** ******************************* ******************************** ********************************* *********** ************ *********** ********* ********** ******* ********* ******* ******** ******** ******* ********** ****** *** ************* **** ******************** ** ******************** ******************* ****************** **************** ** ********** ************ ************* ******** ******** ******** ************* ******** ************** ******** ************* ******** ********** ******** ********* ******** ******** ******** ******** ****************************** ****************************************** ******************************************** ********************************************** *************************************************** ************************* ******** *************** ******************** ******** ******* *************** ******** *********** ******** ******* ******** *** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******* ******* ******* ******* ******* ****** ****** ****** ***** **** **** ** **