忍者ブログ

カレンダー

01 2025/02 03
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

最新コメント

[07/13 ♀はっか]
[07/13 ♀はっか]
[07/11 ♀はっか]
[07/11 ♀はっか]
[03/16 空竜]

最新トラックバック

プロフィール

HN:
空竜
性別:
女性

バーコード

ブログ内検索

アクセス解析

忍者アナライズ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

重傷ではないが凹む

今日は人生初の乗り過ごしを経験。
まあ1駅だったし、遅刻もしなかったんだけども。
乗り換えだったから行き過ぎた駅から戻ってきた後、電車を待ってたんだけど・・・
「遮断棒が折れているとの連絡が・・・」
見事に電車が遅延。タイミングよ過ぎ。

で。今日は昨日の続きで通信いじり。
が。
1歩進んで2歩下がった(爆)
というのも。
次に確認したい内容をやろうとしたところ、昨日見過ごしていたバグを発見。
結局何も進まず、むしろ作業が増えた...orz
まぁ・・・なんとかするしかない。
といいつつどうすればいいのやら。
メモリに書き出しせにゃいけんっぽいけど・・・むむむ。
なにかとめんどくさい。

拍手

PR

大きな峠の向こうには小さな山が大量に・・・

なんともまぁ。
大半がサンプルとして入っていたソースをパチっただけだけど。
ワイヤレス通信できました。
とはいえお互いの画像の座標位置が見えるね〜ってだけ。
同期してるわけじゃない。
通信中のメンバー個々の座標が受信側から見える、
自分の座標を送信する、それだけ。

まだまだいじらないといけない部分が多々ある。
必要な情報は座標だけじゃないし、通信でこういう場合はどう処理するのか、
まだ同期通信してない誰かから既に同期通信しているメンバーの様子が
どうやれば見えるのか(ネトゲていうところのロビー的場面?)
ゲーム前の通信は?
ゲーム中の通信は?
ゲーム後の通信は?
エラー時はどうする?
送受信する必要があるデータは?
どうやって送受信する?
送るデータはどういうフォーマットで送る?
送られて来たデータをどう処理する?
多きな問題(ワイヤレス通信できない)が解決したはいいものの・・・
小さい問題が大量に出て来た。明日からは片っ端から順番にこなすしかない。
そんな今日はインターン9日目でしたとさ。
休みを除いて残り17日。
バグ取りを見越してあと10日で形は完成させておきたい。
通信面だけで終わってしまいそうだ・・・
とりあえず頑張らねば。
自分だけの問題じゃないんだから。
相方に迷惑かかるし。
というか、すでにかかっている(爆)

拍手

狂ってます

なんか昨日日記書くの忘れてたね。
まあいいけど。
正直毎日書いてる意味が見出せん。
やめたって誰も困らんし。
どうでもいい。
むしろオレの存在自体どうでもいい。
死ねばいいのに。
くたばれくたばれ。
しかしそれすらさせてくれない世の中。
下らん情で世の中腐れるわけだね。
あぁ腹立たしい。

昨日今日はひたすらワイヤレス通信のサンプルプログラム見てた。
でも何もわかっちゃいない。進展なし。
このまま最後までなにもできずに終わるわけだね。
周りを絶望のどん底に落すんだね。
わかりきっていたことがきっちり現実になるんだね。
あぁそれぐらいの方がよっぽどいいじゃないか。
喜ばせようだとか上手くいくようにだとか、そんなものを目指したところで
目指した場所に辿りついたって喜ばれることもないし上手くもいかないだろうよ。
何故って、最初からそういう生き物なんだし。このクソは。
邪魔なだけ。いっそ消えろ。あぁうざい。
ホント殺してやりたい。
それすらさせてくれない世の中はどうなってるんだ。
狂ってるだろ。
誰がだよ。世の中?
いんや、オレだろ。狂ってるのはオレなんだよ。
この世の中を狂ってると思ってるオレが狂ってるんだよ。
狂ってるなら今頃もっと地獄を見せてくれるはずなんだから。
自分の枠なんか遠く越えて。
ありとあらゆるものが狂っていくんだろうよ。
それはそれで面白そうだけど、残念。
だからそう思う自分が狂ってるんだってば。

拍手

だいぶ形になってきました

昨日に引き続き、自作printfに挑戦中。
昨日のうちに10進数の正の整数なら表示できるようになってたけど・・・
文字コードがshift-jisだったから、対DS用にutf-8に保存し直した。
オマケに使えるフォントは全角オンリーにしなきゃいけない。
もうこれだけで問題多数出てくるわけですよ。
普通に文字を表示するだけでも文字化け。

これを直すのに半日...orz

ありえねぇよほんと。

文字コードの長さがコロコロ変わりやがる・・・!!!

