第7回 関数基礎
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
~///////////////////////////////////
~
~/*TeRes PG班 第7回(だよね?)講義*/
~
~///////////////////////////////////
~
~/* 今回はせっかくなんで簡単なゲームを作ってみました
~ 戦闘システムはデ○モンTCGをちょっとパクってたり…w */
~
~#include <stdio.h>
~#include <stdlib.h>
~#include <time.h>
~#define DIFFICULT 5 // CPUは"1/DIFFICULT"の確立でこちら...
~
~/* あれ? main()の外に初期化がある…とか気づいてもスルー...
~ ※次回説明予定です ...
~int chara[2][4]={{1000,400,250,0},{1000,400,250,0}};
~int x,y;
~
~/* 今回は関数について講義します
~ 定義は以下のとおり
~ 戻り値 関数名(引数){んにゃんにゃ~;return 式;}
~ んじゃどんなもんか見てみましょう */
~int input(void){// ← 戻り値 関数名(引数){
~ printf("攻撃方法を1~3から選択してください\n");
~ printf("1:400\n2:250\n3:0(相手が1なら反射)\n");
~ scanf("%f",&x);
~ while(x<1||x>3){
~ printf("erorr!\n\n");
~ x=input();//こんな感じで関数内で同じ関数を呼...
~ }
~ /* 戻り値って何?
~ 戻り値ってのは関数から呼び出し元の関数に返す情報...
~ 戻り値の型は関数の最初に定義しなきゃいけません
~ 戻り値は必ず1つだけですが、下のようなことはでき...
~ if(~){return x;} else{return y;} */
~ return x;// ← return 式;
~}
~
~/* ここで引数について説明~
~ 引数ってのは呼び出し元の関数から呼び出された関数に渡...
~ 引数は呼び出された関数内のみで使える変数になります
~ ちなみに下の関数みたいに複数個設定することができます...
~void battle(int x/*引数1*/,int y/*引数2*/){// ← 戻り値 ...
~ if(x==3 && y==1)
~ chara[1][0]-=chara[1][1];
~ else if(x==1 && y==3)
~ chara[0][0]-=chara[0][1];
~ else{
~ chara[0][0]-=chara[1][y];
~ chara[1][0]-=chara[0][x];
~ }
~ /* 戻り値がvoidなのでreturn 式;は省略できます */
~}
~
~int main(void)
~{
~ srand(time(NULL));//乱数列の初期化だぜ
~ while(chara[0][0]>0 && chara[1][0]>0){
~ printf("YOU HP:%4d\nENEMY ~HP:%4d\n\n",cha...
~ /* ではここで関数の呼び出し方です
~ 関数名(引数);とすることで関数の呼び出しが...
~ x=input();//こいつはxにinput()のreturnを代入...
~ y=rand()%DIFFICULT+1;//CPUの後出し判定
~ if(y==1){
~ if(x==1)
~ y=3;
~ if(x==2)
~ y=1;
~ if(x==3)
~ y=2;
~ }
~ else//失敗したらランダムに手を選択
~ y=rand()%3+1;
~ battle(x,y);// 同じく関数呼び出し 戻り値がな...
~ }
~ printf("\nYOU HP:%4d\nENEMY HP:%4d\n\n",chara[0]...
~ if(chara[0][0]<=0 && chara[1][0]<=0)
~ printf("DRAW\n");
~ else if(chara[0][0]<=0)
~ printf("YOU LOST\n");
~ else
~ printf("YOU WIN\n");
~ return 0;
~}
~
~/* 自分は毎回言ってますがプログラムはやらなきゃ覚えません
~ 今回は無理やり関数使ってるだけなんで、関数部分は前回...
~ んで、このぐらいの簡単なゲームなら1時間もあれば組める...
~ どうせ音楽の時間なんかは暇なんだから自分で考えたプロ...
~ 実際にコンパイルしたら動かなかったとしてもスキルは上...
~ 自分も音楽の時間とか教習所の座学の時間に書いて覚えま...
~ あとは参考書買って無い人は買っておくことをホントにお...
~ 退屈な授業中の暇つぶしにもなる貴重な一冊です
~ ところでそろそろゲームを作っていける段階まで進んでき...
~ あと3~4回ぐらい講義したらやりたいこと聞く予定なんで...
終了行:
~///////////////////////////////////
~
~/*TeRes PG班 第7回(だよね?)講義*/
~
~///////////////////////////////////
~
~/* 今回はせっかくなんで簡単なゲームを作ってみました
~ 戦闘システムはデ○モンTCGをちょっとパクってたり…w */
~
~#include <stdio.h>
~#include <stdlib.h>
~#include <time.h>
~#define DIFFICULT 5 // CPUは"1/DIFFICULT"の確立でこちら...
~
~/* あれ? main()の外に初期化がある…とか気づいてもスルー...
~ ※次回説明予定です ...
~int chara[2][4]={{1000,400,250,0},{1000,400,250,0}};
~int x,y;
~
~/* 今回は関数について講義します
~ 定義は以下のとおり
~ 戻り値 関数名(引数){んにゃんにゃ~;return 式;}
~ んじゃどんなもんか見てみましょう */
~int input(void){// ← 戻り値 関数名(引数){
~ printf("攻撃方法を1~3から選択してください\n");
~ printf("1:400\n2:250\n3:0(相手が1なら反射)\n");
~ scanf("%f",&x);
~ while(x<1||x>3){
~ printf("erorr!\n\n");
~ x=input();//こんな感じで関数内で同じ関数を呼...
~ }
~ /* 戻り値って何?
~ 戻り値ってのは関数から呼び出し元の関数に返す情報...
~ 戻り値の型は関数の最初に定義しなきゃいけません
~ 戻り値は必ず1つだけですが、下のようなことはでき...
~ if(~){return x;} else{return y;} */
~ return x;// ← return 式;
~}
~
~/* ここで引数について説明~
~ 引数ってのは呼び出し元の関数から呼び出された関数に渡...
~ 引数は呼び出された関数内のみで使える変数になります
~ ちなみに下の関数みたいに複数個設定することができます...
~void battle(int x/*引数1*/,int y/*引数2*/){// ← 戻り値 ...
~ if(x==3 && y==1)
~ chara[1][0]-=chara[1][1];
~ else if(x==1 && y==3)
~ chara[0][0]-=chara[0][1];
~ else{
~ chara[0][0]-=chara[1][y];
~ chara[1][0]-=chara[0][x];
~ }
~ /* 戻り値がvoidなのでreturn 式;は省略できます */
~}
~
~int main(void)
~{
~ srand(time(NULL));//乱数列の初期化だぜ
~ while(chara[0][0]>0 && chara[1][0]>0){
~ printf("YOU HP:%4d\nENEMY ~HP:%4d\n\n",cha...
~ /* ではここで関数の呼び出し方です
~ 関数名(引数);とすることで関数の呼び出しが...
~ x=input();//こいつはxにinput()のreturnを代入...
~ y=rand()%DIFFICULT+1;//CPUの後出し判定
~ if(y==1){
~ if(x==1)
~ y=3;
~ if(x==2)
~ y=1;
~ if(x==3)
~ y=2;
~ }
~ else//失敗したらランダムに手を選択
~ y=rand()%3+1;
~ battle(x,y);// 同じく関数呼び出し 戻り値がな...
~ }
~ printf("\nYOU HP:%4d\nENEMY HP:%4d\n\n",chara[0]...
~ if(chara[0][0]<=0 && chara[1][0]<=0)
~ printf("DRAW\n");
~ else if(chara[0][0]<=0)
~ printf("YOU LOST\n");
~ else
~ printf("YOU WIN\n");
~ return 0;
~}
~
~/* 自分は毎回言ってますがプログラムはやらなきゃ覚えません
~ 今回は無理やり関数使ってるだけなんで、関数部分は前回...
~ んで、このぐらいの簡単なゲームなら1時間もあれば組める...
~ どうせ音楽の時間なんかは暇なんだから自分で考えたプロ...
~ 実際にコンパイルしたら動かなかったとしてもスキルは上...
~ 自分も音楽の時間とか教習所の座学の時間に書いて覚えま...
~ あとは参考書買って無い人は買っておくことをホントにお...
~ 退屈な授業中の暇つぶしにもなる貴重な一冊です
~ ところでそろそろゲームを作っていける段階まで進んでき...
~ あと3~4回ぐらい講義したらやりたいこと聞く予定なんで...
ページ名: