SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
+




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

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

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



        コードゴルフをはじめてみませんか?
         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;

Contenu connexe

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

オセロゲームでコードゴルフ
オセロゲームでコードゴルフオセロゲームでコードゴルフ
オセロゲームでコードゴルフ洸人 高橋
 
こんにちはGroovy
こんにちはGroovyこんにちはGroovy
こんにちはGroovyirof N
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with PythonTaisuke Yamada
 
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005gotohayato
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語RShuyo Nakatani
 
pgGeocoderのご紹介
pgGeocoderのご紹介pgGeocoderのご紹介
pgGeocoderのご紹介Ko Nagase
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話simotin13 Miyazaki
 
Material
MaterialMaterial
Material_TUNE_
 
ROS2のコードチェック
ROS2のコードチェックROS2のコードチェック
ROS2のコードチェックKotaro Yoshimoto
 
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 gdbakirahiguchi
 
Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]yak1ex
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in DartGoro Fuji
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミングcocodrips
 

Similaire à コードゴルフ 〜今日から始める難読コードの世界〜 (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ではじめる競技プログラミング
 

Plus de Shingo Inoue

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

Plus de 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
 

Dernier

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 

Dernier (7)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 

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

  • 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;