SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
+




    コードゴルフ	
 
    〜今日から始める難読コードの世界〜
+
    コードゴルフとは?	
 

        プログラムのコードの短さを競う

        コードの長さをゴルフの打数に見立てている



        コードゴルフをはじめてみませんか?
         http://blog.layer8.sh/ja/2012/04/11/introduction-to-code-
         golf/
+
    基本的な方針	
 

        空白、改行を削除

        変数名を1文字に



        なるべく1行にまとめる

        同じ処理をうまく結合する



        文字数が少なく済むアルゴリズムに変える
+
    コードゴルフのメリット	
 

        その言語に親しめる

        演算子や省略記法に詳しくなる
             Math.floor(a) => ~~a

        関数、オブジェクト呼び出しのオーバーヘッドなどを今一度考
         え直せる
             Math.pow(a,2) => a*a or a^2



        可読性が反面教師的に育つ
+
    実際にやってみた
+




                                17位。	
 

        「コードゴルフ:最短コードを書く!」の最終結果発表!!!	
 -
         blog.code.iq│CodeIQ
         http://codeiq.hatenablog.com/entry/2012/12/10/235402
+
    ・・・(´・ω・`)	
 

        初挑戦にしては悪くない。



        妥協が速すぎた
             1文字で順位が変わるのでもっと粘ろう。



        「この問題、ここがキモなんだろうなぁ」
         という勘を養えた
+
    提出したソース	
 

        https://gist.github.com/4319165



    r="";for(y=-1;++y<40;r+="n")for(x=0;x<80;a=40-x
    ++,b=40-y*2,r+=a*a+b*b<900?"*":"-");return r;
+
    現在も挑戦中!	
 

        「サンタのためのコードゴルフ」の暫定順位発表〜2012年12
         月15日14時時点	
 –
         blog.code.iq│CodeIQ
         http://codeiq.hatenablog.com/entry/2012/12/15/173421
+




    return 0;

Weitere ähnliche Inhalte

Ähnlich wie コードゴルフ 〜今日から始める難読コードの世界〜

Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
gotohayato
 
How to debug a perl script using gdb
How to debug a perl script using gdbHow to debug a perl script using gdb
How to debug a perl script using gdb
akirahiguchi
 

Ähnlich wie コードゴルフ 〜今日から始める難読コードの世界〜 (20)

オセロゲームでコードゴルフ
オセロゲームでコードゴルフオセロゲームでコードゴルフ
オセロゲームでコードゴルフ
 
ゴルフ
ゴルフゴルフ
ゴルフ
 
ゴルフ
ゴルフゴルフ
ゴルフ
 
こんにちはGroovy
こんにちはGroovyこんにちはGroovy
こんにちはGroovy
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with Python
 
Code Golf
Code GolfCode Golf
Code Golf
 
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語R
 
pgGeocoderのご紹介
pgGeocoderのご紹介pgGeocoderのご紹介
pgGeocoderのご紹介
 
Shortcodin
ShortcodinShortcodin
Shortcodin
 
競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
 
Material
MaterialMaterial
Material
 
ROS2のコードチェック
ROS2のコードチェックROS2のコードチェック
ROS2のコードチェック
 
How to debug a perl script using gdb
How to debug a perl script using gdbHow to debug a perl script using gdb
How to debug a perl script using gdb
 
Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
 

Mehr von Shingo Inoue (7)

Lt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーするLt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーする
 
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきたLT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
 
LT#6 Taskete
LT#6 TasketeLT#6 Taskete
LT#6 Taskete
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
 
さらなるjsの深みへ#3
さらなるjsの深みへ#3さらなるjsの深みへ#3
さらなるjsの深みへ#3
 
LTって、何の略だっけ。1
LTって、何の略だっけ。1LTって、何の略だっけ。1
LTって、何の略だっけ。1
 
わかる LT@2
わかる LT@2わかる LT@2
わかる LT@2
 

コードゴルフ 〜今日から始める難読コードの世界〜

  • 1. + コードゴルフ 〜今日から始める難読コードの世界〜
  • 2. + コードゴルフとは?   プログラムのコードの短さを競う   コードの長さをゴルフの打数に見立てている   コードゴルフをはじめてみませんか? http://blog.layer8.sh/ja/2012/04/11/introduction-to-code- golf/
  • 3. + 基本的な方針   空白、改行を削除   変数名を1文字に   なるべく1行にまとめる   同じ処理をうまく結合する   文字数が少なく済むアルゴリズムに変える
  • 4. + コードゴルフのメリット   その言語に親しめる   演算子や省略記法に詳しくなる   Math.floor(a) => ~~a   関数、オブジェクト呼び出しのオーバーヘッドなどを今一度考 え直せる   Math.pow(a,2) => a*a or a^2   可読性が反面教師的に育つ
  • 5. + 実際にやってみた
  • 6. + 17位。   「コードゴルフ:最短コードを書く!」の最終結果発表!!! - blog.code.iq│CodeIQ http://codeiq.hatenablog.com/entry/2012/12/10/235402
  • 7. + ・・・(´・ω・`)   初挑戦にしては悪くない。   妥協が速すぎた   1文字で順位が変わるのでもっと粘ろう。   「この問題、ここがキモなんだろうなぁ」 という勘を養えた
  • 8. + 提出したソース   https://gist.github.com/4319165 r="";for(y=-1;++y<40;r+="n")for(x=0;x<80;a=40-x ++,b=40-y*2,r+=a*a+b*b<900?"*":"-");return r;
  • 9. + 現在も挑戦中!   「サンタのためのコードゴルフ」の暫定順位発表〜2012年12 月15日14時時点 – blog.code.iq│CodeIQ http://codeiq.hatenablog.com/entry/2012/12/15/173421
  • 10. + return 0;