Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Programming

MacでSAStrutsの環境構築とチュートリアルのセットアップ

SAStrutsのチュートリアルのセットアップ方法のMac版です。 過去記事はこちら fa11enprince.hatenablog.com eclipseをインストールします ダウンロードしてインストールします。 ちなみにMacだといろいろついているpleiades All in Oneはないので 普通にJava…

SAStrutsの環境構築とチュートリアルのセットアップ

今更ですが、SAStrutsのtutorialの環境構築をします。 SAStrutsとはJavaのWebフレームワークStrutsの1系を改造したものです。公式のチュートリアルのセットアップのページの手順を踏むと 情報が古いのか不親切なのかたぶんうまくいかないでしょう。 下記では…

C++でカレンダー

カレンダーなんてJavaScriptを使ったらすでにたくさん便利なのがありますが、 自分でカレンダーを書いたらどうなるか…とおもい書いてみました。C++で。 そういえばツェラーの公式というのがありましたが、使ってません。 使ってみました。 C++はここ数か月書…

単方向リスト(Singly Linked List)の実装 (C++)

単方向リストを勉強がてら久々にビールを飲みながらC++で書いてみました。 これをやると、ポインタって何かってよく理解できますね。 しかしビールを飲むと、わけのわからないミスをしでかします…。 ソースコード イテレーターがねえ!とか 追加するたびnew…

LINQを学んでみよう

最近、C#が好きになりかけています。 理由は楽ちんだから。 C#をやろうとすると避けて通れないものにLINQがあります。 別に使わなくてもかけるんだけど、 やっぱりLINQを知らないとほかのソースコードも読めないことがしばしば。 ちょっと勉強しないと使える…

MVCとか3層アーキテクチャとか勉強しなおし

ほとんど独り言のような記事です。 なんとなく理解して、なんとなく覚えるMVCとか3層アーキテクチャ この2つ全く別物なんですが、ごっちゃにして覚えてる人多いですよね。 日本人だけかと思ったら、海外の人もそうみたい……。 正確ではないけどstackoverflow…

Cygwinにmonoをインストール

