Submit Search
Upload
オセロゲームでコードゴルフ
•
Download as PPTX, PDF
•
0 likes
•
986 views
洸人 高橋
Follow
PHPでオセロゲームのショートコーディング
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 23
Download now
Recommended
Code Golf
Code Golf
Shinichiro Hamaji
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
Akio Ishida
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
Hiromu Shioya
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
Perl logging
Perl logging
keroyonn
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
pocketberserker
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみる
Koichi Suzuki
深夜のPhp golf matsuri
深夜のPhp golf matsuri
Koji Tanaka
Recommended
Code Golf
Code Golf
Shinichiro Hamaji
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
Akio Ishida
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
Hiromu Shioya
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
Perl logging
Perl logging
keroyonn
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
pocketberserker
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみる
Koichi Suzuki
深夜のPhp golf matsuri
深夜のPhp golf matsuri
Koji Tanaka
カンバン駆動開発チュートリアル
カンバン駆動開発チュートリアル
洸人 高橋
elzup 自己紹介
elzup 自己紹介
洸人 高橋
Twitter ドミネーターを作った
Twitter ドミネーターを作った
洸人 高橋
ランキングを利用した協調フィルタリング手法の提案
ランキングを利用した協調フィルタリング手法の提案
洸人 高橋
Vimperator abc
Vimperator abc
洸人 高橋
{LESS}をちょっと拡張してみた
{LESS}をちょっと拡張してみた
洸人 高橋
More Related Content
More from 洸人 高橋
カンバン駆動開発チュートリアル
カンバン駆動開発チュートリアル
洸人 高橋
elzup 自己紹介
elzup 自己紹介
洸人 高橋
Twitter ドミネーターを作った
Twitter ドミネーターを作った
洸人 高橋
ランキングを利用した協調フィルタリング手法の提案
ランキングを利用した協調フィルタリング手法の提案
洸人 高橋
Vimperator abc
Vimperator abc
洸人 高橋
{LESS}をちょっと拡張してみた
{LESS}をちょっと拡張してみた
洸人 高橋
More from 洸人 高橋
(6)
カンバン駆動開発チュートリアル
カンバン駆動開発チュートリアル
elzup 自己紹介
elzup 自己紹介
Twitter ドミネーターを作った
Twitter ドミネーターを作った
ランキングを利用した協調フィルタリング手法の提案
ランキングを利用した協調フィルタリング手法の提案
Vimperator abc
Vimperator abc
{LESS}をちょっと拡張してみた
{LESS}をちょっと拡張してみた
オセロゲームでコードゴルフ
1.
オセロゲームでコードゴルフ <PHP> 12fi091 @Arzzup
2.
プレゼン内容 自己紹介 コードゴルフとは?
作品(オセロゲーム)の紹介 アルゴリズム、コードの解説 2
3.
自己紹介 学生 未来科学部情報メディア学科2年
好きな言語 Java PHP Ruby Vimmer たけのこ派 Twitterer @arzzup えるざっぷ 3
4.
コードゴルフだぁ? コードの「文字数」を出来るだけ短くし て目的のプログラムを作る遊び、競技 4
5.
if ( $key
) print(“OK”); else print(“NG”); != 0 { } { } 5
6.
if ($key) print(“OK”); else print(“NG”); 6
7.
print($key?”OK”:”NG”); echo$key?”OK”:”NG”; 7
8.
if ($key !=
0) { print(“OK”); } else { print(“NG”); } echo$key?”OK”:”NG”; 56Byte 20Byte 8
9.
コードゴルフだぁ? コードの「文字数」を出来るだけ短くし て目的のプログラムを作る遊び、競技 これがコード ゴルフだぁ! 9 IOCCC(国際邪悪なCコードコンテスト)
10.
565byteテトリス 参考:わずか565バイトテトリスのプログ ラミング解説 http://zapanet.info/blog/item/1125 10
11.
オセロだぁ? ウィンタースポーツ 埼玉県民は毎日している 11
12.
作成結果 <?=header('Content-type:text/html;charset=utf- 8');error_reporting(0);$s=$_GET['m']or$s=sprintf('%0100s',0);$m=str_sp lit($s);$w=str_split($_GET['w']);$t=$_GET['t'];$k=$_GET['k'];$f=$t%2+1; $e=$d=0;$r=array(-11,-10,-9,- 1,1,9,10,11);if($k){$i=0;$m[$k]=$t;foreach($r as$c=>$j)for($b=$k+$j;$f==$m[$b]*$w[$c];$b+=$j)$m[$b]=$t;}else{fore ach($m as$k=>&$v)$v=($k%10&&$k%10- 9&&$k/10>=1&&$k/10<=9)?0:5;$m[44]=$m[55]=2;$m[45]=$m[54]=1;$t =1;}$p=m($m);$u=-2;while($u++<1){for($i=- 1;++$i<100;){$w[$i]=str_split(sprintf('%08s',0));foreach($r as$c=>$j)for($b=$i+$j;$m[$b]*!$m[$i]&&$m[$b]- 5;$b+=$j)if($m[$b]==$f)if($j+$i==$b)break;else$w[$i][$c]=$u=1;}$y=$f; $f=$t;$t=$y;}for($i=- 1;++$i<100;){if(!($i%10))echo"<br>";$v=$m[$i];if($v==2)$e++;if($v==1)$ d++;$h=implode($w[$i]);echo($h*1?"<a href="?m=$p&t=$t&k=$i&w=$h&e">":"").g($v).($h*1?"</a>":"");}echo" t=".g($t)."
W$e,B$d";function g($v){return($v?$v-1?($v- 5?"◯":"■"):"●":"□");}function m($m){$x="";foreach($m as$v)$x.=$v;return$x;} 968Byte 12
13.
13
14.
実物 ろーかる ねっと 14
15.
アルゴリズム 石が置ける所をハイパーリンク その際GET値に、 「プレイヤーターンの情報」 「石をおいた場所」
「すべての石の情報」 「置いた場所から石をひっくり返せる方 向」を載せる GET値無し→初期盤面作成 15
16.
GET m:盤面の情報 t:プレイヤー手番
k:石が置かれ場所 w:ひっくり返す方向 http://localhost/code_golf/golf_othello. php?m=55555555555000000005500000 00055000000005502222200550021200 055001210005500112000550011120055 555555555&t=1&k=87&w=00010000 16
17.
嬉しい誤算すごい所 一手戻る、一手進む機能 棋譜確認機能
置ける場所が見やすい 17
18.
データ受取 18
19.
ひっくり返す部分 19
20.
文字描画部分 20
21.
感想 書きにくい! 面倒くさい!
面白くない! コードゴルフしよう! 21
22.
まとめ その言語の知識が深まる 省略記法に詳しくなる
→コーディング速度が上がる →コードを綺麗に書けるようになる(?) コードゴルフしよう! 22
23.
23 :q
Editor's Notes
例もphpで
波括弧 条件式
サーバーサイドの設定をいじれば省ける部分
941byte
適当な解説
スキップ処理のために分けざる負えなかったforループ
見づらい、 いちいち確認しながら
解読
Download now