まず文字の最初の1バイトから全体の長さを割り出して、
1文字を表現するだけのバイト数を使って文字を表示して、
次の文字を読み込めるように、そのバイト数だけずらして・・・
なんとかバグは取れた。しかしまだまだ先は長い。

そもそも半角の文字を渡されても全角で表示しなきゃいけない罠。
大文字を小文字に、小文字を大文字に、なんて生温いもんじゃない。
えぇいめんどくせぇコレぐらい誰かやってないわけ!!?
ググる。
・・・あった。
ソースをコピー&ペーストして改造。
うむ。とりあえずなんとかなったっぽい。

でもって、フォーマット用の文字列だけでなく、%cで変数として
渡されたcharが表示できるのか、ということ。
何も考えずに表示しようとしたら案の定・・・没。
なんかオレchar*の中身見に行ってるな。
1文字のバイト数が固定じゃないんだから、中身を見ないといけないし。
・・・あ。
va_arg( list, char* )での返り値char*には文字そのものの番地が入ってるだけで
変数の中身じゃないのか!!そりゃ変数使ってないもんなぁ・・・
ということで。
フガフガしつつも解決。

さて、8進数でも16進数でも表示できるようにした。
これはそんなに難しくない。元の数を10で割っていたのを、
8で割るか16で割るか、に変えればそれだけでOK。

さらに、負の整数も表示できるようにした。
これもそんなに難しくない。負が来たら"-"を表示して、
元の数字には-1をかけて正にして、あとは同じ処理でOK。

さて。unsignedも表示できるようにしてみた。
ここでまた苦戦。
unsignedはsignedで表現できる範囲を越えてしまう。
今の書き方じゃ絶対無理。
いや。まて。
負かどうか最初に判定した後、わざわざ正に直してで計算してるんだから、
ここunsignedでも問題ないじゃん。で、使ってる変数をunsignedに変えてみる。
で、unsignedで表示するかsignedで表示するかフラグ作って・・・
・・・うん。なんとか解決。


では。
実際に使ってみる。




こう打ちました(比較のためにprintfでも表示してます)
実行。



表示されたけど。けど・・・!!
全角だとなんか・・・なんか・・・ッ!!!(汗汗汗)
でもまぁ・・・いいでしょう。
いい加減グラフィック作ろう(まだやってないんかい)

拍手

自力って大変。

今日は。
朝はぐったり。
昼からプログラミング。
あ、プログラムより先にグラフィック作らんと・・・(今思い出した)

で。プログラミングしてる内容ですが。
自作printfに挑戦中。
いや、DSで文字列表示させるためにプログラム組んでるけど、
変数渡したらのまま表示してくれるって便利じゃね?
「残り○○(数字)」とかで、数を変数に入れててさ。
"残り%d" で表示できるようになったら・・・うん。なんか幸せ。

というわけで。いろいろ調べてみました。
はてさて。printfの特徴といえば・・・
printf( "%d", a );

printf( "%d%d%d", a, b, c );
もできちゃうこと。引数に制限個数なんかないはず。
どうやら本来のprintfは可変引数のようです。
・・・なにそれ。
ようはいくらでも変数渡せちゃうわけです。
そんな関数自作できるんかぁ??

なんと。できるようです。

int printf( const char* format, ... )
こんな感じで引数書いて・・・

va_list list;
で引数を参照するためのva_list型の変数(list)を用意して・・・

va_start( list, format );
で「今からformatより後ろの引数使います」的な宣言して・・・

va_arg( list, 型名 )
で引数の中を指定した型(intとかdoubleとか)で取り出して・・・

va_end( list );
で「使い終わったよ」的宣言をして終了。

va_arg( list, 型名 )は使うと次の引数から参照するようになるらしくって、
1回目のva_argで1個目の引数、2回目のva_argで2個目の引数ができてしまう。
つまり。
int Ival = va_arg( list, int ); // ←1個目の引数をint型で参照
double Bval = va_arg( list, double ); // ←2個目の引数をdouble型で参照
とかとか。

ただ、これをしようと思ったら
#include
が必要らしい。これDSでも使えんのかぁ〜?
まぁできなかったら諦めるけどね。うむ。

とりあえず現状は文字列を前から参照して、
%がくるとint型で表示して、他の文字はそのまま表示する状態。
そう。intの内容をそのまま表示するようにするのも結構大変なのよね。
だって文字の'0'は0じゃないんだもん。48なんだもん。
困るわぁ。仕方ないけど。でも実はsprintfとかitoa( int )で数字の0を'0'に直して
くれたりするらしいんだけど、非標準だってさ。多分使えないなぁ。
ここから他の型も参照できるようにせねば。むむんむん。

拍手