今日もきれいなおねーさんです。結婚してください!!(*´ω`) 癒されますね。 話は変わり、mono使ってみたいなーと軽く調べてみると、 Macはもちろんのこと簡単にWindowsでもmonoが使えるようです。 ただ、Windowsでmonoってクロスプラットフォームなものを…

Visual Studioのソリューション(プロジェクト)をコピーするプログラムを作りました。

Visual Studioのソリューション(プロジェクト)をコピーするプログラムを作成しました。 Gitでブランチ分けてもいいんだけど、 大幅に試験的にプログラムを変えるときにプロジェクトを作り直してしまう Git使い慣れてない私なんで、私には必要ですが、 ほかに…

どんな列(幅)でも行数でも読込む関数作りました

C言語を使っているとC++などのようなstringが使えないせいで 可変長の文字列を含んだファイルを読込むときは 非常に泥臭いことをしないといけない。。。か、もしくは 決めうちで列幅を固定してしまったりすることが多いと思います。そんなわけでどんなに列幅…

C言語のグローバル変数とexternについて

C言語では言語仕様上、グローバル変数は良く使うと思います。 できるだけ避けるのは言うまでもありませんが。 そこでよく混乱するのがexternではないでしょうか? ヘッダなんかをインクルードすると あれ?そういえばexternって……どうなんだっけ…ってことに…

Javaで優先順位をつけて複数のキーでソートする方法

久々にPureなJavaを書きました(*´Д`) 複数のキーでソートする書き方の説明 いろいろ書き方はありますが、 対象のクラスにComparableをimplementsして compareTo()をオーバーライドすると ソート順を定義できます。 そのうえで、 -1(左が先) 0(同じ) 1(…

C++のmapとJavaのmapの挙動が違う件

C++でmapを書いててinsertしまくってましたが、 あれれ?Javaと挙動が違うということに気付きました。 mapでinsertするとC++ではキーが重複したときに、 insertされず、valueが上書きされない。 一方、Javaのほうはputしたときに 最後にputしたものでvalueが…

わかりにくい関数ポインタを返す関数

関数ポインタって変な文法ですよねってお話です。 もちろんポインタの文法もいろいろツッコミどころはあるのですが (このせいでポインタよくわからんな人が続出)。 例えば次の宣言はぱっと見すぐにわかる人はC言語マスターです。 void (*func(const char *…

C言語の不可解なエラー(GCC) - 配列の宣言時にconst変数を指定したとき

stackoverflowで英語の練習を兼ねてダメダメ英語を連投してました。 そのうち迫害されるんじゃないかと思います(*´Д`) そんなわけで、Cのプログラムを書いていたのですが…… 不可解なエラーが…… 問題になったコード #include <stdio.h> #include <string.h> const int MAXLINE =</string.h></stdio.h>…

Visual C++でデバッグ時の出力をIDE(Visual Studio)上に出す方法

Visual Studioの出力ウィンドウまたはイミディエイトウィンドウに なにか文字列を出力したい時は コンソールアプリケーション、Windowsアプリケーションに 関わらず、OutputDebugString()を使うとそれが実現できます。 使い方はputs()と同様です。改行はつけ…

Rubyプログラミング練習 〜tcl/tk編〜

とりあえず、見よう見まねで書いてみました。 言語仕様はなんとなく抑えました。だけど、Rubyらしい書き方や どう書くべきかというのはわかっていません。 returnも書くべきか書かないべきかよくわからないのですが、 Ruby 1.9以降はreturn書いても遅くなら…

AOJ(Aizu Online Judge)やってみた

競技プログラミングでAOJやってみました。 最初よくわからんかったのですが、 ここも自動で提出したコードを即時にチェックしてくれる いいところです! なぜか人間がチェックするものだとずっと勘違いしていました(笑) 他の人の回答も手軽に見れるところも…

競技プログラミング メモ

まだまだ競技プログラミングは初心者です(´・ω・`)。 とりあえずテンプレがあったほうがいいのでテンプレをメモります。 すごいのになるとマクロの嵐ですよね…あれはすごい。 とりあえずテンプレ using namespace std; namespace patch { const int Failed =…

近代汎用術式Boost C++ 1.57.0をVisual Studio 2013で使う ~導入と使い方~

まだ多重継承でダイヤモンドの錬成をしていない僕ですが、 ついに近代汎用術式に手を出すことにしました。 現時点で最新版のBoost C++ 1.57.0をVisual Studio 2013で使うためのメモです。 汎用術式でありながら暗黒術式ではあるのですが、導入と使うのは割と…

printf系の書式文字列のエスケープでハマったけど解決した

printf系の書式(フォーマット)文字列でエスケープしなきゃなんないのはどれかわかってなくてハマりました。 正解のコード char buffer[80]; char format[20]; // 20もあれば用は足りるので…… printf("なんかいれてね : "); //sprintf(format, "%%%d[^\\n]%%*…

DXライブラリとC++でRPGのゲーム作ったの公開します

DXライブラリとC++によるソースコードを公開しています。 ソースを見ると処理がわかるように コメントを充実させています。 ソースコード fa11enprince/DxRpg fa11enprince/DxRpg · GitHub ソースの中身の詳細については Github上のReadMe.mdを参照してくだ…

クラス内のオブジェクト(クラス・構造体)を関数で返したもののpublicメンバに対して代入を行う

なんともややこしい表現ですがこういうことです。 もう一度タイトルですが、 クラス内のオブジェクト(クラス・構造体)を関数で 返したもののpublicメンバに対して代入を行う な… 何を言ってるのか わからねーと思うが おれも何を言っているのかわからなかっ…

std::function, std::bindは便利

C++でstd::function, std::bindを使ってみました。あんまりJavaScriptは詳しくないですが、 例えばJavaScriptではこんなことができます。 <html> <head> <script type="text/javascript"> </head></html>

ぷよぷよの問題(人材募集企画 2011年版 問題2)をC++解いてみました。

だいぶ前の問題なのですが、たまたま記事を見かけたので 書いてみました。 簡単に問題を説明すると、 あるぷよぷよの入力が与えられていてそれが19連鎖するそうです。 その連鎖の様子を出力しなさいという問題です。2時間以上かかると採用は難しいでしょうと…

PythonでNumpyとMatplotlibを利用する(Windows)

PytnonでnumpyとmatplotlibをWindows上で使う場合のメモです。 いや、全部書いちゃっているからむしろ Windows上でPythonを使うメモのほうが適切かもしれません。Visual Studioを利用してPythonを使っている方など参考にしていただければ。 Windows 64bitの…

割り算を考えてみる

アセンブラの勉強をしていて、CPUの話に興味をもって突っ込んだら、 割り算って苦労してるのね…ってことがわかりました。 なんかで聞いた話ではゲームボーイとかは割り算が使えなかったとか。 割り算にもいろいろな方式があって、いまSRT法っていうのが主流…

C++ オペレーターオーバーロード(演算子の多重定義) まとめ

C++で演算子の多重定義は使用頻度がそんなに多くはないものですが、 いざ書く時、あれれ、戻り値は参照にしていいの?とか 引数はconstつけるべきなの?参照渡しでいいの?とか いろいろ悩んでしまってもうこの際丸暗記してしまおう! っていうような作戦に…

Direct2D + WIC + Windows APIでアナログ時計

Direct2D + WIC + Windows APIでアナログ時計を作りました。 MSDNのサンプルとチュートリアルを見ながら、サンプルを改変してコードを書きました。 2014/11/20 更新 unordered_map使用時のバグ修正(実はmapのままでもまずい部分があったけど……)。 あとは無駄…

C++でstd::stringをどう返すべきか Part3

もはやタイトルから脱線しかかってきました。 C++11がらみのお話です。ただしRVO/NRVOはC++03でも使える…というか コンパイラ依存です。 とはいってもよほどマイナーかとても古いものを使っていなければ サポートされているというところでしょうか。 少なく…

JavaのWebアプリでのマルチスレッドについて

最初にお断りしますが、Struts 1.x系限定のお話です。 JavaでWebアプリでマルチスレッドやらスレッドセーフなどという言葉を初めて聞いたとき、 やべぇ、JavaのWebアプリって難しそう。 スレッドセーフを常に意識してコーディングして 必要なところはクリテ…

C++でstd::stringをどう返すべきか Part2

id:yohhoyさんから情報をいただいてPart2を書きます。 Part1はこれC++でstd::stringをどう返すべきか Part1 - Gobble up puddingものすごくありがたい情報をいただきました。 RVOについて(NRVOというのもある) これを無効化するオプションがありますよとの…

C++でstd::stringをどう返すべきか Part1

C++では関数からstd::stringを皆はどうやって返してんだろうっていう疑問がわきました。 フツーに考えてstd::stringをそのまま値で返す一択なのですが、 そこで問題になるのがコピーコスト…… っていうかそもそもコピーしてるの?とかいろいろ疑問が沸くわけ…

C#ではてなブログAtomPubを使って記事一覧を取得してみた

前回の投稿に続いて今度はプログラムからはてなブログの一覧取得です。C#ではてなブログAtomPubを使って記事を投稿してみた - Gobble up pudding今度はちょっと手を加えればできるので記事一覧を取得してみました。 なお、私はC#のAPIをあまり知らないのでGo…

C#ではてなブログAtomPubを使って記事を投稿してみた

プログラムからはてなブログの投稿をやってみました。言語は思い付きでC#を選びました。 昨日なかば寝ながら書いていておかしなところがたくさんあったので修正しました。 C#のLINQ to XMLなるもの、嘘でした。単なる普通のDOMでした…を使って はてなブログA…

C++らしい入出力、数値・文字列相互変換まとめ

まとめるつもりはなかったのですが、 たまたま目にとまったメールで問題が書いてあって おお、なんかサンプルを書くには良さそうと思い、 CodeZineのメールマガジンに書いてあったサンプルを利用させていただきます。 よくあるTopCoderのようなあのレベルの…

CSVでダブルクォートで囲まれた場合のパース方法(C言語)

CSVでダブルクォートで囲まれた場合のパースって なんかうまい書き方あるんだろうかと、 一応自分でも考えながら調べてみると、 あるんですね。なかなかきれいな書き方が。 まぁ、こんなのは普通のプログラミング言語使っている場合は ライブラリ頼りで自分…

双方向リストの実装

やっぱりアルゴリズムとデータ構造の知識って重要だよねってことで プログラミングの基礎を勉強しなおしてます。 以前C言語でものすごく中途半端な単方向リストの実装を書きました。C言語で片方向リストの実装 - Gobble up puddingC言語で片方向リストの実装…

Visual Studio (VC++)でフィルタ?(フォルダ?)が消えた!!時の対処法

実をいうと、何も消えていなくて、単に表示のされ方の問題です。『ゲームプログラマになる前に覚えておきたい技術』という本付属のソースコードをVisual Studio 2013用に再コンパイルして、ソースを眺めていたら、あれれ?フォルダ構成と同じようにソースが…

スタック上に確保するクラスのインスタンス化の場合()丸カッコ有の場合エラーになるのはなんでなの?

C++でRAII(Resource Acquisition Is Initialization)とかしようとしたときに スタック上にクラスをインスタンス化することがあって { HogeClass hogeClass; hoge(); fuga(); } // ここで自動的にデストラクト とかやってかと思うんですけど、 他にも、 例が…

string型にファイルを一気読みできるstreambuf_iteratorのおおまかな仕組み

以前の記事の C++でファイル読込み パターン別まとめ - Gobble up pudding で最後に書いた例のstreambuf_iteratorの仕組みですが、 おおまかにどうなっているのかわかりました! C++標準ライブラリのiteratorを継承して、 内部でファイルポインタを扱ってい…

クラス設計が難しいと改めて思い知る

クラス設計は難しい... 前回のエントリーで書いたテトリス Windows APIとC++でテトリス - Gobble up pudding のプログラムを書いて、オブジェクト指向というよりクラス設計は難しい、 本当に難しい!!ということを痛感しました。 絶対にコレ!っていう定石…

Windows APIとC++でテトリス

Windows APIとC++でテトリス作りました。 GDIでも結構いろいろ作れますね。 テトリスのブロックに画像ファイルは使っていません。 プログラムにBitmapとして描画させています。 C++でのマルチスレッドの扱い等を勉強したくて書きました。 全面的に下記サイト…

Visual C++でのDLLの一般的な作成方法(暗黙的リンク)

2016年02月07日更新 https://msdn.microsoft.com/library/81h27t8c(v=vs.110).aspx によるとメンバーに対してdllexportはだめらしいので追記。 また、main側サンプルコードが中途半端だったので、C++03以前で書きました。古い環境で開発せざるを得ないことも…

WIN32APIだけでノベルゲームエンジン

WIN32APIとC言語だけでここまでのものが作れるなんてってことで、今回はプログラムの紹介記事です。 なにかとここのプログラムでゲームプログラミングを勉強させていただいています。 WindowsでのめんどくさいVC++でのDLLの作成もしていますので、勉強になる…

ハイパー簡易暗号化プログラム

前回書いたエントリーの オーバーフローするとえらいこっちゃな話 - Gobble up puddingとか 関数内で宣言した配列変数をreturnしてはいけない - Gobble up puddingの 具体的なサンプルってことで書いただけです。 こんなの暗号化じゃねーってはなしですが、…

STL入門 第5回 ~map編~

今日はmapです。巷ではdictionaryとか言ったり、連想配列とか言われてるあれです。巷ってどこだー。くしゃみが止まりません(;´・ω・)過去のSTLの記事はこちら↓STL入門 第1回 ~algorithm編~ - Gobble up puddingSTL入門 第2回 ~vector編~ - Gobble up puddi…

STL入門 第4回 ~list編~ 2

過去のSTLの記事はこちら↓STL入門 第1回 ~algorithm編~ - Gobble up puddingSTL入門 第2回 ~vector編~ - Gobble up puddingSTL入門 第3回 ~list編~ - Gobble up puddingJavaScriptを勉強してる私です。しかしCSSがちょっとわかってないことに気付いた…

「char型へのポインタの配列」と「char型の配列へのポインタ」について

C言語で混乱しやすいのはポインタの表記ですね。 次の2つを見てみましょう。 char *foo[10]; char (*bar)[10]; このとき、fooとbarは意味が違います。 どちらかが 「char型へのポインタの要素数10の配列」 でもう一方が 「要素数10のchar型の配列へのポイン…

第4回 生成に関するパターン Prototype

Design Patterns 第4回 生成に関するパターン Prototype 前回のリンク 第1回 生成に関するパターン Builder - Gobble up pudding第2回 生成に関するパターン Factory - Gobble up pudding第3回 生成に関するパターン Abstract Factory - Gobble up pudding …

第3回 生成に関するパターン Abstract Factory

Design Patterns 第3回 生成に関するパターン Abstract Factory 前回のリンク 第1回 生成に関するパターン Builder - Gobble up pudding第2回 生成に関するパターン Factory - Gobble up pudding 生成に関するパターン Abstract Factory Abstract Factoryパ…