[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ども・・・・・・・・・・会長の和佐田雅史です。
今日はスマートポインタについて講義します。
皆さんはnewやdeleteを知っているでしょうか?
動的に変数の領域を確保する時に
Character Chara = new Character;
とすると変数CharaにCharacter型の領域を作成する事が出来ます。
ようするにcで言うmallocを使っているとお考え下さい。
しかし、newで確保したものは解放しないとメモリリークを起こしてしまいます。
mallocで確保したメモリはfree関数で解放しないといけませんよね?
それと同じ事です。
しかし・・・・プログラマと言えど人間ですのでもしかすると解放処理を忘れてしまうかもしれません。
ですのでスマートポインタ( STLではオートポインタ )という物を使います。
std::auto_ptr< 型引数 > ptrObject;
とすると、参照がなくなった時点で勝手に解放してくれます。
javaのガーベージコレクションとまでは行きませんが便利ですよね?
ただ、中には自分でスマートポインタを作りたいという人が居るかもしれません。
なので一応簡易版をここに乗せておきます。
使いたい人はどうぞ。
※1.動的に確保したObjectのみに適用するようにして下さい
※2.ネームスペース( Wasadaとかptrとか )は自由に書き換えてもらって結構です。
使用例は
Wasada::ptr::auto_ptr< Character > Chara();
Chara->m_hp = 1;
等です。
それではお疲れ様でした。
namespace Wasada
{
namespace ptr
{
// オートポインタ定義
template< typename Type > class auto_ptr
{
private:
Type* _ptr;
friend class Type;
public:
// ptrアクセッサ
Type& operator*() const {return *_ptr;}
Type* operator->() const {return _ptr;}
// コンストラクタ
auto_ptr(const Type* ptr)
{
// this->_ptr = NULL;
this->_ptr = ptr;
}
auto_ptr()
{
this->_ptr = NULL;
this->_ptr = new Type;
}
// デストラクタで勝手に解放
virtual ~auto_ptr()
{
if( this->_ptr )
{
delete _ptr;
}
}
};
}
}
矢那さんばっかりずるいので俺も使うっっ。
……消しゴムが全消し……
アンドゥは10回まで。
使いづらいことこの上ない絵日記でした。
なんとも言いがたい絵を描いたよ。
面接は基本、受験生:面接官が1:5など。
2:3も有りましたが基本面接官が多いです。
プレッシャー与えて落とそうって所がありますからね。
まずは胆を据わらせるところから始めましょう。
何。簡単です。
面接官より自分が優位だと勘違いしてください。態度に出ない程度に。
嘘です。場慣れするために練習してください。
就職活動の果てに気づく事が一つあります。
生島先生の方が恐い。(面接官的な意味で
ZAKIの記事が蔓延してますねぇ。
毎日ご苦労様です。日記的な意味で。
Ekiyaです。
さて、就職……もうノイローゼになりそうですね。
まぁそう言わず面接のお話で。
今日は聞き及ぶ質問たちをご紹介しましょう。
・自己PR
・使用できる言語
・使ったことのある環境
・制作物について
-----------------------------------------------
・趣味について
・最近のニュース
・故郷について
・最近みた映画とか
……下に行くほど絶妙ですよね。
コレは実際に私が受けたことのある質問です。
境界線辺りからどうやって自分を面白い奴だと思ってもらえるように喋るかっていうのを意識しました。
この面接の質問がスタンダードですかね。多分。
大体大まかな質問はそんな感じだと思ってもらってもいいんですが
やっぱり自分が喋った事に対してのツッコミになる質問が多いんですよ。
例えば
「C言語が使えます」と言えば
「どのぐらい使えますか?」と返ってきます。当たり前ですが。
それは先方が興味を失うまで続きます。
だから面接は応対能力の勝負になります。
そういう意味で人馴れしてないとむつかしいですねぇ……うむ。
まぁ言葉の上で多少技術の証明が出来れば、後試されるのは人格です。
責任感、行動力、面白さ。
そういった物を言葉から探そうとしてきます。
あ、そうだ。こんなのありました。
「技術力をつかった綺麗な作品」
「発想力をつかった面白い作品」
あなたはどちらを作りたいと思いますか?
プログラマなら前者じゃないとダメ?
ちなみに私はその質問には後者で答えましたが。
どちらを選んでもいいんです。ただ自分の意見だけはしっかり言えるようになりましょうね。
ま、この程度でいいかな。
お疲れ様です。
面接に関して下記サイトを見てみると面白いかもしれません。
知財プログラマーによる資格取得への路
http://2.suk2.tok2.com/user/kudoiasi/?c=009
活動時期は私達と同じ時期でよく参考にさせていただいていました。
この方が受けていたのは大手企業ばかりです。
受けろって訳じゃないですよ?
実際にあった質問とかが載ってるので参考になります。
丁度一年前ぐらいの記事が就活です。
ゲーム系って私服可の試験や面接が多いです。(SガとかCプコンとか
私は私服可であれば間違いなく私服で行っていました。
合格通知の電話の度に「服はスーツですか?」って聞いてたぐらいです。
だって、スーツ嫌いなんですもん。
ホント気にする事はないです。ただやっぱスーツで行けばマジメポイントが加算されます。たぶん。
私服の場合もちゃんと自分の気合の入る服を選びましょうね。
ではEkiyaでした~。
ども、こんばんわ~
さっき最後まで記事を書いたのに、ブラウザが落ちて記事が消えてしまったZAKIです
涙をこらえながら書き直そうと思います。
さてええぇぇぇぇ今回のおおおおぉぉぉぉテーーーーーーマはああああぁぁぁぁあぁぁぁぁ
シーン制御です。
すんません。マジで悔しいんですorz
さて、シーンとは何でしょうか。
シーンとは、タイトル、キャラセレクト、ゲーム、ゲームオーバー、などなど、ゲームの場面を指します。
皆さんはどんな感じで管理していますか?
while(1) {
if(sceneNo == 0) {
Title();
} else if(sceneNo == 1) {
CharaSelect();
} else if(sceneNo == 2) {
Game();
} else {
break;
}
}
こんな感じですか?
出来てるといえば出来ていますが、Game()関数を実行するとき毎回3回if判定が起こりますね
メインループだけに無駄な処理は避けたいところです
それを防ぐにはいろいろと使い回しの効く憎い奴を使います
そう、ポインタです。
しかも、関数ポインタです。
ああ引かないで待ってがんばるから僕がんばって説明するからぁ
続けて読んでもらえる人。ありがとう。
読んでくれない人、コノヤロウ。
関数ポインタとは関数のアドレスを入れるポインタ変数のことです。
関数ポインタの定義はサンプルではmain.hの38行目でやっていますね。
typedef void *(*LPSCENE)();
この行がそうです
typedefとは新しい型の定義を行います。
この場合はLPSCENEという自作の型を作っています。
説明すると結構長くなるので、詳しくは教科書、ネットで見てみてください。
あ、C言語の教科書あれは必携ですよ
みんな邪険にしますが、あれ見ればほっとんどのことが書いてあるので、実習中は持ってくことをオススメしますよ
あ、すいません。話を戻しますね
残りの部分が関数ポインタの宣言です
この場合は「void *型を返す引数なし」の関数のポインタです。
(*LPSCENE)が型の名前です
typedefが無ければこの部分は、変数名になります
()内の*はポインタであることをさします。
詳しくは教科書およびネットで(ry
関数ポインタ変数の宣言はmain.cppの18,19行目で行っています。
これをシーンの制御に使うので、これをシーン変数と呼びましょう
それじゃ、シーン制御の全体の流れを説明します
遊びにおいて好奇心は大切!
つことでやってみました新機能
先週実装されたばかりの「絵日記」です。
使い勝手は正直言って、正式な絵板に慣れている方には「なんじゃこれ」って感じです。
どうやらflashのような仕様ぽいので仕方ないといえば仕方ないのですが。
もう少し、こう、消しゴムは専用にしてほしかったりレイヤーが欲しかったりします。
そしてアニメの機能がいまいちわからない。
これは単に描き手のスキル不足ですね。今回頑張ろうとしましたが途中でミスに気付き、
アンドゥで戻れなくなったので変なダンスしとりますがドンマイドンマイ。
まぁ、お絵かきといえば、お約束の邪神様を祭らないと。
しょうこ巫女のクオリティには及びませんでした。もっと座禅しないとダメなのか。むぅ。
という事でまたもや割り込みいれた矢那でした。
これはグラフィックの記事に入れるべきなのか10秒ほど考えましたが雑記にしときます。
ただいま絶賛ZAKIさんの記事が更新中ですが、他のGESメンバーも遠慮なくどんどこ割り込めばいいと思うよ!
個人的には今日から連載となる記事の「賃貸事情」が役に立ちました。
少しばかり詳しいと自負していた私もフリーレント物件は初めて見ました。
情報って大事ですよね。という事でリンク記事入れときましたので気になる方はこちらもどうぞ!
◆All Abou - ホントに家賃が半年もタダなの?! ただ今フリーレント物件増加中!
http://allabout.co.jp/house/rentalhouse/closeup/CU20030820/index.htm
◆読売新聞 - 「フリーレント」とは“逆礼金”
http://www.yomiuri.co.jp/homeguide/base/20060316hg01.htm
◆不動産情報:お役立ち情報満載ブログ by KZ - フリーレント?~フリーレントって何なのさ???
http://hudosanblog.livedoor.biz/archives/50595581.html
助け合っても
いいじゃない
スプーだもの
矢那
敷金・礼金 | 約10万 |
火災保険 | 約2万 |
保証会社 | 約2万 |
殺虫消毒費 | 約2万 |
仲介手数料 | 家賃半額 |
空家賃 | 入居までの期間 |
こんにちは。矢那です。
いつの間にか怒涛の講座更新が続いててびっくりしました。
記事欄が真っ赤に燃えている。頑張りすぎだろオマイラ。もっとやれ!
そんな流れですがここらでちょっと休んでいってはどうでしょうか。
ここは空気を読んだら負けだと思っている。読まずに行きます。
言わずもがな、皆さんの生活に溶け込んだニコニコ動画ですが
人によって様々な使い方をしていますよね。
私は専らBGM専用にしています。最近は3時間越えのBGMがあったりして重宝しています。
そうなると必然と「音楽」タグを回り歩く事になりますが、
今日は私がはまっている動画をご紹介します。
ども、こんにちわ~
ZAKIです。
皆さん、いかがお過ごしでしょうか
今日から連続更新が始まります。
よそ見してたら見逃しちゃうぞっ
さて、今回のテーマは「DGLIBをVisualStudioで使ってみよう」です。
みんな大好きDGLIB
そんなDGLIBをVisualStudioを使って有効活用しようというのが今回のテーマなわけです
その前にちょっと注意
僕の環境(VisualStrudio 2003 & 2003用dglib)を使っているので、他の環境でうまくいくかはわかりません
追記:1年生のパソコンを借りて試してみました。うまくいったので画像を一部差し替えてあります。
近いうちに試して、記事を修正するんで、ご了承ください
さて、その方法ですが、
まず、プロジェクトを作成します。
VisualStudio(以下:VS)を立ち上げて、メニューから
「ファイル→新規作成→プロジェクト」を選びます。
こんなウインドウが出ると思うのですが、どうでしょう?
左のウインドウ「プロジェクトの種類」から「Visual C++プロジェクト」を選びます。
そうすると右のウインドウ「テンプレート」に色々でてくると思うのですが、
その中から「空のプロジェクト」か「Win32プロジェクト」を選びます。
あとは「プロジェクト名」と「場所」を入力して、OKを押します。
「場所」についてはどこでもかまいません
自分の好きな場所を選んでください。
そこにプロジェクトフォルダが作られます。
隣の「参照」ボタンから選ぶと楽です
OKを押すと、「Win32プロジェクト」の場合、この画面が出てくると思います。
その場合は、左にある「アプリケーションの設定」リンクを選び、
下のチェックボックス「空のプロジェクト」を選びます。
上のラジオボタンは「Windowsアプリケーション」のままでOKです。
「完了」を押して次へ。
そうすると、VSの画面に戻ってきたと思います
さて、今度はプロジェクトのフォルダに「dglib.obj」と「dglib.h」をコピーします
先ほど「場所」で指定した場所の中にある
プロジェクト名がフォルダ名のフォルダへ両ファイルをコピーしてください。
「プロジェクト名.vcpoj」というファイルと一緒の場所ならOKです
できたら、再びVSの画面に戻ります。
画面右に「ソリューションエクスプローラー」があるでしょうか?
無ければメニューの「表示→ソリューションエクスプローラー」で表示させてください。
「ソリューションエクスプローラー」の中に「ヘッダーファイル」と書いてあるフォルダがあるでしょうか?
それを「右クリック→追加→既存項目」の追加を選んでください。
ファイルを選ぶダイアログが出てきましたか?
ダイアログでは先ほどコピーしたファイルが見えていると思います。
コピーしたファイルを選んでVSの「ヘッダーファイルフォルダ」に追加しましょう。
とりあえず、これで下準備はOKです
では、ためしにプログラムを作ってみましょう
今度は「ソリューションエクスプローラー」の「ソースファイルフォルダ」を右クリックしてください。
「追加→新規項目の追加」を選んでください。
今度は違うダイアログが出たと思います。
ファイル名のところに「test.c」と打って下さい
画像が「test.cpp」になっていますが、コレでも問題はありません。
この場合はC++ソースだと認識されます。
testの部分は好きな名前でOKです
そして、「開く」ボタンを押してください。
すると、「ソースファイルフォルダ」にtest.cが追加されたと思います
今度は「ソリューションエクスプローラー」の「test.c」をダブルクリック。
すると、いつもの白紙の画面がでてくるので、いつもどおりプログラムを打ってください
出来上がったら、F5ボタンまたはCtrl+F5ボタンで実行してください
エラーがいくらか出てきますが、何とかうまく実行できると思います
どうでしょう?うまくいきましたか?
とりあえず、今回はここまでです。
後々、デバッグポイントだとかを書いていこうと思います
ヒントはF9、F10、F11ボタンです。
それでは、今回はこの辺りで。
あでゅーノシ
こんばんは、文月浩加です。
え?今お前飲み会じゃないのかって?
日記システムにはじかんさしょ(浩加が逮捕されました。
まぁそんなネタはさておき、今回は画像表示と文字表示とリンクです。
HPを作ろう その2
=文字の表示と画像の表示とリンク=
まずは下のソースをしっかりコピーしてください。
そして、top.htmlと書いて保存しましょう。
<pre>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift-jis">
<title>文字と画像とリンク</title>
</head>
<body>
<p align="center">
<a href="http://geshp.osonae.com/">
<img src="http://geshp.osonae.com/image/Gamesoft Entertainment Specialist.jpg" border="0">
</a>
<br>
<br>
</p>
<p align="center">
<font size="2">
このリンクは、GESのホームページにつながっています。<br>
<br>
</font>
</p>
</body>
</html>
では、それぞれのタグの説明をしていきましょう。
1.<p>~</p> 段落タグ。自動で</P>の直後に改行を挿入してくれます。
2.<br> 半改行。二個つけて始めて一行あきます(ここに注意)
3.<a>~</a> リンクタグ。言葉のとおり、別のページにつないでくれます。
4.<img> イメージタグ。画像表示用タグ
5.<font>~</font> フォントタグ。文字のサイズや、色などを調整するタグ。
タグについてはここまででいいのですが…。
今回からちょっと、濃い話を混ぜていきます。
まず、お気づきのとおり、タグだけでは単なる飾りです。
HTMLは基本こんな形式で出来ています。
<要素名 属性名="属性値">内容</要素名>
違うのは<meta>や<br>や<img>などの終了タグが無いものです。
さて、今回重要になってくるのは、この属性という部分です。
属性名はいろいろありますので、とりあえずよく使うものを続きにまとめてみました。
属性の中にある、http://geshp.osonae.com/image/Gamesoft Entertainment Specialist.jpg。
でも../image/Gamesoft Entertainment Specialist.jpgとなっているとおや?と思いますね。
こういうものをパスと呼びます。
相対パスと絶対パスというものがあります。
相対パス:自分がいるところからさかのぼったもの
絶対パス:最初から最後まできっちりかくもの
アバウトに説明するとこんな感じです。
(アバウトすぎる!って突っ込みはなしの方向で。
../ 一つ上のディレクトリ(フォルダのこと)
つまり、このパスは、別のフォルダから読み出すときに使うパスで
このページtop.htmlがhiroディレクトリにある場合
同じ階層のimageディレクトリから読み出すときは一度ホームに上がってしまい
そしてimegeディレクトリから画像を取ってくるわけです。
つまりこんな感じ。
パスはいろんなところで使うので、きちんと覚えておきましょう。
今回はここまで。
次回は<table>タグの説明と、フレームの説明を予定!
予定は未定!<マテ