トップページgamedev
1001コメント348KB

Kazukiの同人3DRPG制作【第二話】

■ このスレッドは過去ログ倉庫に格納されています
0001Kazuki2010/09/19(日) 04:46:22ID:6P+qj1XK
Kazukiの同人3DRPG制作 公式サイト
ttp://www.kazuki-sendo.com/game/


発展途上中の素人Kazukiを中心として
DirectX9による3DRPG制作に挑戦します。


開発言語は、C++です。
長く苦しい戦いになると思われますが、
同人ゲーム制作の限界への挑戦が、当企画のテーマでもあります。
0352名前は開発中のものです。2010/09/20(月) 19:12:01ID:sEiPhw38
>>1をマとか呼ぶなよw
0353名前は開発中のものです。2010/09/20(月) 19:12:55ID:gAkdYKQD
ごめんなさい。
0354名前は開発中のものです。2010/09/20(月) 19:16:03ID:0PP3VNsK
>>347
上のあの人は超上級者レベルの人
多分、現役のゲーム会社のプログラマーじゃないかな?

そもそも出たばかりのDirectX11が理解できていることに驚いています。
多分、日本でも数人しかいないんじゃないかな?

そして、あなた方は、中級者レベル。
現役プログラマーにはとても見えないということ。

そして、俺は、初心者でも中級者でも上級者でもない。
ふわふわした存在。

上級者レベルのことを知ってるかと思えば、
入門者レベルのことも知らなかったりする。

これが俺の分析結果。
0355名前は開発中のものです。2010/09/20(月) 19:17:50ID:0PP3VNsK
とりあえず、俺は「素人」ってことでいいでしょ。

その方が解りやすい。うん。
0356名前は開発中のものです。2010/09/20(月) 19:18:14ID:+PtyrZu+
みんな。もっと生温かく見守ってあげようよ
0357名前は開発中のものです。2010/09/20(月) 19:18:20ID:/Qev/0UJ
脳みそが少なすぎてふわふわしてるのね
0358名前は開発中のものです。2010/09/20(月) 19:18:25ID:TSB9RtrO
foo(int a) の a がグローバルだと思ってるのなら、予めグローバル変数で a を定義しておいたらどうなるのかな

#include <stdio.h>

int a = 5963; // グローバル変数 a を予め定義

int foo(int a) // この a がグローバル (上の a と同じ) だと思ってるなら
{
printf("%d\n", a);
return a;
}

int main()
{
int b = foo(1) && foo(2) && foo(3) && foo(4) && foo(0) && foo(5) && foo(6);
printf("b : %d\n", b);
printf("a : %d\n", a); // その幻想をぶち殺す

return 0;
}
0359名前は開発中のものです。2010/09/20(月) 19:18:43ID:G1YrHPCT
無理かな
0360名前は開発中のものです。2010/09/20(月) 19:19:22ID:JDqAfrLM
こいつの頭の中ではDirectXだけでプログラマーのレベルが決まるんだな
0361名前は開発中のものです。2010/09/20(月) 19:22:18ID:ioukBWfm
帰ってきたらなんかほざいて逃げとるwwwwwwwwwwwwwwwwwwwww
じゃあどれをグローバルだと思ってたのかお聞かせいただきたいところだな
0362名前は開発中のものです。2010/09/20(月) 19:23:55ID:ioukBWfm
ちょっとまて

>上級者レベルのことを知ってるかと思えば、  ←
>入門者レベルのことも知らなかったりする

なんか上級者っぽいこと言ったことあるか?wwwww
0363名前は開発中のものです。2010/09/20(月) 19:26:53ID:uOYqy3lC
注:
本に書いてあることを知識として知ってるだけです
理解に達してないので応用は出来ません
御注意ください
0364名前は開発中のものです。2010/09/20(月) 19:28:01ID:yBk4qTKX
突っ込みどころ多すぎるけど

>>176
「ifより条件分岐」ってエスパーするとswtich文?
それやめた方がいいよ、BASICみたいな書き方してるならまだしも
0365名前は開発中のものです。2010/09/20(月) 19:31:02ID:0PP3VNsK
>>363
好きなだけ言ってろw

全部、解説していくから。

本当はC言語を飛ばして、
DirectXから解説しようと思ったけど、
それではいけないと思ったので基本の基本であるC言語から解説を始めることにしました。

