タグ

Cに関するukstudioのブックマーク (7)

  • Blokus Duo - 日記を書く [・w・] はやみずさん

    最近プログラムをまともに書いていないので、練習がてらブロックスデュオをC言語でかいてみた。ブロックスデュオは、ブロックスというゲームの亜種のようだ。1日に3〜4時間ほど?投入して、3日くらいでできました。 http://github.com/hayamiz/blokusduo/tree/master C言語でやるにあたって、汎用的なデータ構造あったほうが楽かなー、つくるのめんどいなー、外部のライブラリ引っぱってくるほどでもないしなー、とか思いながら場当たり的に書いていったので、頻繁にreallocしまくったり、コードを書く量を減らしたいがためにmallocして作ったデータをほとんど使わずにfreeしてみたり、合法手の生成が総当たりだったりと、教育的にはよろしくない感じのコードですいませんすいませんという感じ。 一応、全体的なプログラムの構造としては、後からUIGUIも選べるようにしたり、

    Blokus Duo - 日記を書く [・w・] はやみずさん
  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

    ukstudio
    ukstudio 2008/08/02
    ポインター
  • C言語入門、東京大学情報科学科の場合 | スラド デベロッパー

    C言語入門、書籍だろうが講議だろうが、この業界なら誰もが通る道ではあるが、 sumiiの日記経由で実に興味深いC言語入門を見付けた。 東京大学理学部情報科学科の学部2年生向けのアルゴリズムとデータ構造演習内でのC言語入門 なのだが、 C入門第1回では、シェルを実装、データを圧縮・解凍するプログラムを実装、スパムフィルタを実装というお題目が並んでいる。 これだけで一瞬ひるんでしまったが、解説PDFを見ると、 「最低でもジョブ管理、リダイレクト、(多段)パイプラインの機能は実装すること」などと書かれている。 UNIXへの理解がかなりないと難しい気がするのだが、これをくぐり抜けてくる学生はどれくらいいるのだろう?

  • J (2006-08-08)堕落したCプログラマのレベル10

    「偽札対応済み」って書いてある両替機。 川口市立中央図書館屋の上にある図書館。に行ってきた。特に何もないけど。あと、マイコンショップ川口つぶれてた。 ある程度能力を持ってるなら、成果を残せるか残せないかは自信を持ってるか持ってないかの違いだけかもしれないというような話。 最近思うのだけど、使えない奴(例えば、僕のような)の特徴として、「どうせ自分が何をどうやっても、何もどうにもならない」的な思考があると思う。 例えば、上の一行で言うと、「使えない奴(例えば僕」とか、そういったような思考。 こういった思考は、いったん根付いてしまうと、循環するので、なかなかやめられない。「どうせ自分は何もできないんだ→何もできないから何もやらない→何も成果を残せない→どうせ自分は何もできないんだ」とかいった感じで。 矯正しようと思っても、「いや、こういう性格だから、矯正は無理だし。」と、いう思考になってし

    J (2006-08-08)堕落したCプログラマのレベル10
  • [ruby-list:44393] Re: typedef unsigned long VALUE; に関して

    Subject: [ruby-list:44393] Re: typedef unsigned long VALUE; に関して From: "U.Nakamura" <usa@ r g o e . > Date: Thu, 27 Dec 2007 03:36:32 +0900 References: 44392 In-reply-to: 44392 こんにちは、なかむら(う)です。 In message "[ruby-list:44392] typedef unsigned long VALUE; に関して" on Dec.27,2007 02:46:36, <cruby47 / yahoo.co.jp> wrote: | 何か、重要な理由がありVALUEはvoid型のポインタとしては | 定義されていないと思うのですが、自分で考えていてもなかなか | 思いつかないので、そこの所を教えて

  • 手軽な低レベルプログラミング環境として GBA はもっと評価されるべき

    とりあえず開発を始めるにあたっては特殊なハードウェアなどは必要なくて、 コンパイルは gcc テストはエミュレータの VisualBoyAdvance といった流れで開発を進めます。 最後の最後に実機確認をする段階になったら、ロムイメージを書き込んで GBA の実機で実行させるためのマジコンが必要になりますが 当面は必要ありません。 まず VisualBoyAdvance で動けば実機で動きますし、その逆も真です。 ちなみに「Linuxから目覚めるぼくらのゲームボーイ!」などで用いられている ブートケーブル経由での開発はハードウェア資源の制限がキツくなるのでオススメできません。 コンパイルについては gcc で OK で、これは devkitPro r18 (buildscripts 20060412) をインストールすれば一式入ります。 Windows, MacOSX, Linux など

  • Cとかアルゴリズムなんて超うんこ - 神様なんて信じない僕らのために

    と定時後の雑談中に言われたので、うへぇ、と思って書いてみる。 論旨は、Java(使い)はアルゴリズムを隠蔽しているので、 メモリの使い方とか、各種アルゴリズムがある操作をした場合に定数、対数、線形だとか、 知らなくても良いということなんだけど、 まずLinkedListとArrayListの違いがわからないのはあかんのでは? と僕は思う。 HashSetやHashMapの中身がどうなっているか解らずにSetやMapを使いこなすこともできないだろう、 と僕は思う。 いかにJavaがそういったものを隠蔽するために産まれてきたとしても、 「何から何まで忘れるために」産まれてきたのではない。 なんとなく「Cなんてうんこ」と言われると癪に障るのは悪いクセなのだろうけれど、 Cのポインタが悪しきバグを生み出してきた事は確かで、 不定な場所を指していても、 不定な場所を操作しても文句一つ言わず、 ある日

    Cとかアルゴリズムなんて超うんこ - 神様なんて信じない僕らのために
  • 1