codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
// C(/C++)言語の関数の話・初心者向け・3 --------------------------------------------------------------- // // こんな(説明1、2)具合に、関数は「処理を何らかの単位で切り出す物」だけど、 // その考え方や動機は色々。 // // 説明の為に分割させる俺もいれば、計算処理だけ(ホント数学で言う関数のような)をさせたい事もあれば、 // 表示処理まで任せようと思うこと(サブルーチン)もあれば、色々。 // // そんな便利な「関数」だけど… // void fight_proc( const char name_A[32], int atk_A, int def_A // ← 引数多すぎて使いづれぇwww , const char name_B[32], int atk_B, int def_B ){ int dice_A = rand()%6 + 1; int dice_B = rand()%6 + 1; int damage_A = atk_B + dice_B - def_A; int damage_B = atk_A + dice_A - def_B; printf("%s は %s から %d のダメージを受けた!\n", name_A, name_B, damage_A); printf("%s は %s から %d のダメージを受けた!\n", name_B, name_A, damage_B); } // // …みたいな事になるので、そういった場合には次のステップで考え直してみる // // 1.この関数、どこまでやらすの? 何したい関数なの? // // 2.この関数、そもそもこれの中1箇所で全部書いちゃっていいの? もう一段階関数化出来ない? // // 3.やらせたい内容が合ってるつもりなら(他人に「こういう関数です」と説明出来るなら) // 他の方法で、もっとすっきりと引数渡せないだろうか // // どうなればいいか、どうやりたい内容を「切り取ったらいいか」は、色々書いて慣れる事。 // そして特に上の3のケースについては、別途書いた「構造体の話」をどうぞ。 void proc_D() { int atk_A = 10; // キャラAの攻撃力のつもり int def_A = 5; // キャラAの防御力のつもり int atk_B = 10; // キャラBの攻撃力のつもり int def_B = 5; // キャラBの防御力のつもり fight_proc("キャラA", atk_A, def_A, "キャラB", atk_B, def_B); } int main() { proc_D(); // ※この説明用に1カタマリにまとめた処理 return 0; } // おわり
Private
[
?
]
Run code
Submit