トップページ > 過去ログ > 記事閲覧
敵の弾についてpart2
名前:yk 日時: 2010/10/07 23:19

どうも。 前回、”敵の弾について”というスレッドを作成しまして、そこに書いてあるプログラムに ”敵に弾を撃たせる”という機能をいっちさんにつけてもらいました。(感謝してます^^) 今度はそのプログラムに 敵に”tekitama.png”という画像を撃たせたいのですが、やはりうまくいきませんでした。 聞くのが早いと思いまして投稿しました。 くだらない質問だと思っていても答え待ってます。 ソースコード #include"DxLib.h" #define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 480 #define DANSU 10 #define DANSU2 10 #define ENEMY_COUNT 20 #define ENEMY_COUNT2 10 #define ENEMY_COUNT3 1 //- ADD #define ENEMY_SHOT_COUNT 10 int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdThow ) { //自機のx y座標、自機のグラフィックハンドルを作成 int x , y, w , h , Graph; //弾のx,y座標、弾のフラグ、弾のグラフィックハンドルを作成 int Tx[DANSU] , Ty[DANSU], TFlag[DANSU], Tw, Th, TGraph; //弾のx,y座標、弾のフラグ、弾のグラフィックハンドルを作成 int TTx[DANSU2] , TTy[DANSU2], TTFlag[DANSU2], TTw, TTh, TTGraph; //スペースキーを押しているか押していないかをチェックするフラグ int TCFlag; //Bキーを押しているか押していないかをチェックするフラグ int TTCFlag; //敵のx,y座標、敵のグラフ、敵のグラフィックハンドルを作成 int Ex[ENEMY_COUNT], Ey[ENEMY_COUNT], EFlag[ENEMY_COUNT], Ew, Eh, EGraph; //敵のx,y座標、敵のグラフ、敵のグラフィックハンドルを作成 int EEx[ENEMY_COUNT2], EEy[ENEMY_COUNT2], EEFlag[ENEMY_COUNT2], EEw, EEh, EEGraph; //敵のx,y座標、敵のグラフ、敵のグラフィックハンドルを作成 int EEEx[ENEMY_COUNT3], EEEy[ENEMY_COUNT3], EEEFlag[ENEMY_COUNT3], EEEw, EEEh, EEEGraph; //- ADD int EnemyShotFlag[ENEMY_SHOT_COUNT] = { 0 }, EnemyShotX[ENEMY_SHOT_COUNT] = { 0 }, EnemyShotY[ENEMY_SHOT_COUNT] = { 0 }; //for文用 int i , j , k ; //撃墜数 int count= 0; //残機数 int life = 50; //ゲームオーバーフラグ int isGameOver = 0; //画面モードの設定 SetGraphMode( SCREEN_WIDTH , SCREEN_HEIGHT , 32 ); //画面モードをウインドウモードに変更 ChangeWindowMode(TRUE); //ウインドウのタイトルを変更 SetMainWindowText("しゅーてぃんぐげーむ"); // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1 ; //描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ); //自機のグラフィックをメモリーにロード Graph = LoadGraph( "test1.png"); //弾のグラフィックをメモリーにロード TGraph = LoadGraph( "tama.png"); //弾のグラフィックをメモリーにロード TTGraph = LoadGraph( "killer shot.png"); //敵のグラフィックメモリにロード EGraph = LoadGraph( "te-ki-.png" ) ; //敵のグラフィックメモリにロード EEGraph = LoadGraph( "te-ki-2.png" ) ; //敵のグラフィックメモリにロード EEEGraph = LoadGraph( "te-ki-3.png" ) ; //自機のx,y座標を初期化 x = 300; y =400; // 弾が画面上に存在しているか保持する変数に『存在していない』を意味する0を代入しておく for(i=0;i<DANSU;i++){ TFlag[i] = 0 ; } //ショットボタンが前のフレームで押されたかどうかを保存する変数荷0(押されていない)を代入 TCFlag = 0 ; for (i = 0 ; i < ENEMY_COUNT ; i++){ EFlag[i] = 0; } for (i = 0 ; i < ENEMY_COUNT2 ; i++){ EEFlag[i] = 0; } for (i = 0 ; i < ENEMY_COUNT3 ; i++){ EEEFlag[i] = 0; } // 弾が画面上に存在しているか保持する変数に『存在していない』を意味する0を代入しておく for(k=0;k<DANSU2;k++){ TTFlag[k] = 0 ; } //ショットボタンが前のフレームで押されたかどうかを保存する変数荷0(押されていない)を代入 TTCFlag = 0 ; for (i = 0 ; i < ENEMY_COUNT ; i++){ EFlag[i] = 0; } for (i = 0 ; i < ENEMY_COUNT2 ; i++){ EEFlag[i] = 0; } for (i = 0 ; i < ENEMY_COUNT3 ; i++){ EEEFlag[i] = 0; } // 自機、弾、敵のグラフィックのサイズを得る GetGraphSize( Graph , &w , &h ) ; GetGraphSize( TGraph , &Tw , &Th ) ; GetGraphSize( TTGraph , &TTw , &TTh ) ; GetGraphSize( EGraph , &Ew , &Eh ) ; GetGraphSize( EEGraph , &EEw , &EEh ) ; GetGraphSize( EEEGraph , &EEEw , &EEh ) ; //移動処理 while(!isGameOver){ //画面に描かれているのもを一回全部消す ClsDrawScreen(); //上下左右のキー入力に対応して x,yの座標値を変更する if( CheckHitKey( KEY_INPUT_LEFT ) == 1 ) x -= 8; if( CheckHitKey( KEY_INPUT_RIGHT ) == 1 ) x += 8; if( CheckHitKey( KEY_INPUT_UP ) == 1 ) y -= 8; if( CheckHitKey( KEY_INPUT_DOWN ) == 1 ) y += 8; // スペースキーを押していて、かつ弾が撃ち出されていなかったら弾を発射する if( CheckHitKey( KEY_INPUT_SPACE ) == 1) { // 前フレームでショットボタンを押したかが保存されている変数が0だったら弾を発射 if(TCFlag == 0){ //@(if(TCFlag == 0){)を//(if(TCFlag == 0){)にして // 画面上にでていない弾があるか、弾の数だけ繰り返して調べる for(i=0;i<DANSU;i++){ // 弾iが画面上にでていない場合はその弾を画面に出す if(TFlag[i] == 0){ // 弾の位置をセット、位置は位置の中心にする Tx[i] = ( w - Tw ) / 2 + x ; Ty[i] = ( h - Th ) / 2 + y ; // 弾は現時点を持って存在するので、存在状態を保持する変数に1を代入する TFlag[i] = 1 ; // 一つ弾を出したので弾を出すループから抜けます //抜けないと1回押しただけで全部の弾が次々と出てしまう break; } } } //A}を//}にする // 前フレームでショットボタンを押されていたかを保存する変数に1(おされていた)を代入 TCFlag = 1; } else{ // ショットボタンが押されていなかった場合は // 前フレームでショットボタンが押されていたかを保存する変数に0(おされていない)を代入 TCFlag = 0 ; } // Lキーを押していて、かつ弾が撃ち出されていなかったら弾を発射する if( CheckHitKey( KEY_INPUT_L ) == 1){ // 前フレームでショットボタンを押したかが保存されている変数が0だったら弾を発射 if(TTCFlag == 0){ // 画面上にでていない弾があるか、弾の数だけ繰り返して調べる for(k=0;k<DANSU2;k++){ // 弾iが画面上にでていない場合はその弾を画面に出す if(TTFlag[k] == 0){ // 弾の位置をセット、位置は位置の中心にする TTx[k] = ( w - TTw ) / 2 + x ; TTy[k] = ( h - TTh ) / 2 + y ; // 弾は現時点を持って存在するので、存在状態を保持する変数に1を代入する TTFlag[k] = 1 ; // 一つ弾を出したので弾を出すループから抜けます //抜けないと1回押しただけで全部の弾が次々と出てしまう break; } } // 前フレームでショットボタンを押されていたかを保存する変数に1(おされていた)を代入 TTCFlag = 1; } } else{ // 前フレームでショットボタンが押されていたかを保存する変数に0(おされていない)を代入 TTCFlag = 0 ; } for (i = 0 ; i < ENEMY_COUNT; i++){ if (GetRand(100) == 0) { //GetRandの()内の数字を変えると敵の量を調節すろことが可能。少なくすると、いっぱい出てくる //敵iが画面上に出ていない場合はその弾を画面に出す if (EFlag[i] == 0){ //敵の画像ファイルを得る GetGraphSize(EGraph, &Ew, &Eh); //敵の位置をセット、位置はランダムに Ex[i] = GetRand(SCREEN_WIDTH - Ew); Ey[i] = -Eh; //敵は現時点をもって存在するので、存在状態を保持する変数に1を代入する EFlag[i] = 1; //一つ敵を出したので敵を出すループから抜けます //抜けないと1回押しただけで全部の敵が次々と出てしまう break; } } } for (i = 0 ; i < ENEMY_COUNT2; i++){ if (GetRand(100) == 0) { //GetRandの()内の数字を変えると敵の量を調節すろことが可能。少なくすると、いっぱい出てくる //敵iが画面上に出ていない場合はその弾を画面に出す if (EEFlag[i] == 0){ //敵の画像ファイルを得る GetGraphSize(EEGraph, &EEw, &EEh); //敵の位置をセット、位置はランダムに EEx[i] = GetRand(SCREEN_WIDTH - Ew); EEy[i] = -Eh; //敵は現時点をもって存在するので、存在状態を保持する変数に1を代入する EEFlag[i] = 1; //一つ敵を出したので敵を出すループから抜けます //抜けないと1回押しただけで全部の敵が次々と出てしまう break; } } } for (i = 0 ; i < ENEMY_COUNT3; i++){ if (GetRand(1000) == 0) { //GetRandの()内の数字を変えると敵の量を調節すろことが可能。少なくすると、いっぱい出てくる //敵iが画面上に出ていない場合はその弾を画面に出す if (EEEFlag[i] == 0){ //敵の画像ファイルを得る GetGraphSize(EEEGraph, &EEEw, &EEEh); //敵の位置をセット、位置はランダムに EEEx[i] = GetRand(SCREEN_WIDTH - EEEw); EEEy[i] = -Eh; //敵は現時点をもって存在するので、存在状態を保持する変数に1を代入する EEEFlag[i] = 1; //一つ敵を出したので敵を出すループから抜けます //抜けないと1回押しただけで全部の敵が次々と出てしまう break; } } } //- ADD for ( i = 0; i < ENEMY_COUNT2; i++ ) { if ( !EEFlag[i] ) continue; if ( GetRand( 100 ) ) continue; for ( j = 0; j < ENEMY_SHOT_COUNT; j++ ) { if ( !EnemyShotFlag[j] ) { GetGraphSize( EEGraph, &EEw, &EEh ); EnemyShotX[j] = EEx[i] + EEw / 2; EnemyShotY[j] = EEy[i] + EEh; EnemyShotFlag[j] = 1; break; } } } //- ADD End //自機が画面左端からはみ出そうになっていてら画面内の座標に戻してあげる if( x < 0 ) x = 0 ; //自機が画面右端からはみ出そうになっていてら画面内の座標に戻してあげる if( x > SCREEN_WIDTH - 64 ) x = SCREEN_WIDTH - 64 ; //自機が画面上端からはみ出そうになっていてら画面内の座標に戻してあげる if( y < 0) y = 0 ; //自機が画面端からはみ出そうになっていてら画面内の座標に戻してあげる if( y > SCREEN_HEIGHT - 64 ) y = SCREEN_HEIGHT - 64 ; // x , y が示す画像座標にGraphを描画する DrawGraph( x , y , Graph , TRUE ); // 弾の数だけ弾を動かす処理を繰り返す for(i=0;i<DANSU;i++){ // 自機の弾の移動処理( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う ) if( TFlag[i] == 1 ) { // 弾を16ドット上に移動させる Ty[i] -= 16 ; // 画面外に出てしまった場合は存在状態を保持している変数に0(存在しない)を代入する if( Ty[i] < -80 ) { TFlag[i] = 0 ; } // 画面に弾を描画する DrawGraph( Tx[i] , Ty[i] , TGraph , TRUE ) ; } } // 弾の数だけ弾を動かす処理を繰り返す for(k=0;k<DANSU2;k++){ // 自機の弾の移動処理( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う ) if( TTFlag[k] == 1 ) { // 弾を16ドット上に移動させる TTy[k] -= 30 ; // 画面外に出てしまった場合は存在状態を保持している変数に0(存在しない)を代入する if( TTy[k] < -80 ) { TTFlag[k] = 0 ; } // 画面に弾を描画する DrawGraph( TTx[k] , TTy[k] , TTGraph , TRUE ) ; } } //敵の数だけ敵を動かす処理を繰り返す for(i = 0; i < ENEMY_COUNT; i++) { //敵の移動処理( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う) if (EFlag[i] == 1) { //敵を6ドット上に移動させる Ey[i] += 6; //画面外に出てしまった場合は存在状態を保持している変数に0を代入する if (Ey[i] > 500) { EFlag[i] = 0; } //画面に敵を描画する DrawGraph( Ex[i] , Ey[i] , EGraph , TRUE ); } } //敵の数だけ敵を動かす処理を繰り返す for(i = 0; i < ENEMY_COUNT2; i++) { //敵の移動処理( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う) if (EEFlag[i] == 1) { //敵を6ドット上に移動させる EEy[i] += 6; //画面外に出てしまった場合は存在状態を保持している変数に0を代入する if (EEy[i] > 500) { EEFlag[i] = 0; } //画面に敵を描画する DrawGraph( EEx[i] , EEy[i] , EEGraph , TRUE ); } } //敵の数だけ敵を動かす処理を繰り返す for(i = 0; i < ENEMY_COUNT3; i++) { //敵の移動処理( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う) if (EEEFlag[i] == 1) { //敵を6ドット上に移動させる EEEy[i] += 6; //画面外に出てしまった場合は存在状態を保持している変数に0を代入する if (EEEy[i] > 500) { EEEFlag[i] = 0; } //画面に敵を描画する DrawGraph( EEEx[i] , EEEy[i] , EEEGraph , TRUE ); } } //- ADD for ( i = 0; i < ENEMY_SHOT_COUNT; i++ ) { if ( !EnemyShotFlag[i] ) continue; if ( EnemyShotY[i] > SCREEN_HEIGHT ) { EnemyShotFlag[i] = 0; continue; } EnemyShotY[i] += 10; DrawCircle( EnemyShotX[i], EnemyShotY[i], 3, GetColor( 255, 0, 0 ), TRUE ); } //- ADD End //弾と敵の当たり判定、それぞれの弾について検証する for( i = 0 ; i < DANSU; i++ ) { //一つひとつの弾につき一機いっきとの接触を検証する for(j = 0 ; j < ENEMY_COUNT ; j++){ //弾iが存在している場合のみ次の処理に映る if( TFlag[i] == 1 && EFlag[j] == 1 ) { //敵と当たり判定 int tx = Tx[i]; int ty = Ty[i]; int ex = Ex[j]; int ey = Ey[j]; if (( tx < ex + Ew ) && ( tx + Tw > ex ) && ( ty < ey + Eh ) && ( ty + Th > ey)) { //接触している場合は当たった弾の存在を消す TFlag[i] = 0;// (TFlag[i] = 0;)を(//TFlag = 0;)にすると貫通弾が作れる EFlag[j] = 0; //( = 0;)を( = 1;)にすると? count++; } } } } //弾と敵の当たり判定、それぞれの弾について検証する for( i = 0 ; i < DANSU; i++ ) { //一つひとつの弾につき一機いっきとの接触を検証する for(j = 0 ; j < ENEMY_COUNT2 ; j++){ //弾iが存在している場合のみ次の処理に映る if( TFlag[i] == 1 && EEFlag[j] == 1 ) { //敵と当たり判定 int tx = Tx[i]; int ty = Ty[i]; int Eex = EEx[j]; int Eey = EEy[j]; if (( tx < Eex + EEw ) && ( tx + Tw > Eex ) && ( ty < Eey + EEh ) && ( ty + Th > Eey)) { //接触している場合は当たった弾の存在を消す TFlag[i] = 0;// (TFlag[i] = 0;)を(//TFlag = 0;)にすると貫通弾が作れる EEFlag[j] = 0; //( = 0;)を( = 1;)にすると? count++; } } } } //弾と敵の当たり判定、それぞれの弾について検証する /*for( i = 0 ; i < DANSU; i++ ) { //一つひとつの弾につき一機いっきとの接触を検証する for(j = 0 ; j < ENEMY_COUNT3 ; j++){ //弾iが存在している場合のみ次の処理に映る if( TFlag[i] == 1 && EEEFlag[j] == 1 ) { //敵と当たり判定 int tx = Tx[i]; int ty = Ty[i]; int EEex = EEEx[j]; int EEey = EEEy[j]; if (( tx < EEex + EEEw ) && ( tx + Tw > EEex ) && ( ty < EEey + EEEh ) && ( ty + Th > EEey)) { //接触している場合は当たった弾の存在を消す TFlag[i] = 0;// (TFlag[i] = 0;)を(//TFlag = 0;)にすると貫通弾が作れる EEEFlag[j] = 0; //( = 0;)を( = 1;)にすると? count++; } } } }*/ //弾と敵の当たり判定、それぞれの弾について検証する for( k = 0 ; k < DANSU2; k++ ) { //一つひとつの弾につき一機いっきとの接触を検証する for(j = 0 ; j < ENEMY_COUNT ; j++){ //弾iが存在している場合のみ次の処理に映る if( TTFlag[k] == 1 && EFlag[j] == 1 ) { //敵と当たり判定 int Ttx = TTx[k]; int Tty = TTy[k]; int ex = Ex[j]; int ey = Ey[j]; if (( Ttx < ex + Ew ) && ( Ttx + TTw > ex ) && ( Tty < ey + Eh ) && ( Tty + TTh > ey)) { //接触している場合は当たった弾の存在を消す TTFlag[k] = 0;// (TFlag[i] = 0;)を(//TFlag = 0;)にすると貫通弾が作れる EFlag[j] = 0; //( = 0;)を( = 1;)にすると? count++; } } } } //弾と敵の当たり判定、それぞれの弾について検証する for( k = 0 ; k < DANSU2; k++ ) { //一つひとつの弾につき一機いっきとの接触を検証する for(j = 0 ; j < ENEMY_COUNT2 ; j++){ //弾iが存在している場合のみ次の処理に映る if( TTFlag[k] == 1 && EEFlag[j] == 1 ) { //敵と当たり判定 int Ttx = TTx[k]; int Tty = TTy[k]; int Eex = EEx[j]; int Eey = EEy[j]; if (( Ttx < Eex + EEw ) && ( Ttx + TTw > Eex ) && ( Tty < Eey + EEh ) && ( Tty + TTh > Eey)) { //接触している場合は当たった弾の存在を消す TTFlag[k] = 0;// (TFlag[i] = 0;)を(//TFlag = 0;)にすると貫通弾が作れる EEFlag[j] = 0; //( = 0;)を( = 1;)にすると? count++; } } } } //弾と敵の当たり判定、それぞれの弾について検証する /*for( k = 0 ; k < DANSU2; k++ ) { //一つひとつの弾につき一機いっきとの接触を検証する for(j = 0 ; j < ENEMY_COUNT3 ; j++){ //弾iが存在している場合のみ次の処理に映る if( TTFlag[k] == 1 && EEEFlag[j] == 1 ) { //敵と当たり判定 int Ttx = TTx[k]; int Tty = TTy[k]; int EEex = EEEx[j]; int EEey = EEEy[j]; if (( Ttx < EEex + EEEw ) && ( Ttx + TTw > EEex ) && ( Tty < EEey + EEEh ) && ( Tty + TTh > EEey)) { //接触している場合は当たった弾の存在を消す TTFlag[k] = 0;// (TFlag[i] = 0;)を(//TFlag = 0;)にすると貫通弾が作れる EEEFlag[j] = 0; //( = 0;)を( = 1;)にすると? count++; } } } }*/ //自機と敵との当たり判定 for( i = 0 ; i < ENEMY_COUNT ; i++ ) { if (EFlag[i] == 1) { int ex = Ex[i]; int ey = Ey[i]; if((x < ex + Ew) && (x + w > ex) && (y < ey + Eh) && (y + h > ey)) { EFlag[i] = 0; life--; if(life <= 0) { //残機が0以下になったらループ脱出 isGameOver = 1; } } } } //自機と敵との当たり判定 for( i = 0 ; i < ENEMY_COUNT2 ; i++ ) { if (EEFlag[i] == 1) { int Eex = EEx[i]; int Eey = EEy[i]; if((x < Eex + EEw) && (x + w > Eex) && (y < Eey + EEh) && (y + h > Eey)) { EEFlag[i] = 0; life--; if(life <= 0) { //残機が0以下になったらループ脱出 isGameOver = 1; } } } } //自機と敵との当たり判定 for( i = 0 ; i < ENEMY_COUNT3 ; i++ ) { if (EEEFlag[i] == 1) { int EEex = EEEx[i]; int EEey = EEEy[i]; if((x < EEex + EEEw) && (x + w > EEex) && (y < EEey + EEEh) && (y + h > EEey)) { EEFlag[i] = 0; //EEFlag[i] = 0;をEEEFlag[i] = 0 にする。 life--; if(life <= 0) { //残機が0以下になったらループ脱出 isGameOver = 1; } } } } //- ADD for ( i = 0; i < ENEMY_SHOT_COUNT; i++ ) { if ( !EnemyShotFlag[i] ) continue; if ( (x < EnemyShotX[i] && EnemyShotX[i] < x + w) && (y < EnemyShotY[i] && EnemyShotY[i] < y + w) ) { EnemyShotFlag[i] = 0; life--; if ( life <= 0 ) isGameOver = 1; } } //- ADD End if( CheckHitKey( KEY_INPUT_HOME ) == 1) (life++); //撃墜数を設定 DrawFormatString( 0, 0, GetColor(255,255,255),"撃墜数%d",count); //残機数を表示 DrawFormatString( 0, 20, GetColor(255,255,255),"残機数%d",life); // 裏画面の内容を表画面に反映させる ScreenFlip(); // 20分の1秒待つ WaitTimer( 20 ); // Windows システムからくる情報を処理する if( ProcessMessage() == -1 ) break; // ESCキーが押されたらループから抜ける if( CheckHitKey( KEY_INPUT_ESCAPE ) == 1 ) break; } // DXライブラリ使用の終了処理 DxLib_End(); // ソフトの終了 return 0; }

