Programming
あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 (1/2) - ITmedia エンタープライズ普通に書いても面白くないので C の Short Coding で.749B→685B→637B.所要時間は1時間ぐらいです.アルゴリズムも縮め方もあんまり凝ってないです. 条…
なんか流行ってるらしいし、久しぶりにC++な趣味のコーディングしたかったので、一部機能を省いた簡単なshared_ptrを実装してみた(もちろんスレッドアンセーフ)。shared_ptrの挙動って確かこんなんだっけ……。
Brainfu*k 寝起きの頭の活性化に。+-.,<>[]の8文字で書く言語。見出しに*が使えないので伏せられない。 入力のchar配列をなぞって実行する。エラー処理とかはしていない。メモリを1024byte分しか確保してないので1024回ほど>すると落ちるハズ。解釈される8文…
どう書く?.orgで出題されていたライフゲームの実装のがハチロク世代のskypeチャットで話題にあがったので何も考えず勢いで書いてみた。風呂で。 微妙にお題に沿わないので、投稿せずにここに書いておく。 /* life.c compile: $ gcc -o life life.c usage: $…
使い方 [スタートメニュー]->[アクセサリ]->[コマンドプロンプト]でコマンドプロンプトを立ち上げる。 (cdでパスが通った好きなディレクトリに移動) "copy con ファイル名"を入力してEnter カーソルが一段下がるので(プログラムを)入力していく Ctrl+Z→Enter…
ダブルバッファの手順とサンプル デバイスコンテキストから生成したGraphicsオブジェクトに描画している場合、ウィンドウを動かしたりすると画面がちらつく。これは描画の処理が追いついていないために、一度消して真っ白になった背景が見えてしまうからであ…
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*1の使い方のお勉強。 インストール sudo apt-get install ncurses-dev コンパイル リンクするのを忘れないように。 g++ -o sample sample.cpp -lcurses 練習プログラム 0から9までをキー入力がある度に1ずつ増やして表示する。 #include <curses.h> int main(vo</curses.h>…
ブレンド〜ビットマップの操作〜 今までの画像の描画は透明度だけを考慮したアルファブレンドである。しかしながらゲームでは派手なエフェクトのためにスクリーンやオーバーレイなどの合成方式が用いられる。知る限りこれらはGDI+では実装されていない。とい…
PostgreSQL + JDBC + Servlet/JSP + Java な環境で書籍のオークションサイトを実装するとてつもない実験*1。SQLとかJavaとかのリファレンスをいちいち参照するのが面倒なのでまとめておく。 リファレンスリンク PostgreSQLコマンド Connectionインターフェイ…
中心回転 ゲームなどのスプライトは中心座標が指定されているのが普通である。では、画像の中心を回転中心とした回転関数を書いてみよう。前回紹介した変形描画メソッドを使う。 DrawImage(Image *srcImage, const Point *dstPoints, INT count); DrawImage(…
さて、前回までで読み込んだ画像を描画しよう。描画にはGraphics::DrawImageメソッドを用る。リファレンスのままだと使いにくいので、目的別に分類してみる。 dstは描画先の画像、srcは描画する画像を意味する。メソッドの返値はすべてStatusである。デフォ…
リソースからPNGやJPEGを読み込む ゲームを作るにあたって、利用する画像はBitmapじゃちょっとばかし大きすぎる。だから圧縮率も高い上に8bitアルファを持ってるPNGを使いたい。ディレクトリから読み込む場合はユーザに画像を勝手に使われるし、exe単体で配…
自分が使わなかった部分は知識で書いて、実際に試してないから動くかわかんね。 ImageクラスとBitmapクラス 画像はImageクラスで扱う。BitmapクラスはImageクラスを継承している。そのため引数がImageクラスのインスタンスやその参照になっているメソッドにB…
リファレンス嫁はさすがにアレなので、とっかかりになれるぐらいの基本的な操作だけでも簡単に書いておく。 Graphicsオブジェクトの作成 基本的な描画操作はGraphicsオブジェクトに対して行う。Graphicsクラスのコンストラクタは4つあるが、クライアント領域…
NativeC++でガリガリ書きたい方のために、これまでにGDI+で遊んで得たノウハウを少し書き残そう。手取り足取りな解説も途中まで書いてみたが、リファレンスが充実しているのでいらないという結論。ある程度の使い方を知った上で一歩踏み込んだ内容についてだ…
結論:講義の仕様通りに作った方がいい
いよいよ演習が始まる。結局一人で演習をすることになってしまった。とりあえず字句解析の入力部分のTips的なものを書いてみる。ネタバレになるので読みたくない人はすっ飛ばしてください。 mini-PythonはLL(1)文法になるように設計されているので、基本的に…
"programing"じゃなくて"programming"なんだってね。そういやswim-swimmingみたいなもんか。 あぁ……MyDocumentにprogramingフォルダが……http://blog.livedoor.jp/lalha/archives/50165797.html
expression_stmtとassignment_stmtをparseの件について悩んでいたが、一晩寝たら解決策を思いついた。 identifierはsubscriptionに含まれているのだからassignment_stmtはそのままparseできる。 expression_stmtもassignment_stmtも先頭はprimaryになりうる…
parserの概形は少しを残して書き終えた。 昨日の日記のコメントで「頭をつかう」と言ったのは、ほとんどは文法の定義通りに書き下せばいいのだがそれだと不都合が生じる部分があるということ。文法の定義が while_stmt ::= 'while' expression ':' suite だ…
先週Tokenizerを書き終わって今Parserを書いている。下向き構文解析は全部メソッド書き下さないと動作しないのが辛いところ。文法定義に従ってトップダウン的に各パースメソッドを書いていって、その後、構文木等データの実装して、細かいメソッドを実装する…