サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
レイングッズ
gup.monster
クラス設計は難しい... 前回のエントリーで書いたテトリス Windows APIとC++でテトリス - Gobble up pudding のプログラムを書いて、オブジェクト指向というよりクラス設計は難しい、 本当に難しい!!ということを痛感しました。 絶対にコレ!っていう定石みたいのがほとんどないからなのでしょうか。 一方、フレームワークやライブラリを作っている人のクラス設計は本当に綺麗。 一方僕の書くようなものはともすれば 気を付けてはいるものの 密結合になりがちだったり、 汎用性に欠けたり、変更に弱かったりします。 この差はなんなんでしょうか。センスなんでしょうか? 経験なんでしょうか。 たぶん経験が大きいと思われます。 テトリスで考えてみる... 今回のテトリスの例で考えてみます。 これは私の現在の設計の大まかなやり方 (設計といっても頭で考えながらとりあえず実装してみて トライ
Windows APIとC++でテトリス作りました。 全ソースコードを載せていたわけではないので、いくつか質問があったのもありGitHubにすべてのソースコードを置きました。 なお、Windows APIのWndProc周りをクラス化しているので記事のと少しソースコードが変わっています。 Initial Commitとの差分を見ていただければどこが変わったかわかるかと思います。 なお、以前はVisual Studio 2013でビルドしていましたが、Visual Studio 2017 (Community)でビルドしました。 ちゃんとC++書くならSTLみたいなのでない限りヘッダと実装を分けましょう。面倒なんでC#/Javaのような感じで書いてしまってますが。 GDIでも結構いろいろ作れますね。 テトリスのブロックに画像ファイルは使っていません。 プログラムにBitmapとして描画させて
C言語では関数内で宣言した配列変数を素直にreturnする方法がありません。 知らないとこんなコードを書きがちですが、 この書き方では関数内で積まれたスタックがリターン時に解放されてしまうので、 返したアドレスが無効になってしまって、たまたま動くこともありますが、 最悪セグメンテーションフォールトになっちゃいます。 とあるパスの前のパスを返す get_directory()というのを考えてみます。 例) 例えば渡されたパスが/home/user1/hoge.txtだとすると/home/user1/というのを返す場合を考えてみます。 例1 ダメな例 コンパイル $ gcc -o string1.exe string1.c retarr.c: 関数 ‘get_directory’ 内: retarr.c:18:5: 警告: 関数が局所変数のアドレスを返します [-Wreturn-local-a
SQL Server 2012 ExpressにNorthwindとPubsのサンプルデータベースを導入したときのメモ。 今は最新版はSQL Server 2014ですが、そちらでも可能だと思われます。 余談すぎますが、僕が初めて触ったメジャーなデータベースはSQL Serverでした。 SQL Server Management Studioっていうツールが標準でついてきてすごすぎますよね。 そのあとOracle触ってショボーン(´・ω・`)ってなりました。 えっ、SQL Server Management Studioに匹敵するようなツールないのかよ!!みたいな。 有償でありますが、もうね、sqlplusでいいよもう。みたいな感じに。 あと、スキーマの概念が変。って思いました。ユーザとごっちゃになっとるやないかいみたいな。 あと結合演算子が嫌でした。素直にLEFT JOINとかにしてく
w3schools.com CSS Tutorial CSSのオヌヌメサイトの紹介です。JavaScriptを始めようと思った僕がいきなりつまずきました。そう、CSSがわからない。どういうルールなのコレ?って感じで(´・ω・`)ショボーンです。 別にJavaScript使わなくてもブログを書いている人なら一度はCSSが気になったことがあるのではないでしょうか?はてなでも、テンプレートのデザインをCSSである程度いじることができますから。 まぁ、書籍買えば即日覚えて、見ながら使えるようになるんでしょうが、CSSごときにお金を使うのはMOTTAINAI。いや、デザイナー向けの本は価値があると思いますよ。ただ、入門書を買うのはMOTTAINAI。大事なことなので2回言いました。じゃあ、Webでググって、とおもいましたが、やたら冗長な説明。まぁそりゃそうだけど、HTMLの説明から入る。 眠いよ(´
Javaのサーバアプリにクライアント側からPOSTで文字列でXMLを送りつけたらXMLの解析時にパースエラーになって1時間ほどハマった時の話。 結論を先に言いますと、BOM付きのまま文字列としてサーバに送信してしまったのでJAXBでコケた。ということです。対策としてはファイルをBOMなしにしました。 当初Python内で文字列を書いてそれをJavaのサーバアプリ側にPOSTしていたときは問題が起こらなかったが、XMLファイルをあらかじめつくっておいてそれをPythonで読み込んでPOSTしたときにエラーになってしまった。 XMLのパースにつかっていたライブラリはJAXBというもの。 // クライアントからPOSTで受け取ったXML文字列をパース JAXBContext jaxbContext = JAXBContext.newInstance(Foo.class); Foo foo = (
テキストエディタVimの設定です。僕の.vimrcを晒します。 拘る人はめちゃくちゃ書くんでしょうけど、しょっちゅう違う環境で設定をやるハメになるので、なるべくシンプルに……。 ちなみに僕は最近どんな環境でもVimを入れてしまう一種の病気になっています。 EclipseにはVrapper、Visual StudioにはVsVim、フツーのWindows環境にもkaoriya-gvimを、でもなんかだるくなってCygwin + vimに、Linuxにはvimを……ってそれはフツーか。でもコピペとか日本語切り替えとの相性がやっぱり微妙なんでわりとsakura editorとメモ帳も使います。Emacsもいいんじゃないかなーとも思ってますがキーバインドをカスタマイズするのがめんどくさそうです。Sublime textも気になります。見た目いいですよね。あれ。 Sublime text “恋に落ち
データ消失事件が起こり再度インストールしたときのメモ 環境は以下です。VMware Player上でCentOS 6.4を簡易インストール Host OS: Windows 8.1 Guest OS: CentOS 6.4 ※viエディタを使用しなくても設定できる方法を追記しました(2016/01/04) ①日本語化します。 1.キーボードを日本語化します。 GUI画面の左上のほうにSystemというのがあるので System > Preferences > KeyBoard と選択します。 新しいウィンドウが開くので、こんどはLayoutタブをクリックします。 中段あたりにAddがあるので、 Country: Japan Variants: Japanese と選択します。 そうすると日本語が追加されるので、追加されたところにラジオボタンの選択チェックがあるので、 日本語側のほうにチェッ
このページを最初にブックマークしてみませんか?
『Gobble up pudding』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く