Page: 1 |

Re: 敵の弾についてpart2 ( No.1 )
名前:yk 日時:2010/10/07 23:29

だ、誰か… 助けて…
Re: 敵の弾についてpart2 ( No.2 )
名前:管理人 日時:2010/10/08 08:59

貼り付けていただいたプログラムではどこにも tekitama.png というファイルを 読み込まれていないようですが、こちらは「うまくいかなかった」プログラムではないのでしょうか? もしそうでしたら「うまくいかなかった」プログラムを貼り付けていただけないでしょうか? あと、ご返答される方は対価無く手間をかけてご返答されているわけですので 問題に直面したときに「聞くのが早い」と考えるのはご返答される方に対して失礼な行為に当ります 学生や子供を指導する立場にある方( 教師や親 )には分からない事があったら寧ろ積極的に質問するべきですが・・・
Re: 敵の弾についてpart2 ( No.3 )
名前:いっち 日時:2010/10/09 15:15

どうぞ。 > ttp://www1.axfc.net/uploader/Sc/so/161125.zip&key=dxlib テストしていないので動かないかもしれません。
Re: 敵の弾についてpart2 ( No.4 )
名前:yk 日時:2010/10/10 19:47

ありがとうございます。 助かります。 管理人さん、その他の方々にはご無礼があったかと思います。不快に思われた方には、申し訳ないと思っています。
Re: 敵の弾についてpart2 ( No.5 )
名前:通りすがり 日時:2010/10/13 17:27

通りすがりでお節介なことを書いてしまいますが、 どうしても気になったので書かせていただきます。 いっちさんの親切心には頭が下がりますが、 毎回いきなり回答だけを与えてしまうと、 質問者のスキルアップにならないと思います。 ヒントを与える程度で、 自発的な行動(考える事)を促した方が良いと思います。 ykさん、 他人に作ってもらったソースを切り貼りして完成したとしても、 あなた自身のスキルにはならないですよ。 何をしたらどうなって、 具体的に何がわからないのか提示し、 助言を元に自発的に考える事をしないと、 実力はつきません。 物作りには、自発的なトライ&エラーが肝心ですね。 プログラムを組む前に、 基本のアルゴリズムを学ばれることをお勧めします。

Page: 1 |