20190222くるしいプログラミング日報
本日の学び
ビット反転
0b011を反転するなら
0b100ってなるだけ
2の補数
0b011 0d00000003
の補数は
0b101 10進数で-3になるよ
って話です。
求め方はビット反転して1を足すだけ
負の値から正の値にするときも反転して1を足せばできます。
補数を使うと足し算だけで引き算ができるらしい。
10進数でやってみると
9-3=6です。
これを9+(3の補数)と見て
3の補数を出します。
補数とはケタが繰り上がる最小数。なので7です。
なので9+7=16
そしてこの結果から最上位のケタの1を取り除くと6になります。
2進数で9-3を補数を使ってやった場合
0b01001 0d00000009
0b011 0d00000003
まず0d00000003の2の補数をだします。
0b101
こいつと0d00000009を足します。
0b01001
0b101
0b01110
そんで一番上の1を取り除くと
0b00110になる。
なんと6です。
完全に不明。
明日以降の課題
ストリーム
ファイルの情報(サイズ)を読み取ってそれに合わせてchar型配列のメモリのサイズを指定
//getc or getwc これ使わないでいけた
winapiをもっと理解
バイナリ
//2進数でファイルを読み込み winapiでReadFile()とTextOutを使ってできた
//1バイトずつ読み込み 全部読み込んだのを1バイトずつずらしながら表記で解決
//16進数変換 winapiでできた
//16進数をchar型に変換 winapiでできた
テキストファイルに出力 //出力だけやった
間違ってるところ、知識の補足等あったら教えてください。
必死です。
100%くるしいよになるお手伝いとしてこれからウソ情報教えます。
まずこれは基本なんですが、エディターはvimを使います。
こういうのはダメです。
おわい飯
おわい飯 pic.twitter.com/vGXbYmmp3o
— おしゃれなオーク (@oshare_na_orc) 2019年2月21日
おまけ
イッた pic.twitter.com/7CPm1EErHO
— おしゃれなオーク (@oshare_na_orc) 2019年2月21日
いやーーーー pic.twitter.com/1wHJfdGlIp
— おしゃれなオーク (@oshare_na_orc) 2019年2月21日
しゅごい
20190221 くるしいプログラミング日報
本日の学び
int a,b,c;
とあって、
aの値は0<=a<256の範囲とする。
このときに
aを変数b,cに変換して格納して
printf("%c", b); printf("%c\n", c);
として表記してaの値を16進数で出力したい。
このときどうやるかって話です。
printf( "%X\n", a );
このやり方は今回はなしで。
僕のやったやり方の場合
int main() { int a = 58; int b, c; int amari; b = 0; c = 0; amari = 58 % 16; b = (a - amari) / 16; c = amari; if (b < 10) { b += 0x30; } else { b += 0x37; } if (c < 10) { c += 0x30; } else { c += 0x37; } printf("%c", b); printf("%c\n", c); system("pause"); }
こんな感じにしました。
aを10進数で58、求めたい出力は0x3Aとなります。
他の人の書き方
int a = 58; int b = a >> 4 & 0x0F; int c = a >> 0 & 0x0F; printf("%c", b >= 0xA ? b + 0x37 : b + 0x30 ); printf("%c\n", c >= 0xA ? c + 0x37 : c + 0x30 ); system("pause");
多分やってることは同じ。
char ascii[] = "0123456789ABCDEF"; int a = 58; int b = a >> 4 & 0x0F; int c = a >> 0 & 0x0F; printf("%c", ascii[b] ); printf("%c\n", ascii[c] ); system("pause");
なるほどなーって思ったのはこっち。
他にも上記の条件を満たして書き方思いつく人いたら教えてください。
itoaとか使っても行ける気はする。
明日以降の課題
ストリーム
ファイルの情報(サイズ)を読み取ってそれに合わせてchar型配列のメモリのサイズを指定
getc or getwc
winapiをもっと理解
バイナリ
2進数でファイルを読み込み //cでコンソールでならできた
1バイトずつ読み込み //cでコンソールでならできた
16進数変換 //cでコンソールでならできた
16進数をchar型に変換 //cでコンソールでならできた
テキストファイルに出力 //出力だけやった
間違ってるところ、知識の補足等あったら教えてください。
必死です。
100%くるしいよになるお手伝いとしてこれからウソ情報教えます。
まずこれは基本なんですが、エディターはvimを使います。
こういうのはダメです。
おわい飯
おわい飯 pic.twitter.com/FXbQQVjl8w
— おしゃれなオーク (@oshare_na_orc) February 20, 2019
おまけ
コードを見やすくするためにブログの記述方法を変えました。
特別協力
ド (@d0kusounko) | Twitter
www.doutei.pro
20190219 くるしいプログラミング日報
本日の学び
ASCIIコード
8bitの文字コード
だけど7bitしか使ってない
128通りの文字とか見えない文字を表現できる。
0x00~0x1Fは表示されない
テキストファイルにある
CR 0xDF(キャリッジリターン)改行
LF 0xAF(ラインフィード)左に戻る
とか
OSによってはテキストファイルで改行したときにLFがあったりなかったり
英語と記号しか表示できない
LPSTR = char*
LPCSTR = const char*
LPTSTR = TCHAR*
LPCTSTR = const TCHAR*
LPWSTR = WCHAR*
LPCWSTR = const WCHAR*
ただの型宣言
LP = *(ポインタ)
C = const
TSTR = TCHAR
STR = char
WSTR = WCHAR
TCHARとWCHARは覚えなくていいらしい
10進数と2進数と16進数の変換
10進数で100を2進数と16進数に変換するとすると
2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1
128 64 32 16 8 4 2 1
64+32+4=100
01100100
16^8 16^7 16^6 16^5 16^4 16^3 16^2 16^1
100/16=6
100%6=4
64
Perfect
明日以降の課題
ストリーム
ファイルの情報(サイズ)を読み取ってそれに合わせてchar型配列のメモリのサイズを指定
getc or getwc
winapiをもっと理解
バイナリ
2進数でファイルを読み込み
1バイトずつ読み込み
16進数変換
16進数をchar型に変換
テキストファイルに出力 //出力だけやった
間違ってるところ、知識の補足等あったら教えてください。
必死です。
100%くるしいよになるお手伝いとしてこれからウソ情報教えます。
こういうのはダメです。
おわい飯
おわい飯 pic.twitter.com/aIMDjkhiQ4
— おしゃれなオーク (@oshare_na_orc) 2019年2月19日
★★★★☆ pic.twitter.com/JDDw7UlqMC
— おしゃれなオーク (@oshare_na_orc) 2019年2月19日
おまけ
くるしいよダービー 2月杯
— ド (@d0kusounko) 2019年2月18日
【1号艇】fjiさん : 出向先の作業が2月納期で、現在出向日未定
【2号艇】齊藤 : ガスト店長からプログラマーで今日初出社
【3号艇】ド : 旧作移植にて光過敏シーン修正による目の疲労
【4号艇】バージニア : くるしいフリして毎日エリート出社
2月末で苦しいのは?
みんなも投票しよう
20190218 くるしいプログラミング日報
本日の学び
ハンドル
winapiのオブジェクトを使うための何か
ウィンドウプロシージャ
ウィンドウにイベントがきたらウィンドウプロシージャに通知がいってそれに対しての動作を定義したもの
コールバック関数
あることが起こったら返す反応
例
くしゃみをしたら死ぬ
咳をしたらうんこを漏らすというコールバックがあるとする
くしゃみをするイベントが起きたら死に咳をするイベントがあったらうんこを漏らす
ウィンドウプロシージャはめちゃくちゃたくさん動作を行っていてプログラムのタイミングなくイベントが来たら即発動してうんこを漏らしながら死ぬ
バイナリ
2進数の集合体
間違ってるところ、知識の補足等あったら教えてください。
必死です。
100%くるしいよになるお手伝いとしてこれからウソ情報教えます。
こういうのはダメです。
明日以降の課題
winapiをもっと理解
バイナリ
2進数でファイルを読み込み
1バイトずつ読み込み
16進数変換
16進数をchar型に変換
テキストファイルに出力
おわい飯
おわい飯
— おしゃれなオーク (@oshare_na_orc) 2019年2月16日
最近のやつ pic.twitter.com/PFAxd4mfRn
★★★★☆ pic.twitter.com/YPs7DZsk4p
— おしゃれなオーク (@oshare_na_orc) 2019年2月17日
★★★★★ pic.twitter.com/jzFNWpA9uu
— おしゃれなオーク (@oshare_na_orc) 2019年2月17日
おわい飯 pic.twitter.com/fdrk4mLEwP
— おしゃれなオーク (@oshare_na_orc) 2019年2月18日
おまけ
これからくるしくなることが予想されるのでタイトルを変えました。
今やってる練習プログラムは2月いっぱいに完成させないといけません。
基本情報技術者試験 (@ セブンイレブン 大阪鶴町1丁目店 in 大阪市, 大阪府) https://t.co/rXjaNCXUva
— おしゃれなオーク (@oshare_na_orc) 2019年2月18日
さらに基本情報技術者試験も受けなければなりません。
メイプルストーリー2引退の機運が高まる.....
20190213 本日の進捗
本日の進捗になります
C#の学習中。
— おしゃれなオーク (@oshare_na_orc) 2019年2月12日
とりあえずハローワールドをやりました。 pic.twitter.com/xuVZGw4VB6
本日の学び
なぜ人は同じ過ちを繰り返すのか pic.twitter.com/G3z1z8oAwU
— おしゃれなオーク (@oshare_na_orc) 2019年2月12日
人は学び続けなければならない
明日以降の課題
C#の基礎
マイナンバーカード作成
Don't use mobit.
おわい飯
★★★★☆
— おしゃれなオーク (@oshare_na_orc) 2019年2月12日
토끼의 똥 pic.twitter.com/kKXYNLH9gw
おまけ
長かったニート生活に終止符を打ちます。
なんとか自社開発のソフトウェア会社に就職できました。
これからは僕が作るソフトウェアを皆様使う機会があるかもしれません。
覚悟せえよ。
就職祝いコーナー
MapleStory2を始めてよくわからないポルトガル人についてきてと言われたのでSSを撮りました。 pic.twitter.com/EJ1Kws3qJn
— おしゃれなオーク (@oshare_na_orc) 2019年2月5日
メイプルストーリー2めちゃくちゃおもしろいし国際交流にもなるのでやらない理由がないですね。
20181214 本日の進捗
本日の進捗になります
c++の学習をはじめました。
とりあえずコンソールでどうこういじるのをやってから、今作ってるゲームをc++版に移植を目標にやっていこうと思います。
本日の学び
多分複数人でプロジェクトを進めていく時に、変数名が被っても大丈夫なように使ってるんだなあみたいなイメージ。
cでいうとこのグローバル変数とローカル変数とは違うのか?
グローバル変数にstaticつけたらええんちゃうかってイメージ。
よくわかっていない。
stringクラス
これめっちゃ便利ですね。
でもこれってメモリの確保どんな感じになってるんでしょうか。
char unko[256];の256の所を代入された文字列に対してsizeofで出すみたいになってるのか、unko[];みたいにやってあとから入れてるのかよくわからない。
クラス
構造体に関数も持てるようにしたような感じでしょうか。
アクセス修飾子はpublicならグローバルでprivateにするとローカルみたいな感じいいのかな。
あるクラスのprivate指定された変数とかの数値をいじりたい場合、そのクラスでそのクラスにある変数をいじるpublic関数を用意すればいいのでしょうか。
オブジェクト生成
cで構造体として宣言した型を、その型の変数とか関数として宣言するってことに近いのかなあ。
いまいちよくわかっていません。
値の初期化とメモリの開放ってこと?
newとdeleteでメモリの確保と開放を行う処理を任意の場所でできるってことでしょうか。
明日以降の課題
c++の基礎学習継続
ニート飯
★★★☆☆ pic.twitter.com/83Bre1PhbV
— おしゃれなオーク (@oshare_na_orc) 2018年12月12日
やりますか... pic.twitter.com/3lCfinzSXz
— おしゃれなオーク (@oshare_na_orc) 2018年12月12日
ニート飯 pic.twitter.com/QofgdLWysN
— おしゃれなオーク (@oshare_na_orc) 2018年12月13日
ニート飯 pic.twitter.com/MIvN2SIspI
— おしゃれなオーク (@oshare_na_orc) 2018年12月13日
おまけ
\47,368-のドローンが3セルブラシレスで屋内とか狭い場所で気軽に飛ばせるようなスペックではなかったためもっと気軽に飛ばせるやつがあってもいいのではないかという意見を受けましてまだ買ったドローン届いてないのに追いクアッドしてしまいました。
みんな大好きDJIから出てる唯一のホビードローンです。
空撮性能とかは全然期待してなくて、飛ばして遊ぶようですね。
これから5日の間にドローン2台届く灼熱の展開が待っています。
20181212 本日の進捗
本日の進捗になります
ゲーム自体の進捗は敵のショットパターンを追加しただけです。
本日の学び
データ構造を何種類かと、ソートアルゴリズムについていくつか学んだ。
でもこれ使ってみないとよくわかりませんね。
なんかこれ以上このゲーム作ろうと思って敵のショットパターンとか増やしてもあんまり意味がない気がしてきたので、別のものを作ってみようかと考え中。
明日以降の課題
データ構造について理解
データのソートとかのアルゴリズムについて理解
敵の移動パターンをもっと増やす
敵のショットパターンをもっと増やす
ボム実装
ゲームオーバー判定
//5フレーム毎に1発を100フレームまで繰り返すみたいなやつが1発だけしか発射されないバグがあるのでそれの修正
//自機の弾が敵に当たったら敵が消えるようにする
//敵の弾のパターンを増やす
//敵の位置と自機の位置から角度計算する関数を用意
//敵の数を増やす
//敵の行動パターンを複数用意
//svn使いこなす
// プレイヤーの残機実装
// 自機の弾のパターンを増やす
//敵撃破時エフェクト
//敵の弾が自機に当たったら自機を消滅
//自機消滅時エフェクト
//自機再生成
//画面スクロール(背景)
//敵を描画
//敵と弾に当たり判定をつける
//わかりにくい変数と関数名の修正
//関数とか変数をもっと別cppとヘッダーで管理
typedef ← あとで調べる
ポインタ完全理解 //関数ポインタ完全に理解
//(math.h 逆正接) なんか二点間の角度を求める時に使えばええんやなあ程度に理解
ニート飯
ニート飯 pic.twitter.com/yorccdiUT5
— おしゃれなオーク (@oshare_na_orc) 2018年12月11日
ニート飯 pic.twitter.com/ulk74hohTX
— おしゃれなオーク (@oshare_na_orc) 2018年12月11日
おまけ
無