クイックソートは一般的に最も多く使われているソートアルゴリズムです。 大まかな処理は、ソートする要素の中から「適当な値」を決め、その値より大きいものと小さいものに分け並べる、 分けられた 2 つのグループに対しても上記のソートを適用し、さら[…]

メルセンヌツイスターを使用したパスワードジェネレーターです。 GitHubにソースをアップしました。 PasswordGenerator ※このプログラムでは、メルセンヌツイスターの出力値をそのまま使用しているため、暗号学的に安全でないとの[…]

複数の要素を大きさの順に並び替えるアルゴリズムの一つにバブルソートがあります。 ソートの手順は次のようなものです。 例えば、2,4、3、1という数字の並びを小さい順に並べるとき、 操作① 第1の数字2と第2の数字4とを比較して小さい順なので[…]

Windows の内部バージョンを取得する API として GetVersion 関数という関数が用意されていますが、この関数は Windows 8 以降マニフェストで対応 OS を明記していないと正しい値を返しません。 代わりに、ntdl[…]

タイトルバーのドラッグ等で動かすことができないウィンドウを作成するには、システムメニュー項目の移動(SC_MOVE)を削除することで実現できます。 この方法の応用で、閉じるボタン(SC_CLOSE)を無効にしたり、サイズ変更(SC_SIZE[…]

15パズルのソースコード。 15パズルは、1から15までの数字をスライドさせ、左上から順に数字をそろえるゲームです。数字の抜けている部分の上下左右をクリックすると数字をスライドすることができます。キーボードの矢印キーでも操作できます。 プロ[…]

メッセージボックス(MessageBox)は標準でディスプレイの中央に表示される挙動ですが、メッセージボックスを親ウィンドウの中央に表示したい場合など任意の位置に表示させるには、フックを使うことでメッセージウィンドウの位置を調整することがで[…]

画面の解像度をピクセル単位で取得するには、GetSystemMetrics 関数が使えます。(こちらの取得方法はマルチディスプレイ環境には対応しておりません。マルチディスプレイ環境での取得方法はまた別のページで紹介します。) また、画面の解[…]