Programming

史上最大のコーディングスキル判定

あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 (1/2) - ITmedia エンタープライズ普通に書いても面白くないので C の Short Coding で.749B→685B→637B.所要時間は1時間ぐらいです.アルゴリズムも縮め方もあんまり凝ってないです. 条…

簡単なshared_ptrを実装してみた

なんか流行ってるらしいし、久しぶりにC++な趣味のコーディングしたかったので、一部機能を省いた簡単なshared_ptrを実装してみた(もちろんスレッドアンセーフ)。shared_ptrの挙動って確かこんなんだっけ……。

BrainfuckとWhitespaceのインタープリタをCで書いてみた。

Brainfu*k 寝起きの頭の活性化に。+-.,<>[]の8文字で書く言語。見出しに*が使えないので伏せられない。 入力のchar配列をなぞって実行する。エラー処理とかはしていない。メモリを1024byte分しか確保してないので1024回ほど>すると落ちるハズ。解釈される8文…

ハチロク世代のskypeチャットでライフゲームの実装が話題に

どう書く?.orgで出題されていたライフゲームの実装のがハチロク世代のskypeチャットで話題にあがったので何も考えず勢いで書いてみた。風呂で。 微妙にお題に沿わないので、投稿せずにここに書いておく。 /* life.c compile: $ gcc -o life life.c usage: $…

バグ生産プログラマ矯正用テキストエディタ Microsoft Windows コマンドプロンプト copy con

使い方 [スタートメニュー]->[アクセサリ]->[コマンドプロンプト]でコマンドプロンプトを立ち上げる。 (cdでパスが通った好きなディレクトリに移動) "copy con ファイル名"を入力してEnter カーソルが一段下がるので(プログラムを)入力していく Ctrl+Z→Enter…

VC++でGDI+ そにょ8 〜ダブルバッファリング〜

ダブルバッファの手順とサンプル デバイスコンテキストから生成したGraphicsオブジェクトに描画している場合、ウィンドウを動かしたりすると画面がちらつく。これは描画の処理が追いついていないために、一度消して真っ白になった背景が見えてしまうからであ…

/binにあるプログラムのソースコードを読む

ls とか mkdir とか cp とか cat とか、/bin にあるプログラムのソースコードを読んでみたいな、って思ったときの解決方法。 まずはそのプログラムがどのパッケージに含まれるか調べる。例えば ls だと ~$ dpkg -S /bin/ls coreutils: /bin/lsこれで ls が c…

コンソールのプログレスバーを作ってみた

何も目新しいものではないです。試しにちょっと作ってみただけです。1秒ごとに5%進む固定式です。 #include <stdio.h> #include <unistd.h> int main(void) { setbuf(stdout, NULL); for(int i=0;i<=20;i++) { int j=0; for(;j</unistd.h></stdio.h>

cursesで遊んでみた

curses*1の使い方のお勉強。 インストール sudo apt-get install ncurses-dev コンパイル リンクするのを忘れないように。 g++ -o sample sample.cpp -lcurses 練習プログラム 0から9までをキー入力がある度に1ずつ増やして表示する。 #include <curses.h> int main(vo</curses.h>…

VC++でGDI+ そにょ7 〜画像の描画3:ブレンド〜

ブレンド〜ビットマップの操作〜 今までの画像の描画は透明度だけを考慮したアルファブレンドである。しかしながらゲームでは派手なエフェクトのためにスクリーンやオーバーレイなどの合成方式が用いられる。知る限りこれらはGDI+では実装されていない。とい…

自分用データベースプログラミングのリファレンス

PostgreSQL + JDBC + Servlet/JSP + Java な環境で書籍のオークションサイトを実装するとてつもない実験*1。SQLとかJavaとかのリファレンスをいちいち参照するのが面倒なのでまとめておく。 リファレンスリンク PostgreSQLコマンド Connectionインターフェイ…

VC++でGDI+ そにょ6 〜画像の描画2:中心回転〜

中心回転 ゲームなどのスプライトは中心座標が指定されているのが普通である。では、画像の中心を回転中心とした回転関数を書いてみよう。前回紹介した変形描画メソッドを使う。 DrawImage(Image *srcImage, const Point *dstPoints, INT count); DrawImage(…

VC++でGDI+ そにょ5 〜画像の描画1〜

さて、前回までで読み込んだ画像を描画しよう。描画にはGraphics::DrawImageメソッドを用る。リファレンスのままだと使いにくいので、目的別に分類してみる。 dstは描画先の画像、srcは描画する画像を意味する。メソッドの返値はすべてStatusである。デフォ…

VC++でGDI+ そにょ4 〜画像の読み込み2:リソースからPNGを読み込む〜

リソースからPNGやJPEGを読み込む ゲームを作るにあたって、利用する画像はBitmapじゃちょっとばかし大きすぎる。だから圧縮率も高い上に8bitアルファを持ってるPNGを使いたい。ディレクトリから読み込む場合はユーザに画像を勝手に使われるし、exe単体で配…

VC++でGDI+ そにょ3 〜画像の読み込み1〜

自分が使わなかった部分は知識で書いて、実際に試してないから動くかわかんね。 ImageクラスとBitmapクラス 画像はImageクラスで扱う。BitmapクラスはImageクラスを継承している。そのため引数がImageクラスのインスタンスやその参照になっているメソッドにB…

VC++でGDI+ そにょ2 〜基本的な使い方〜

リファレンス嫁はさすがにアレなので、とっかかりになれるぐらいの基本的な操作だけでも簡単に書いておく。 Graphicsオブジェクトの作成 基本的な描画操作はGraphicsオブジェクトに対して行う。Graphicsクラスのコンストラクタは4つあるが、クライアント領域…

VC++でGDI+ そにょ1 〜準備〜

NativeC++でガリガリ書きたい方のために、これまでにGDI+で遊んで得たノウハウを少し書き残そう。手取り足取りな解説も途中まで書いてみたが、リファレンスが充実しているのでいらないという結論。ある程度の使い方を知った上で一歩踏み込んだ内容についてだ…

mini-Pythonインタープリタ そにょ5

結論:講義の仕様通りに作った方がいい

mini-Pythonインタープリタ そにょ4

いよいよ演習が始まる。結局一人で演習をすることになってしまった。とりあえず字句解析の入力部分のTips的なものを書いてみる。ネタバレになるので読みたくない人はすっ飛ばしてください。 mini-PythonはLL(1)文法になるように設計されているので、基本的に…

つづり

"programing"じゃなくて"programming"なんだってね。そういやswim-swimmingみたいなもんか。 あぁ……MyDocumentにprogramingフォルダが……http://blog.livedoor.jp/lalha/archives/50165797.html

mini-Pythonインタープリタその3

expression_stmtとassignment_stmtをparseの件について悩んでいたが、一晩寝たら解決策を思いついた。 identifierはsubscriptionに含まれているのだからassignment_stmtはそのままparseできる。 expression_stmtもassignment_stmtも先頭はprimaryになりうる…

mini-Pythonインタープリタその2

parserの概形は少しを残して書き終えた。 昨日の日記のコメントで「頭をつかう」と言ったのは、ほとんどは文法の定義通りに書き下せばいいのだがそれだと不都合が生じる部分があるということ。文法の定義が while_stmt ::= 'while' expression ':' suite だ…

mini-Pythonインタープリタその1

先週Tokenizerを書き終わって今Parserを書いている。下向き構文解析は全部メソッド書き下さないと動作しないのが辛いところ。文法定義に従ってトップダウン的に各パースメソッドを書いていって、その後、構文木等データの実装して、細かいメソッドを実装する…