結果、それは大正解だった。

自分の解釈間違えに気づくことができましたしね。

俺は着実に力を付けていっています。


いつか、あなた方を越えてるかもね。(^^
0366名前は開発中のものです。2010/09/20(月) 19:32:49ID:hjX4PyUc
>>364
DirectXのメインループ内で、メッセージ処理する時しか使ってないからだろうな
0367名前は開発中のものです。2010/09/20(月) 19:33:23ID:+PtyrZu+
なかなか珍しい敗北宣言だな。あれだけ罵っておいて謝るなんて
0368名前は開発中のものです。2010/09/20(月) 19:33:55ID:gAkdYKQD
着実に力って、まだハードルらしいハードル出てきてないじゃん。
0369名前は開発中のものです。2010/09/20(月) 19:38:24ID:ioukBWfm
>>365
致命的な解釈間違えしている分際で解説しようとしてんじゃねーよ
0370名前は開発中のものです。2010/09/20(月) 19:40:40ID:yBk4qTKX
>>22で「ATOM」とか「BOOT」って言ってて
>>25でATOMに関して突っ込みしてくれた方がいたけど

もしかしてBOOTじゃなくてBOOLって言いたいのかしら
眼科行った方がいいよ!
0371名前は開発中のものです。2010/09/20(月) 19:41:07ID:IoZlbWf+
C言語解説したら解釈間違えに気づいたんで結果大正解

オナニーに付き合わされる初心者の気持ちも考えてやってくれよ
0372名前は開発中のものです。2010/09/20(月) 19:41:45ID:RJ4jvRnB
winmainとか言い出したら発狂しそう
というかStandard Input/Output Headerを越えられそうにないな
リアルタイムなEvent-Driven設計とか見てみたい

すたじおえっち! おまじない!
0373名前は開発中のものです。2010/09/20(月) 19:42:16ID:/Qev/0UJ
KazukiさんのおかげでC言語に対する勉強意欲が湧きました!ありがとうございます!
0374名前は開発中のものです。2010/09/20(月) 19:42:24ID:p01Q1cpS
間違えたことに気づいても直そうとしないから意味ないな
0375名前は開発中のものです。2010/09/20(月) 19:55:02ID:ioukBWfm
       ,,--'''""`ヽ'   -/"~   ̄`ヽ、
     /       ヾ''"         ~`ヽ
    /       _,,,...  ヽ;:  /""ヽ    ヽ
   /         ;'"  "\ l /;:;;:::-'''ヽ,   i
  /         /,,--:-'''''"~:::::::::::::::::::::::::::ヽ,   .|
 /        /;:;;:::'''::::::::::::::::::::::::::::::::::::::::ヽ  ヽ
 |         |::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ  | 
/        ;/   :::::::::::、::::::::::::::::::::::::::::::;/ ヽ  i, 
/        ;:;:ヽ   ::::::::\::::::::::::::::::::::::/   ヽ  i, 
i          / )(   ::::\;;::::::::::::;/ ,,-'''ヽヽ ヽ  
|          |  ⌒ ,;''"'''-;,_ \l,::,l/ !" ●) |  | >>1 俺のサイトに糞スレ立ててんじゃねーぞ、糞ガキ!
|          |.   ( ●   >>><< `"''''''  |  | 
|         ;:|     "''''''''""^     \   |  |
|         ヽ.        ゝ( ,-、 ,:‐、)  |  |
 |       /ヾ..       /   ,--'""ヽ  |  |             ___,,,:--'''''"
 |          |       .//二二ノ""^ソ   |  |    _,,,..::---'''""""~~
..  |        `、ヽ     ヘ`\┼┼┼ ,!ヽ --==ニニ二,
   |         ヽ\     \"ヽ-;:,,,,,,ノ /  / |     "`''''''-----:;,,,,,,,,,_______,,,,,,
   |          l  `ー、_   \,,,,,__,,,ノ /ヽ./
   ヽ.        :人    ヽ-、  ∴∵  / |ヽl
   /;:;:;:;;:;:;: _/  `ー-、    "'====---''",.-'" \ー---
      ,.-'"  \:      \      .,.-''"     |
0376名前は開発中のものです。2010/09/20(月) 20:13:38ID:0PP3VNsK
俺が作ったゲーム動画をさっき見てきたんだけど、
あれ見てたら、
スターソルジャーが作りたくなってきた・・。

よし。
ゲーム第一弾は、スターソルジャーを作ってみることにします。(^^

スターソルジャー2というタイトルにすると、
さすがに版権ものでダメだと思うので、
「スターシューティン」とかのタイトルにしようかな?(^^

まずは、ファミコンゲームから挑戦しよう。


それが出来たら、東方っぽいシューティングゲームを作ってみたいと思います。

もちろん、解説しながら作っていきます。
0377名前は開発中のものです。2010/09/20(月) 20:16:43ID:imURypgH
なんでもいいからさっさと作って
ソース公開よろ
0378名前は開発中のものです。2010/09/20(月) 20:23:19ID:d2fwGT9E
int a=0;
a=a+(b>20);

はそんな突っ込む所ではないと思う
0379名前は開発中のものです。2010/09/20(月) 20:24:44ID:yBk4qTKX
あれか、演算子に関しては「小学生でもわかるように」説明しなきゃないのか…

12 / 2 * 6 = ?
この場合、除算と乗算の優先度は同じなので左から順に計算します

12 / (2 * 6) = ?
この場合、除算と乗算の優先度は同じなので左から計算されます"が"
括弧内の式が優先されるので括弧内の式を先に計算します

また加算と減算の優先度は除算、乗算より低いので
「12 + 2 * 6」の場合は「2 * 6」が先に計算され
「12 + 12」として計算します

なお算術演算子は加算<減算<乗算<除算<剰余の順に優先度が高くなります
これはプログラム言語においても例外ではありません。ないよね?

よって>>264
>>C言語の計算は「後ろから前に向かって」考える
というのは間違いになります
0380名前は開発中のものです。2010/09/20(月) 20:26:25ID:PwXEM5lE
こいつパクり根性が染み付いてるしコード書けるなんて誰も信じてないから
ソースでもバイナリでも出たら出展捜索大会だな
0381名前は開発中のものです。2010/09/20(月) 20:28:45ID:PwXEM5lE
>>379
こいつ==知らないんだよ
そんだけ
0382名前は開発中のものです。2010/09/20(月) 20:30:14ID:0PP3VNsK
>>380
何を言ってんだよww


さて、そろそろ次の解説でも作るとしよう。

俺のサイトでは、
新たな解説を作ってるときは、
毎回、準備中の動画をトップに表示させておくことにします。
0383名前は開発中のものです。2010/09/20(月) 20:36:23ID:/Qev/0UJ
さっさとゲーム作れよ
0384名前は開発中のものです。2010/09/20(月) 20:39:14ID:VIJpcxdi
>>1のような勉強の仕方でマトモなゲームなど作れる訳がない。
せいぜい人のものをパクってリソースを差し替えたりパラメータ
を弄るぐらいが関の山だ。
ことゲ製に限っては、勉強の仕方に近道などない。
0385名前は開発中のものです。2010/09/20(月) 20:39:22ID:0PP3VNsK
今、公式サイトのアクセス解析をしてみて驚いた・・(^^;
すげぇな・・これは・・。

とんでもないアクセス数になっています。

よし!みんなの期待に答えるため、
俺!がんばる!!


>>373
ありがとう。
励みになります。
0386名前は開発中のものです。2010/09/20(月) 20:40:05ID:IoZlbWf+
シューティングはもう出来てるって言ってたじゃん
なんでまた作るの?
3Dのシューティング作っちゃったから?
0387名前は開発中のものです。2010/09/20(月) 20:40:59ID:/Qev/0UJ
>>385
お前の様にならないためにって意味だよ
驕れんな
0388名前は開発中のものです。2010/09/20(月) 20:41:33ID:ioukBWfm
>>382
解説できるレベルじゃねーだろはやく過去作のソースうpれカス
0389名前は開発中のものです。2010/09/20(月) 20:43:31ID:0PP3VNsK
>>386
うん。まだちゃんとしたゲームは作っていません。

自機を動かして、
弾撃って敵をやっつける。

こんなのしか作っていません。


ゲームというのは、
ちゃんとスタート画面が表示されて、
ボタンを押せば、ゲームメイン画面が表示されて、
敵をやっつけたら点数が追加されていって、
最後までクリアできたら、エンディングが表示される。というもの。

そういうのを丸々一本作ってみたくなった。


東方はちょっと難しいから、
まずは、ファミコンゲームのシューティングから行きまーす!
0390名前は開発中のものです。2010/09/20(月) 20:45:39ID:ioukBWfm
お得意のコピペで龍神録のソース持ってきていじれば東方っぽいもんくらいなら簡単に作れるぞ?

ああ、DirectXを直接叩くんでしたね^^
0391名前は開発中のものです。2010/09/20(月) 20:46:01ID:p01Q1cpS
>>382
>俺のサイトでは、
>新たな解説を作ってるときは、
>毎回、準備中の動画をトップに表示させておくことにします。
さすが著作権に厳しいkazukiさん
0392名前は開発中のものです。2010/09/20(月) 20:48:01ID:0PP3VNsK
>>387
そんなこと言うなよ。

こんな敵だらけのところで
レス付けるだけでも、
2chに慣れてない人からすれば、結構勇気いると思うよ。

そんなキモチを察して「ありがとう」という言葉をその人に送っただけ。
0393名前は開発中のものです。2010/09/20(月) 20:51:14ID:IoZlbWf+
>>389

数ヶ月かけてようやく基本的なシステム作り終わったから
俺もシューティング作ってみるわ!
がんばろうぜ!
0394名前は開発中のものです。2010/09/20(月) 20:53:24ID:IonUW+dM
シューティング作るの?じゃあ俺も!
と言いたいところだけど素材が手間だな…
0395名前は開発中のものです。2010/09/20(月) 20:53:52ID:ioukBWfm
>>373>>387が同一人物であるということに気づいてないあたりIDなんて見てないんだろうな
0396名前は開発中のものです。2010/09/20(月) 20:55:54ID:/Qev/0UJ

まあ実際やる気が出たってのは確かなんだがな
0397名前は開発中のものです。2010/09/20(月) 21:00:02ID:JDqAfrLM
真性馬鹿は何についても馬鹿なんだな
0398名前は開発中のものです。2010/09/20(月) 21:08:32ID:HHenXYSU
ここだけ勢いがダントツとか
終わったな
0399名前は開発中のものです。2010/09/20(月) 21:08:45ID:yBk4qTKX
>>379を頑張って分かってもらえるように書いたのにスルーされた><。
このままじゃ>>1の3DRPGにおけるダメージ処理とかバグっちゃう!
0400名前は開発中のものです。2010/09/20(月) 21:30:32ID:0PP3VNsK
>>379
ごめんよ。
縦読みしてました。

「後ろから前に向かって」は、俺のオリジナルの解釈です。
多分、こんなこと言ってる解説はどこにもないと思う。

でも、俺の場合そうやって考えた方が解りやすかった。

計算は、「後ろから前に向かって」が基本で、
そこに、各演算子の優先順位が加わって順番が変わるのです。

*は+より先に計算される。
( )を使った場合は、( )の中を先に計算する。

それを=の左に移すのです。

a = a +(b+1)

これを

a + (b+1) = a

こんな感じで算数みたいに考えてはいけない。

小学校や高校までの計算式で考えると、
=の左右は同じって意味ですね?

0401名前は開発中のものです。2010/09/20(月) 21:41:14ID:yBk4qTKX
>>400
ふむ

>>381さんが軽く教えてくれてますが
プログラムにおいては「=」は代入で
算数・数学における「=」はプログラムにおいては「==」となっております

故に算数・数学における「12 / 2 * 6 = 36」は
プログラムにおける「36 == 12 / 2 * 6」と考える事が出来まして
文章で説明するなら、12 / 2 * 6 = 36は
左から順に12 / 2を計算した後に6と乗算した結果は36と「等価」であるとなります

文章で説明するならば、 a = a + (b + 1)は
b + 1を先に計算した後にaと加算し、その答えをaに「代入」するとなります

よ!
0402名前は開発中のものです。2010/09/20(月) 21:43:22ID:TSB9RtrO
C の = は代入演算子であって数学の等号とは違うものだってだけのことで「後ろから前に云々」とは全然関係ない話だわな
0403名前は開発中のものです。2010/09/20(月) 21:43:58ID:KOYHA8wF
a = a +(b+1)

a ← a +(b+1)
このように解釈する。
この←は、「代入」と呼ぶ。
矢印がASCIIコードに無いから 代わりに「=」を使う。
イコールの場合は、「==」
これがC言語のルールです。

ルールを守れなければ、違法エラーになります。
0404名前は開発中のものです。2010/09/20(月) 21:45:50ID:FBgjHnqX
>>400
だから後ろから前じゃねぇっつうの
>>286
の結果で分からないの?
0405名前は開発中のものです。2010/09/20(月) 21:45:58ID:KOYHA8wF
小学校や中学校でプログラムを書いている子もたくさんいるから、
あまりにも変なことを書くと、ガキに馬鹿にされるよ。
0406名前は開発中のものです。2010/09/20(月) 21:50:10ID:WrM+PpRx
kazukiはエターナルフォースブリザード打ちすぎだろ
0407名前は開発中のものです。2010/09/20(月) 21:52:25ID:0PP3VNsK
>>403
いや。だから、



でしょ?

後ろから前に考えているじゃないですか。

=が代入演算子って説明だと、

a = a +(b+1)


この場合、左のaを右に代入してるの?ってなる。

もっと噛み砕くと、

1 = a

こんな計算式は存在しない、
でも算数や数学では存在する。

素人はこんなところで疑問を感じるものなんです。

小学校や高校で、
そうやって教わってきたからね?
0408名前は開発中のものです。2010/09/20(月) 21:56:46ID:KOYHA8wF
kazukiは中学校を卒業してないように思う。
ヒキコモリで部屋に閉じこもっていたんでしょ

コンパイラ内部で後方からスタックに積んで、2パス目に前方から処理する
手法も有りますが、C言語はC言語のルールで書かないと違法です。
0409名前は開発中のものです。2010/09/20(月) 22:02:58ID:0PP3VNsK
まあいいよ。
こんな基礎的なこと、どうだって。

入門者に理解させるための工夫と思ってください。


ふう。今日はもう疲れた。

今日はこれで落ちます。


いつかもっとレベルの高い会話をしていることを、
切に願います。
0410名前は開発中のものです。2010/09/20(月) 22:03:28ID:JDqAfrLM
>>407
代入演算子の演算が右から左ってだけで
計算順序は左から右だから
0411名前は開発中のものです。2010/09/20(月) 22:03:42ID:yBk4qTKX
ありえん(笑)
0412名前は開発中のものです。2010/09/20(月) 22:05:19ID:JDqAfrLM
基礎的な事が間違ってるから指摘受けてるのに
0413名前は開発中のものです。2010/09/20(月) 22:05:36ID:WrM+PpRx
単に代入演算子の優先順位が低いから右からやってるように見えるだけじゃねぇのけ?
とりあえず足し算引き算より掛け算割り算のほうが先に計算されたよね?
演算子ごとの優先順位の話であって基本は左から右じゃねぇのかな?
0414名前は開発中のものです。2010/09/20(月) 22:07:00ID:p01Q1cpS
入門者に誤解させるための工夫だろ
0415名前は開発中のものです。2010/09/20(月) 22:07:34ID:sEiPhw38
入門者の工夫とか言って嘘教えるなよ。

数学(算数)の=はC言語では==を使うようになってます。
そしてC言語の=は「=の右側の計算結果を左側の変数に代入する」という記号です。

これでいいだろ。無理に数学(算数)の=と同じものだって教えるなよ。
0416名前は開発中のものです。2010/09/20(月) 22:08:28ID:VIO4RZby
どうでもいいよそんなことってこれまでに何回言ったw

前スレでレベルの高い会話()って結構あったけど
kazukiは理解できなくてスルーしてたじゃんw
0417名前は開発中のものです。2010/09/20(月) 22:08:30ID:KOYHA8wF
「代入」の概念は、C言語参考書の始めのあたりで解説するのですが、
それをまだ理解していないのでしょうね。

Kazukiさんは、日本語が不自由なのでしょうか?中国人のような印象があります。
中国系のフォーラムは主とか使いますし、考え方も中国人に似ています。
0418名前は開発中のものです。2010/09/20(月) 22:09:46ID:JDqAfrLM
しかし>>280のサイト見た上で
後ろから前って言ってるなら
ほんと、プログラマの才能皆無だな
0419名前は開発中のものです。2010/09/20(月) 22:10:21ID:yBk4qTKX
>>410氏も言ってるけど
代入演算子は右オペランドの値を左オペランドに代入します
変数 = 式 という形をとり、式によって求められた結果を
変数が示すオブジェクトに代入します

この事から、算数・数学的な12 / 2 * 6 = 36を
プログラム的な36 = 6 * 2 / 12と言う風に考えると
勘違いしたのではないかと思いました まる
0420名前は開発中のものです。2010/09/20(月) 22:11:39ID:C/DXzIIZ
>>410
右から左ってよりも、右辺から左辺という言い方の方がいいかもね
プログラミング言語の代入の=は方程式の=とは違うから、最初はa=a+1いう表現に自分も戸惑った
0421名前は開発中のものです。2010/09/20(月) 22:11:40ID:VIJpcxdi
とても聞き分けの悪い子をもった親の気分だ。
0422名前は開発中のものです。2010/09/20(月) 22:14:10ID:JDqAfrLM
聞き分け悪すぎるだろ
0423名前は開発中のものです。2010/09/20(月) 22:15:19ID:0PP3VNsK
>>416
俺にとっちゃ、今やってる会話レベルは、
本当に、どーでもいい。


ホント、マジで。。
0424名前は開発中のものです。2010/09/20(月) 22:15:52ID:yBk4qTKX
敵意を抱かないようにして教えてみたけど だめでしたー
0425名前は開発中のものです。2010/09/20(月) 22:16:50ID:KOYHA8wF
データ型も理解していないように思われます。
基礎はきちんと覚えないといけませんよ
0426名前は開発中のものです。2010/09/20(月) 22:16:59ID:VIO4RZby
>>423
だからお前はこの程度の会話レベルですら
ついてこれていないって事だよ
0427名前は開発中のものです。2010/09/20(月) 22:18:20ID:0PP3VNsK
>>424
そんなことないよ。

ttp://www.kazuki-sendo.com/game/?p=598
ここでちゃんと演算子の解説をしてるじゃないか。
0428名前は開発中のものです。2010/09/20(月) 22:19:41ID:JDqAfrLM
Kazukiが理解できてないと分かった事
・定数
・代入
・演算順序
・グローバル変数

0429名前は開発中のものです。2010/09/20(月) 22:22:13ID:JDqAfrLM
あとenumも理解してなかったな
マクロとか言ってたし
0430名前は開発中のものです。2010/09/20(月) 22:22:20ID:p01Q1cpS
前スレで指摘されるまでは

b + 10

でbに10が代入されると思ってたくらいだからな
0431名前は開発中のものです。2010/09/20(月) 22:23:05ID:0PP3VNsK
>>428
そういうことは、次の解説を読んでから言ってほしいね。


また重要なことを解説していますので。。

明日中にはアップされてると思うよ。
0432名前は開発中のものです。2010/09/20(月) 22:23:07ID:yBk4qTKX
>>427
それは単項の「書き方」とか「使い方」の説明なのです
0433名前は開発中のものです。2010/09/20(月) 22:23:59ID:sEiPhw38
プリプロセッサも理解してない。
0434名前は開発中のものです。2010/09/20(月) 22:24:18ID:JDqAfrLM
>>430
俺的にはそれをまだ理解してないから
bをaに代入するのに
a=a+b
なんてコードを書いたんだと思ってる
0435名前は開発中のものです。2010/09/20(月) 22:25:48ID:wmOTy5Ni
>>434
なるほど
0436名前は開発中のものです。2010/09/20(月) 22:26:13ID:ioukBWfm
こんな馬鹿が世の中に入るんだなー
基本がどうでもいいとか言っちゃったよ理解できてないくせに
0437名前は開発中のものです。2010/09/20(月) 22:28:44ID:0PP3VNsK
>>434
なんでだよ。

a=0;
b=0;
a=a+b

これなら、

1.bに0を入れる
2.=の右のaに0を入れる
3.計算結果を=の左のaに入れる

って考えれば後ろから前に向かって考えれるじゃないか。
0438名前は開発中のものです。2010/09/20(月) 22:29:54ID:KOYHA8wF
知恵遅れであることは、問題にしません。
間違ったなら、正しく修正しなければなりません。
そして、ルールは守らなければなりません。

どちらかと言うと人間としての躾が出来ていないようです。
0439名前は開発中のものです。2010/09/20(月) 22:31:03ID:TSB9RtrO
代入演算子特有の話を「C言語では式は後ろから前に計算される」と書いてしまうのがkazuki流

代入演算子の話に限っても、= の左辺値と右辺値がどっちが先に評価されるかは決して「後ろ
から前に」ではないはずだが (多分、処理系依存)。


でもって、「後ろから前に」を仮に認めるとしても、それが

  a = b>20

と書かずに

  a = a + (b>20
0440名前は開発中のものです。2010/09/20(月) 22:31:19ID:TrTl0m0a
今から風呂入ります
0441名前は開発中のものです。2010/09/20(月) 22:31:38ID:ioukBWfm
>>437
とりあえず学習能力と説明能力に致命的な障害があることはわかった
0442名前は開発中のものです。2010/09/20(月) 22:31:43ID:yBk4qTKX
代入演算子だけは(他にあったらごめんだけど)
変数 = 式のように書くのだよ!

でも「式」は算数、数学と同じように評価するのだよ!

代入演算子の「演算子」って言う言葉に惑わされちゃいけない!
0443名前は開発中のものです。2010/09/20(月) 22:31:57ID:TSB9RtrO
>>439途中で書き込んじまった。


 a = a + (b>20)

と書いてしまうことの理由にならない
0444名前は開発中のものです。2010/09/20(月) 22:32:19ID:WrM+PpRx
単純に

a=1-4;

ではどうよ?
4-1じゃなくて1-4だよね?
0445名前は開発中のものです。2010/09/20(月) 22:32:26ID:JDqAfrLM
>>437
なんでだよ
って言いながら
bをaに代入する時に
a=a+bとする理由に全くなってないんだけど
0446名前は開発中のものです。2010/09/20(月) 22:32:59ID:0PP3VNsK
俺は前までは

a=0;
b=0;
a=a+b

こんな場合、

1.bに0が入る
2.それを=の右のaに入れる
3.最後に=の左のaに入れる

と間違えて理解していた。

これが解っただけでも
一歩前進です。

大人の階段を一歩ずつ上っていきましょう。
0447名前は開発中のものです。2010/09/20(月) 22:36:24ID:JDqAfrLM
なんかほんとに質問の意味がわからない様なので
すごーくわかりやすく書いてみると

bをaに代入する時に
どうしてaとbを足してaに代入したの?
って事
0448名前は開発中のものです。2010/09/20(月) 22:36:54ID:0PP3VNsK
>>444
うん。そうだよ。

a=4;
b-1;
a=b-a;

この場合は、

1.aに4が入る
2.bに1が入る
(この時点では計算していない)

3.演算子の優先順位で計算して
4.最後に=の左のaに答えが入る
0449名前は開発中のものです。2010/09/20(月) 22:37:14ID:yBk4qTKX
int a,b;
a = a + b;
を考える場合は a = a + bの式を先に評価…つまり「a + b」を先に計算し
その結果をaに代入する って事ですね!
0450名前は開発中のものです。2010/09/20(月) 22:37:41ID:ioukBWfm
そんなに何行も使って力説せんでも「右のa+bの結果が左オペランドのaに入る」みたいなんでいいんじゃね
0451名前は開発中のものです。2010/09/20(月) 22:40:32ID:0PP3VNsK
これは脳内での考え方の問題だと思う。

物には順序があって、
その順番にことは進んでいる。

その順番を言っているんだよ。

まあ、コンピュータの計算は一瞬の世界だけどね。

その一瞬の世界を俺はコマ送りで考えて、より細かく考えているわけです。
0452名前は開発中のものです。2010/09/20(月) 22:41:27ID:JDqAfrLM
あくまでも後ろから前じゃないと気に食わないのかこいつは
cの演算は
演算子の優先順に前から後ろに演算するの。
で、代入演算子に関しては右オペランドから左オペランドに代入するってだけ。

順番はあくまでも
前から後ろ!左から右!
■ このスレッドは過去ログ倉庫に格納されています