C言語何でも質問掲示板


Total hit  今日  昨日  

必ずお読み下さい → 規約と注意事項  アンケートはこちら  エラーで投稿できない方はこちら  過去ログ検索はこちら

 
   MakeGraphで作成した画 ....   
     ・[46750] kazuoni 
     ・[46756] ジャーニー 
   Windows7での(旧OSで ....   
     ・[46633] mnkr 
     ・[46635] ムンバ 
     ・[46653] ムンバ 
     ・[46655] wing 
     ・[46661] SooA 
     ・[46683] ムンバ 
     ・[46689] SooA 
     ・[46690] ムンバ 
     ・[46740] ムンバ 
     ・[46747] wing 
     ・[46752] kazuoni 
   教えてください   
     ・[46601] Tororo 
     ・[46606] CSD 
     ・[46618] kazuoni 
     ・[46650] CSD 
     ・[46657] kazuoni 
     ・[46742] CSD 
   進路について(たくさ ....   
     ・[46319] たかぎ 
     ・[46327] 匿名 
     ・[46334] sizuma 
     ・[46339] dic 
     ・[46342] dic 
     ・[46431] 光翼型近接支援残酷超初心者 
     ・[46436] softya 
     ・[46437] たいちう 
     ・[46438] たかぎ 
     ・[46445] dic 
     ・[46446] shilfia 
     ・[46447] たいちう 
     ・[46450] shilfia 
     ・[46471] sizuma 
     ・[46473] たかぎ 
     ・[46485] ちゃお 
     ・[46488] ちゃお 
     ・[46534] 通りすがり 
     ・[46537] dic 
     ・[46551] 光翼型近接支援残酷超初心者 
     ・[46552] たかぎ 
     ・[46557] shilfia 
     ・[46636] 光翼型近接支援残酷超初心者 
     ・[46732] sizuma 
     ・[46741] 光翼型近接支援残酷超初心者 
   無題   
     ・[46672] non 
     ・[46673] たいちう 
     ・[46719] たこやき 
     ・[46722] non 
     ・[46731] たこやき 
     ・[46736] たいちう 
   (C++)再帰的構造体を使 ....   
     ・[46572] non 
     ・[46658] アトラス 
     ・[46670] non 
     ・[46723] アトラス 
   DXライブラリの文字列 ....   
     ・[46695] Ma 
     ・[46709] ジャーニー 
     ・[46711] Ma 
     ・[46712] ジャーニー 
     ・[46714] ジャーニー 
   移動   
     ・[46669] MIRORU 
     ・[46674] MIRORU  
     ・[46699] MIRORU 
   PSPへ移植の時エラーが ....   
     ・[46609] pooka 
     ・[46626] とく 
     ・[46644] pooka 
     ・[46656] とく 
   リンカ ツール エラ ....   
     ・[46620] KKXY 
     ・[46622] MNS 
     ・[46624] KKXY 
     ・[46629] MNS 
     ・[46631] KKXY 
     ・[46632] hoge 
     ・[46634] KKXY 
     ・[46637] MNS 
   DrawFormatStringToHa ....   
     ・[46442] Dixq (管理人) 
     ・[46443] kai 
     ・[46449] kai 
     ・[46451] lbfuvab 
     ・[46454] kazuoni 
     ・[46462] kai 
     ・[46472] pooka 
     ・[46616] kai 
   ぬるぽ回避   
     ・[46612] Dixq (管理人) 
     ・[46615] a 
   エンカウント   
     ・[46478] Dixq (管理人) 
     ・[46480] 炒飯 
     ・[46481] softya 
     ・[46483] sizuma 
     ・[46494] 炒飯 
     ・[46496] softya 
     ・[46503] sizuma 
     ・[46522] たかぎ 
     ・[46524] softya 
     ・[46527] sizuma 
     ・[46529] たかぎ 
     ・[46579] 炒飯 
     ・[46581] softya 
     ・[46592] lbfuvab 
     ・[46608] やそ 
   最短経路   
     ・[46569] g 
     ・[46570] ?? 
     ・[46571] たいちう 
     ・[46573] non 
     ・[46576] Ma 
     ・[46580] non 
     ・[46587] mats 
     ・[46588] たいちう 
     ・[46589] mats 
     ・[46590] たいちう 
     ・[46591] lbfuvab 
     ・[46607] mats 
     ・[465681264463949] d 
   初心者なもので…   
     ・[46562] mnkr 
     ・[46564] Dixq (管理人) 
     ・[46599] ☆初心者☆ 
   初心者です。なにもわ ....   
     ・[46506] softya 
     ・[46508] ざくざく 
     ・[46510] Dixq (管理人) 
     ・[46511] ざくざく 
     ・[46515] softya 
     ・[46516] ざくざく 
     ・[46517] たかぎ 
     ・[46518] ざくざく 
     ・[46519] SooA 
     ・[46520] softya 
     ・[46521] ざくざく 
     ・[46523] SooA 
     ・[46526] ざくざく 
     ・[46530] softya 
     ・[46531] SooA 
     ・[46532] softya 
     ・[46533] Ma 
     ・[46538] 通りすがり 
     ・[46539] dic 
     ・[46561] ざくざく 
     ・[46577] Ma 
     ・[46582] softya 
     ・[46584] Ma 
     ・[46596] Dixq (管理人) 
     ・[46597] ざくざく 
   あたり判定   
     ・[46594] SooA 
     ・[46595] 初心者☆ 
   3D ジャンプ処理に ....   
     ・[46536] MNS 
     ・[46541] kms 
     ・[46545] softya 
     ・[46546] MNS 
     ・[46585] kms 
   無題   
     ・[46565] Dixq (管理人) 
     ・[46578] SooA 
     ・[46583] softya 
   二つの引数の値を交換 ....   
     ・[46528] MNS 
     ・[46574] non 
   円に内接する三角形の ....   
     ・[46509] たかぎ 
     ・[46512] sizuma 
     ・[46513] non 
     ・[46514] non 
     ・[46543] Dixq (管理人) 
     ・[46547] hoge 
     ・[46548] Dixq (管理人) 
     ・[46553] hoge 
     ・[46554] Dixq (管理人) 
     ・[46555] sizuma 
     ・[46556] ぽこ 
     ・[46558] lbfuvab 
     ・[46566] Dixq (管理人) 
   開発環境について質問 ....   
     ・[46283] たかぎ 
     ・[46284] しろ 
     ・[46292] Ma 
     ・[46322] しろ 
     ・[46324] たかぎ 
     ・[46550] しろ 
   ゲームプログラミング ....   
     ・[46542] Dixq (管理人) 
     ・[46544] サスペン 
   無題   
     ・[46504] sizuma 
     ・[46507] Dixq (管理人) 
   敵が円を描くプログラ ....   
     ・[46259] たいちう 
     ・[46261] 電気屋 
     ・[46272] kazuoni 
     ・[46300] 電気屋 
     ・[46320] たいちう 
     ・[46330] 電気屋 
     ・[46349] kazuoni 
     ・[46476] 電気屋 
     ・[46489] 電気屋 
     ・[46491] 電気屋 
     ・[46497] たいちう 
     ・[46499] 電気屋 
     ・[46501] たいちう 
     ・[46502] 電気屋 
     ・[462581264144002] 電気屋 
   シューティング   
     ・[46487] pooka 
     ・[46490] MIRORU 
     ・[46492] ひよこ 
     ・[46495] MIRORU 
   【雑談】C言語初学者に ....   
     ・[46145] Ma 
     ・[46146] たかぎ 
     ・[46148] non 
     ・[46149] たかぎ 
     ・[46150] Mist 
     ・[46151] たかぎ 
     ・[46153] Mist 
     ・[46154] たかぎ 
     ・[46155] non 
     ・[46157] たかぎ 
     ・[46158] たいちう 
     ・[46159] たかぎ 
     ・[46160] すずめ 
     ・[46161] non 
     ・[46162] たかぎ 
     ・[46163] たいちう 
     ・[46165] たかぎ 
     ・[46169] たいちう 
     ・[46176] たかぎ 
     ・[46179] たかぎ 
     ・[46181] fatens 
     ・[46188] たかぎ 
     ・[46190] たかぎ 
     ・[46192] fatens 
     ・[46193] たかぎ 
     ・[46195] fatens 
     ・[46202] たかぎ 
     ・[46211] sizuma 
     ・[46217] たかぎ 
     ・[46275] たかぎ 
     ・[46486] たいちう 
     ・[46493] たかぎ 
   エラー   
     ・[46467] たかぎ 
     ・[46468] sizuma 
     ・[46484] box 
   メニューバーの作成方 ....   
     ・[46271] kazuoni 
     ・[46295] 初心者☆ 
     ・[46315] softya 
     ・[46318] 初心者☆ 
     ・[46340] softya 
     ・[46343] dic 
     ・[46360] Dixq (管理人) 
     ・[46479] 初心者☆ 
   無題   
     ・[46400] softya 
     ・[46403] box 
     ・[46416] tori 
     ・[46418] sizuma 
     ・[46422] softya 
     ・[46424] tori 
     ・[46430] SooA 
     ・[46432] non 
     ・[46433] softya 
     ・[46434] qwerty 
     ・[46435] softya 
     ・[46439] たかぎ 
     ・[46440] qwerty 
     ・[46459] tori 
     ・[46461] softya 
     ・[46463] SooA 
     ・[46464] たかぎ 
     ・[46465] softya 
     ・[46470] sizuma 
     ・[46475] たかぎ 

Name: ジャーニー  ..入門者(4,879ポイント)   Date: 2010/01/20(水) 20:33   No:46739       
Title: MakeGraphで作成した画像がちゃんと表示されない    
お世話になってます.

http://www.play21.jp/board/formz.cgi?action=res&resno=46691&page=&id=dixq&rln=46714
で,文字列の回転表示が難しいとわかったので,MakeGraphで作成したハンドルにDrawStringで描画した文字列を画像にして取り込み表示させています.
しかし,例えばmain関数で複数のログを追加すると全く表示されなくなってしまいます.
1個だけログに追加した場合ちゃんと表示されます.
これはどういうことでしょうか.
もしわかる方教えてください.

Messageクラス 
ログの1つ1つのメッセージ管理クラス
Createメソッドで画像作成

Logクラス
Messageクラスを管理
Updateでログの表示時間を管理し,DrawObjectで描画しています.
継承しているObjectクラスはタスクに追加するための基底クラスです

/**************************************************************************
ログの1メッセージ
**************************************************************************/
class Message
{
private:
    int msg_handle;//メッセージ画像のハンドル
    int show_time;//表示している時間
    std::string msg;
    
public:
    Message(std::string str) : show_time(0)
    {
        msg = str;
    }

    //文字列画像の作成
    void Create(int font_handle)
    {
        //画面に文字列描画
        DrawStringToHandle(0,0, msg.c_str()
            , GetColor(255,255,255), font_handle, GetColor(150,150,150));

        //空画像ハンドル作成
        msg_handle = MakeGraph(360,15);

        //画面に描画している文字列を画像として所得
        GetDrawScreenGraph(0,0,360,15, msg_handle);

        //文字列隠し
        DrawBox(0,0,360,20,GetColor(0,0,0), TRUE);
    }

    void UpperCount()
    {
        show_time++;
    }

    int GetHandle(){return msg_handle;}
    int GetTime(){ return show_time;}
    std::string GetMessage(){ return msg; }

    ~Message()
    {
        //画像の削除
        DeleteGraph(msg_handle);
    }
};

/**************************************************************************
ログを表示するクラス
**************************************************************************/
//ログの表示限界
#define LOG_MAX 8

//ログの表示限界を超えたときの表示フレーム
#define LOG_TIME 90

#define LOG_OBJ_PRIORITY 200
#define LOG_DRAW_PRIORITY 25

class Log : public Object
{
private:
    std::vector<Message> message;//表示するログ
    int font_handle;//フォントハンドル
    int player_num;//プレイヤ番号
public:
    Log()
        : Object(LOG_OBJ_PRIORITY, LOG_DRAW_PRIORITY, "Log")
    {
        //フォントハンドルの作成
        font_handle = CreateFontToHandle("HG創英角ゴシックUB" , 15 , 2 , DX_FONTTYPE_ANTIALIASING_EDGE);
    }

    ~Log()
    {
        message.clear();
    }

    //メッセージの追加
    void SetMessage(std::string str)
    {
        message.push_back(Message(str));
        message.back().Create(font_handle);
    }

    void SetPlayerNumber(int p)
    {
        player_num = p;
    }

    void Update()
    {
        if( message.size() > 0 )
        {
            //0番目のログの表示フレーム更新
            message[0].UpperCount();

            //もじ表示限界個数を超えたならば
            if( message.size() > LOG_MAX )
            {
                //もし表示限界をこえたら
                if( message[0].GetTime() > LOG_TIME )
                {
                    //そのログを削除
                    message.erase(message.begin());
                }
            }
        }
    }

    void DrawObject()
    {
        //ログの個数を確認
        int temp = message.size();

        //もじ表示限界個数を超えているならば
        if( temp > LOG_MAX )
        {
            //表示する個数を表示限界個数にする
            temp = LOG_MAX;
        }
        
        DrawBox(0,360,130, 720, GetColor(255,255,255), TRUE);
        //ログ表示
        for( int i=0; i<temp; i++ )
        {
            /*
            DrawStringToHandle( 50 , 250 - (temp-i)*16, message[i].c_str() 
                , GetColor(255,255,255), font_handle , GetColor(150,150,150)) ;
            //DrawFormatVStringToHandle( 50 + (temp-i)*20 , 250, GetColor(255,255,255)
            //    , font_handle, message[i].c_str() , GetColor(150,150,150)) ;
            */

            if( player_num == 0 )
            {
                DrawRotaGraph((temp-i)*15, 560, 1.0, PI/2, message[i].GetHandle(), TRUE);
                //DrawString(50+i*20,100+i*20,message[i].GetMessage().c_str(), GetColor(255,255,255), GetColor(150,150,150));
            }
            else
            {
                DrawRotaGraph(PROGRAM_WIDTH-(temp-i)*15, 180, 1.0, -PI/2, message[i].GetHandle(), TRUE);
            }
        }
    }
};


1,711ポイント を手に入れた。


Name: kazuoni [URL]  ..ハッカー(128,773ポイント)   Date: 2010/01/20(水) 23:27   No:46750     
Title: Re:MakeGraphで作成した画像がちゃんと表示されない    
とりあえず、
・Objectクラスの実装
・main関数でのクラスLogの扱い方
を追記してください。


3ポイント を手に入れた。

Name: ジャーニー  ..入門者(4,787ポイント)   Date: 2010/01/21(木) 00:38   No:46756 解決!     
Title: Re:MakeGraphで作成した画像がちゃんと表示されない    
<kazuoniさん

返信が遅くなりました申し訳ありません
あれから少しいじっていましたら

message.push_back(Message(str));
message.back().Create(font_handle);

message.push_back(new Message(str));
message.back().Create(font_handle);
に変えるとうまくいきました.

お手数おかけしました.


92ポイント を落としてしまった。



Name: ムンバ  ..プログラマー(26,362ポイント)   Date: 2010/01/19(火) 22:44   No:46630       
Title: Windows7での(旧OSで作成した)実行ファイルについて    
こんばんは!お世話になります。(_ _)

昨年の末に、OSをWindows7(Professional)32bit版にバージョンアップしました。<編集箇所(32bit版)
しなきゃいいじゃん!って言われたら、それまでなんですが・・・。(汗

そこで半年位前に、VC++2008・DXライブラリを用いて自作した(ご指導ありがとうございました。^^)
超単細胞な「じゃんけんゲーム」(その他、3つのゲーム)を久々に実行しようとしたのですが
(exeファイルから直に)
「ビデオカードのドライバ?が停止しました・・・(略)・・・回復しました。」
の様なエラー画面が、右下のタスクバーの辺りから飛び出てきて、ゲームはできず
モニター画面が真っ黒になってしまいました。
Escキーを押すと、終了するプログラムになってますので
急いでEscキーを押すと、実行前に戻る(みたいな)のですが、そのまま放置しておくと
PCのRESETボタン(←何故か?現在のPCには付いてる)で終了しないと復活できなくなります。
「Alt」・「Ctrl」・「Del」での強制終了も、画面が真っ暗になってるので、できません。(見えません。)

これら、4種類の自作ゲームは
OS:Windows XP(Home Edition・Professional)・Windows(Ultimate)上で
1年位前に、配布元でダウンロード&インストールした、VC++2008とDXライブラリ
を使用して作成したゲームです。
いずれも上述の、それぞれのOSで動作していましたが(今も動作してます。)
….slnファイルからも「Microsoft Visual C++ 2008 Express Edition」は立ち上がります。
現在、この不具合?の起こるPCでは、Windows7(Professional)にバージョンアップした後
VC++2008・DXライブラリの現バージョンをインストールしてます。<正月くらい

自己改善策としてですが、Windows7(Professional)に新しくインストールした
「Microsoft Visual C++ 2008」で新しいプロジェクトを作り
そこに各ファイルを作って、ソースをコピー&ペーストし、デバッグしたところ実行出来る様になりました。
この新しく作った実行ファイルは、Windows7(Professional)以外の上述したOSでも動作しました。
試しに、こちらのページのサンプルプログラミングの館の「4 ジャンケン」を実行してみましたが
今の環境では、実行できませんでした。^^;

私の今の環境で、旧バージョンで作ったexeファイルを簡単に実行できる方法など、ご存知でしたら
ご意見・ご指導の程、宜しくお願い致します。
「良く解って無いんだから、バージョンアップしなきゃ〜いいじゃん!」
って、ご意見でも結構です。(自爆 編集済み


670ポイント を手に入れた。


Name: mnkr  ..入門者(3,264ポイント)   Date: 2010/01/19(火) 22:47   No:46633     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
windows7にはXPモードで起動とかそんな感じの機能ありませんでしたっけ?
それではどうですか?

それと、使用しているwindows7は32bit版ですか?64bit版ですか?


49ポイント を手に入れた。

Name: ムンバ  ..プログラマー(26,408ポイント)   Date: 2010/01/19(火) 23:03   No:46635     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
ご意見ありがとうございます。
修正させて頂きました。<(_ _)>

32bit版と64bit版が、関係してるのですか?
もしかして64bit版ですと、すんなりいくのですか?


46ポイント を手に入れた。

Name: ムンバ  ..プログラマー(26,691ポイント)   Date: 2010/01/20(水) 00:10   No:46653     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
mnkrさん
>windows7にはXPモードで起動とかそんな感じの機能ありませんでしたっけ? 
>それではどうですか?

ご意見頂き、言葉が足りなくて大変申し訳ないのですが
現時点では、OS:Windows7(Professional・32bit版)での動作のご意見をお聞きしたいのです。
すみません。現バージョンのご意見をお聞きしたいです。
ちょっと飛躍してしまうかもしれないのですが、例えば
OS:Mac上で、OS:Windows7を動作させ、この実行ファイルが動くかどうか?などの質問では無いです。
私の質問の趣旨が、うまくお伝えできていなければ修正しますので、含めてご意見お願い致します。(謝

大変勝手では御座いますが、最近早寝ですので・・・。
だんだん、眠くなる時間が早くなって行くのは年のせいなのでしょうかね〜?
気力か気合が足りなくなってるのかも?^^;

引き続き、ご意見が御座いましたら宜しくお願い致します。
今日は寝てしまいます。すみません。<(_ _)>





283ポイント を手に入れた。

Name: wing  ..入門者(4,229ポイント)   Date: 2010/01/20(水) 00:20   No:46655     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
私もWindows7で同じことが起こります。(WindowsMeでも同じです)
VC2008EE、DXライブラリー(最新)を使用しています。
解決方法はわかりません。

私の場合
1、他のサイトのVC2005EEとDx.Libで作成されたプロジェクトの中の
  exeファイルを実行した場合
2、わくわく14歳から始めるC....の付属CDの中の
  コンパイル済みファイルの中にあるexeファイルを
  ダブルクリックして実行した時
3、kazuoniさんのサイトのDOT_getterをダウンロードし、
  実行しようとしたとき
  (kazuoniさん、報告しないですみませんでした。)

いずれも、5秒くらい画面が乱れて、最終的には640*480の
ウインドウ(黒い画面)で終了させられます。

どうもVC2005EEでコンパイルしたものをVC2008EEで実行しようと
するときに起きているような気がするのですが。

どなたか、わくわく14歳.......C......のコンパイル済みファイルを
実行できた方がいたら、環境などを教えていただけないでしょうか。


407ポイント を手に入れた。

Name: SooA [URL]  ..プログラマー(26,134ポイント)   Date: 2010/01/20(水) 06:58   No:46661     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
>Windows7での(旧OSで作成した)実行ファイルについて
「旧OSで」とありますが、最新版DXライブラリを使用し、
旧OSでコンパイルされた実行ファイルも含むのでしょうか?


68ポイント を手に入れた。

Name: ムンバ  ..プログラマー(26,744ポイント)   Date: 2010/01/20(水) 10:26   No:46683     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
SooAさん、ご意見ありがとうございます。

旧OSでは、1年くらい前にインストールしたDXライブラリを使用してます。


53ポイント を手に入れた。

Name: SooA [URL]  ..プログラマー(26,275ポイント)   Date: 2010/01/20(水) 11:08   No:46689     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
旧OS+最新版のDXライブラリを使ってコンパイルした
実行ファイルの動作確認はできますか?
動くようであれば、その間にあったDXライブラリの修正で
改善された事になります。
原因を特定することができれば、問題解決への有益な情報を
集めやすいのではないでしょうか。


112ポイント を手に入れた。

Name: ムンバ  ..プログラマー(26,915ポイント)   Date: 2010/01/20(水) 11:13   No:46690     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
順番が前後してしまいました。
wingさん、ご意見ありがとうございます。
私のPCだけの症状じゃなくてよかったです。^^;

SooAさんにご意見頂いて思ったのですが
古いバージョンのDXライブラリがWindows7に対応していない。
という事なのでしょうかね?

夜になってしまいますが、帰宅したら
DXライブラリ以外で作成されているゲームが動くかどうか確認してみます。

SooAさんに、かぶってしまいました。(謝 <↓ここから編集部位
帰宅したら確認してみます。
再度、ご意見ありがとうございます。

 編集済み


171ポイント を手に入れた。

Name: ムンバ  ..プログラマー(27,115ポイント)   Date: 2010/01/20(水) 20:51   No:46740     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
SooAさん、どうもありがとうございました。
帰宅して試したところ

旧OS+以前のバージョンのDXライブラリでコンパイル  → Windows7 ×
旧OS+最新バージョンのDXライブラリでコンパイル   → Windows7 ○
Windows7+最新バージョンのDXライブラリでコンパイル → 旧OS     ○

でした。
ありがとうございました。
また何かありましたら、ご指導の程宜しくお願い致します。

wingさん?スレッド(No:46655)どうしましょうか?
一応、解決マークは付けずに、しばらくこのまま置かせて頂きますねっ!^^

↓編集部位

================================================
wingさん、上からごめんなさい。^^;
了解しました!解決ボタンありがとうございました。
================================================ 編集済み


200ポイント を手に入れた。

Name: wing  ..入門者(4,403ポイント)   Date: 2010/01/20(水) 23:09   No:46747 解決!     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
ムンバさん、解決でいいですよ。
私が解決マーク付けときます。

私の場合は、ほかの人がコンパイルしたプロジェクトのexeファイルから
実行できないというもので、ソースとデータがあれば自分で新しいプロジェクトを
つくれば実行できます。

それほど深刻な問題でもないし、ただわくわく14歳......のマップエディタを
起動できなかったのがちょっと残念だっただけです。

まあ、マップエディタもフリーのもので使えるものがあったので
よかったのですが、ちょうどいい機会だと思っただけですから。


174ポイント を手に入れた。

Name: kazuoni [URL]  ..ハッカー(128,986ポイント)   Date: 2010/01/20(水) 23:41   No:46752     
Title: Re:Windows7での(旧OSで作成した)実行ファイルについて    
> wingさん
>> kazuoniさんのサイトのDOT_getterをダウンロードし、
>> 実行しようとしたとき

ご報告ありがとうございます。
確かに、結構古いバージョンのDXライブラリで作成していた気がしますが、
如何せん、ソースコードも手元にないので、どのバージョンだったかも覚えていません^^;

そのうち、この過去の産物は非公開にします^^;
ただHTML編集がめんど(ry
対応できなくてすみませn。。


147ポイント を手に入れた。



Name: CSD  ..ぴよぴよ(207ポイント)   Date: 2010/01/19(火) 18:07   No:46600       
Title: 教えてください    
今、育成ゲームのようなものを、作っています。 


添付ファイルを見てください。


分からないことは2つあります。
1.矢印(選択しているものを示したもの)がうまく動きません。
2.キャラのステータス(パワー、ディフェンス、スピード)が、うまく計算・表示が出来ません。

C言語の経験が浅いので、まだ本などに書いてあるコードを、解説を見て分かるくらいです。
無意味な計算があったら教えてください。
お願いします。 編集済み


196ポイント を手に入れた。


Name: Tororo  ..かけだし(2,413ポイント)   Date: 2010/01/19(火) 18:10   No:46601     
Title: Re:教えてください    
とりあえず名前を変えたらどうですか?
いつもの初心者さんじゃないみたいですし・・


43ポイント を手に入れた。

Name: CSD  ..ぴよぴよ(11ポイント)   Date: 2010/01/19(火) 18:50   No:46606     
Title: Re:教えてください    
すいません。
この名前は使われていましたか。 編集済み


11ポイント を手に入れた。

Name: kazuoni [URL]  ..ハッカー(128,292ポイント)   Date: 2010/01/19(火) 21:31   No:46618     
Title: Re:教えてください    
まず、「うまくうごきません」だと、
・質問者さんがどの様な動作を期待し、
・実際どのように動いているのか
が回答者側から分からないので、明確にするべきかと思います。

一応エスパーで回答を。
ぱっと見ただけですので、逸れてるかもしれませんが・・・

> 1.矢印(選択しているものを示したもの)がうまく動きません。 

int arrow_yが矢印の移動制御の変数かと思うのですが、
これがローカル変数なので、関数に入るたびに変数が生成され、
arrow_y = 50;
で初期化されます。なので、例えば
static int arrow = 50;
とするとかすれば、ちゃんと変数が生存します。

> キャラのステータス(パワー、ディフェンス、スピード)が、うまく計算・表示が出来ません。
これこそ初めに行った事を追記していただかないと、
回答ができないかと思います。 編集済み


2倍のポイントを手に入れた! 420ポイント を手に入れた。

Name: CSD  ..ぴよぴよ(264ポイント)   Date: 2010/01/20(水) 00:02   No:46650     
Title: Re:教えてください    
>まず、「うまくうごきません」だと、 
>・質問者さんがどの様な動作を期待し、 
>・実際どのように動いているのか 
>が回答者側から分からないので、明確にするべきかと思います。

すいません。もう少し明確に書いておくべきでした。


1.矢印(選択しているものを示したもの)がうまく動きません。 
については、

・すべての、項目(餌、運動、大会、セーブ、ロード)を選択できるようにしたいのですが、
・最初は、(餌)を選択しているんですけど、上下キーを押すと、運動とロードにしか、矢印がいきません。



キャラのステータス(パワー、ディフェンス、スピード)が、うまく計算・表示が出来ません。 
については、

・food,movement,battle関数を呼び出すと、パワー、ディフェンス、スピードの値を変化したいのですが、
・パワー、ディフェンス、スピードの値を表示すると、初期化した値のまま変わりません。


お願いします。


57ポイント を手に入れた。

Name: kazuoni [URL]  ..ハッカー(128,770ポイント)   Date: 2010/01/20(水) 02:03   No:46657     
Title: Re:教えてください    
1については、さっき自分が書いた回答の様にしてみてください。

2についても1と似た様になりますが、
DrawMenu

g_menu.selection = 0;
g_kyara.defense = 5;
g_kyara.power = 0;
g_kyara.speed = 10;

Draw

food,movement,battle関数により値変化

DrawMenu

g_menu.selection = 0;
g_kyara.defense = 5;
g_kyara.power = 0;
g_kyara.speed = 10;

Draw

・・・

これが流れです。結局は、値を0,5,0,10と代入し、出力してしまっているので、
結局は値は変化しません。

解決策としては、DrawMenuを一番初めに呼び出す前に、値の初期化(0,5,0,10と代入)
をするだけ専用の初期化関数を用意するとかです。


2倍のポイントを手に入れた! 478ポイント を手に入れた。

Name: CSD  ..ぴよぴよ(328ポイント)   Date: 2010/01/20(水) 22:00   No:46742 解決!     
Title: Re:教えてください    
分かりやすい回答ありがとうございます。
早速やってみるとできました。
また、お世話になるかもしれませんがよろしくお願いします。


64ポイント を手に入れた。



Name: 光翼型近接支援残酷超初心者  ..初心者(6,973ポイント)   Date: 2010/01/16(土) 12:46   No:46317       
Title: 進路について(たくさんの回答募集)    
なるべく専門学校在学・卒業の方に、そしてたくさんの意見(回答)(助言)が欲しいです。それはもぉう次にこのような質問がされた時に、このレスを参考にすれば解決! ぐらいに。
もちろん、他の方々もぜひご意見・ご回答、絶賛お願いします。


という訳でこんにちは。質問や返信をする度に投稿者の欄のところが異様に長くなってしまうのをとてつもなく申し訳なく思っています、光翼型近接支援残酷超初心者です(名前変えた方が良いのかなあ。


いつもはゲーム製作(龍神録改造)の事について質問させまくらせて頂いてますが、今回はかーなーり重要な僕自身の「進路」について質問させて頂きます。


*ちょっとした注意(全部書いた後に書いてます)*
・寝る前に書いたを文章を、先ほど見直して書き足したり、消したりしてるので、文章がゴチャゴチャしてるかもしれません。
・下の文章の『専門学校』という文字は、大半の場合「ゲーム(科)の専門学校」という意味を含んでいます。
・読むのがメンドウと思った人は、せめて「そこで質問なんです」のところから読んで下さい。




現在ワタクシは高校2年生です。神奈川は横浜市に住んでいます。

正直、自分は頭いいと思えません。
自分は中学のころ、勉強をサボタージュしていたので、高校も滑り止め私立の工学科にいます。


去年の夏休みぐらいに進路について考え始めたのですが、途中いろいろありながらも、ゲーム「プログラマー」になる事を理想としてます。


そこからいくつかの専門学校に、体験入学や説明会におもむいて、「ゲームを作る(プログラム科)の専門学校に行こう」と思っていたのですが、いろいろなサイト・掲示板・質問広場(yahoo知恵袋など)を見ているうちに「本当に専門学校でいいのだろうか?」とか――――

……現在「ここならいいんじゃないか」と考えいる専門学校が3〜5校ほどあるのですが、ネットでいろんなものを見ていく内に「この学校を選んでしまって良いのだろうか?」という疑問・不安に駆られています。


「本当に専門学校でいいのだろうか」と思うのは、他の所ではよく、統合すると「ゲームの専門学校に行かないで、高度な情報系の大学や専門学校の方が良く色々勉強できるし、ゲーム業界にも就職して人もいる」という話を聞くからです。もちろん、専門学校からちゃんとゲーム業界に入った方もいるのは知っています。

ですが「情報等の学校から行った人間の方が就職してる人も多いし、業界で生き続けている人も多い」という話も聞きます。業界で生き続けている人が多い、というのは、「専門学校だとゲームを製作する技術「だけ」を教えているから、コミュニケーション等で続かない人がいる」という事らしいです。


また、「この学校を選んでしまって良いのだろうか?」の理由は、これも他の所の受け入りですが、初心者ばっかりのために、あまり専門的な事をやらなかったり。数を入れるだけ入れて、(もちろん何処もでしょうけど)儲けようとするのが主体になっていている所がある、と見たからです。




つまり『自信』がないのです。これで良い、という自信がなく『不安』なのです。




そこで質問なんです。ここまで書くと何が聞きたいか分かっている方も多いと思いますが、


・「ゲーム業界(自分はプログラマー志望)に入る(、そして続けていく)には、本当にゲームの専門学校でいいのか」
理由は上に書いたとおりです。「そんな事ない」と言われる方も言われない方も、(少なくとも)理由をお願いします。


・「(専門学校に入るとして)専門学校はどのように選べかいいか?」
実際に見るのが一番いいと言う回答ではなく、どのような「基準」で選べばいいのか、例えば学習内容や設備などです。
専門学校の案内や見学等では、その学校のイイコトばかりいってますが、その部分だけに騙されたくないので、一番気になる所です。


・「(専門学校に入るとして)入るタメには何をすればいいのか?」
これはよく、「数学を勉強しとけ」や「C言語を予習程度に」などの『入ってからもすること』ではなく、『入るタメ』にする事を聞きたいのです。
別に特筆することがなければ「無い」でいいです。


そして、専門学校の方に(もちろん他の方にも)聞きたいのは、「どうやって選んだのか」・「入る前にした事(勉強以外でも)」、それと一番聞きたいのは「(他の学校とは比べられないとしても)その学校に入って、良かった(良くない)と思えたのか(理由も欲しいです)」です。




長い上に変な文章で失礼しました。一応見直しましたが、誤字・脱字が多くあるかもしれません。

とにかく自分で納得でき、不安を解消できる回答・助言・ご意見が欲しいのです。

自分の将来のことなので、ホントウによろしくお願いします!!
 編集済み


1,734ポイント を手に入れた。


Name: たかぎ [URL]  ..ハッカー(153,626ポイント)   Date: 2010/01/16(土) 12:58   No:46319     
Title: Re:進路について    
どこの地域でしょうか?
立場上、掲示板であまり具体的なことを書くのは支障があるので、メールをいただければある程度相談に乗ります。


52ポイント を手に入れた。

Name: 匿名  ..上級者(20,098ポイント)   Date: 2010/01/16(土) 13:49   No:46327     
Title: Re:進路について    
>光翼型近接支援残酷超初心者さん

まずはこちらを目に通してください。
大学と専門学校の違いについて色々説明されています。
結構考えさせられるところがあるので参考にしてください。
http://oshiete1.goo.ne.jp/qa1311383.html
http://oshiete1.goo.ne.jp/qa1841528.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1011916315?fr=rcmd_chie_detail

>・「ゲーム業界(自分はプログラマー志望)に入る(、そして続けていく)には、本当にゲームの専門学校でいいのか」 
ゲームプログラマーになりたいのであれば、私は大学でも構わないと思います。
むしろ私は、大学に入ったほうがいいと思います。
大学卒業してから(お金があれば)専門学校に通ってさらに知識を深めることも可能です。
大学を卒業し、その道の勉強をしてゲームプログラマーになることも可能です。
IT会社にSEとして入り、そこで経験を詰んでから、ゲームプログラマーに転職する人も結構たくさんいます。
いやらしい話になりますが、大学卒業と専門学校卒業では初任給も違います。大学>専門。
ちなみに、専門学校は「お金」さえ払えば、入学できるところが殆どです。
大学受験をして落ちても、成績がある程度良いならば、それから
専門学校を受けても、たぶんよほどのことがない限り、入学できると思います。

余談ですが、ちなみに私は、大学受験に失敗して、路頭に迷っていたら、
専門学校という道があったので、3月20日くらいに願書を提出して、
今年度ぎりぎりの日程で受かって今に至ってたりします。

・「(専門学校に入るとして)専門学校はどのように選べかいいか?」 
体験入学で自分の"目"で確かめることだと思います。
これが一番騙されない方法です。わからない事があったら、先生にどんどん質問しましょう。
(まあ、私は体験入学する時間すらありませんでしたが・・)

・「(専門学校に入るとして)入るタメには何をすればいいのか?」 
高校の勉強を完璧に理解してください。
専門学校に入ってから基本的な数学の勉強をするとか、時間の無駄です。
今のうちにマスターしておきましょう。
今の時期に一番良いのが、センター試験の勉強でしょうか。
入ってからすることは、
専門学校時代にプログラム言語の一つくらいはマスターするつもりで勉強することだと思います。

>そして、専門学校の方に(もちろん他の方にも)聞きたいのは、
>「どうやって選んだのか」・「入る前にした事(勉強以外でも)」、
>それと一番聞きたいのは「(他の学校とは比べられないとしても)その学校に入って、
>良かった(良くない)と思えたのか(理由も欲しいです)」です。 
私の場合は、先ほど言いましたとおり、
大学を目指していましたが、受験失敗。親、教師と話し合った結果、専門学校の道を選択。
入る前にしたことは、センター試験に向けて、一日10時間の勉強(国、数、英を重点的に)。
その学校に入ってよかった点は、環境がよかった点のみ。
よくない点は、
@私の場合、自分でC言語を独学していたので、学校で学ぶC言語の進み具合が遅くて結構暇ができる。
A最初のころは、皆真剣に授業を受けていたが、時間が経つにつれて、乱れてきて(欠席する人が多くて)
 チーム製作(数人と組んで共同でゲームを製作)などでは非常に困ることがある。

これくらいでしょうか・・
最後に私から一応教えておきますが、
大学の一年生は、皆、センターなどの試験に合格して通るわけですので、
"実力"がある人が多く集まります。
対して、専門学校の場合は、"お金"があって、"成績"さえよければ入学できますので、
"実力"は人によってバラバラです。
分かりやすく説明しますと、
専門学校の音楽系の学科に入学した二人の人がいます。
一人は、楽譜も読めない、楽器も扱えない。だけど意欲はあります。
一人は、5歳からピアノを習い、小中高では、吹奏楽部に所属し、なんでも楽器が扱えます。

この二人が、専門学校という最初の位置に立つわけです。
いきなり、大きな差がついてることが分かりますね?
これが専門学校と大学の大きな違いです。
この差を光翼型近接支援残酷超初心者さんは埋めるくらいの気持ちで頑張れますか?
よく考えてください。そして頑張ってください。

追記:名前の件ですが、
光翼型近接支援残酷超初心者さん自身が、この名前が他の人にとって、
長くて迷惑であると気づいたならば、直したほうがいいと思いますよ。
たとえば、歩きタバコは迷惑ですが、自分で"迷惑"と気付く人はかなり少ないです。
自分で色々な物事に気付くことは大切なことです。
直せることは直しましょう。若いうちにやれることはどんどんやりましょう^^ 編集済み


1,304ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(27,017ポイント)   Date: 2010/01/16(土) 15:13   No:46334     
Title: Re:進路について    
3年過程の専門学校生です(現在2年)

ゲームプログラマでも、どんな会社に入りたいかによると思います。
例えば、ゲームでゼネコン上位の会社(任天堂とかカプコンなど)に入りたいなら東大入れるくらい基礎が出来る人が行く会社だと思います。最低でも旧帝大狙えるくらいかな。
まぁ勉強が出来なくても、頭ががいいって人もいるんで、その限りではないでしょう。
下請け(実際にプログラムを担当する名前のあまり知られてない会社)だとプログラマとしてのスキルが問われるでしょう。

専門学校に行くなら狙うのは後者だと思います。
つまり、実際にゲームを提出して、その完成度やコーディング力でアピールするわけですね。

専門学校次第だと思いますが、僕の通ってるところではそんな力はつきません。
HALとか大手は知らないですが・・・(うちの系列の専門学校名が知りたかったらメアドでものせてください)
たいてい地方の名もなき専門学校だとそんな感じだと思います。
1年ではプログラミングはほとんどしなかったですし、一次試験でよく使われるCは文法さえ習いません。
2年の前期にゲーム作る実習のとき(C#,XNA)、半分くらいがクラスの生成法が分からなかったのはビックリしました。


うちのゲーム科の授業は受ける価値なし、ってゲーム科の人たち言ってましたからね。
よっぽど僕が授業したほうがいい科目があります。
(もちろん先生次第でいい授業もある。ちょっとだけ)


いろいろダメなことだけ言ってますけど、ゲームだけ作ってればいいんで、やる気があればどんどんスキルは上がると思います。
大学は単位とらなきゃいけなかったり、教授との距離を縮めるのが難しかったり、研究室が忙しかったらゲームどころじゃなかったり、とありますけど、専門は授業ちゃんと受けてれば勉強の必要なんてほとんどありませんからね。
(その分をゲームプログラマになるための時間に使える)


僕はゲームプログラマはセンスだと思うので、提出課題がひっかかるような人は大学にいっても、専門学校にいっても、どちらに行ってもなれるような人だったんだろうな、と思います。
だから、なれるか分からない職を目指して専門に行くのはやめた方がいいのではないでしょうか?
PG、SE、PMも視野に入れてるならPGには成れるでしょうから、専門もありかな。(ちゃんと就職活動すれば)
ちなみに
PG=プログラマ(パソコンをつかった土方、、、かも?)
http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E5%9C%9F%E6%96%B9
SE=システムエンジニア(システムの設計)
PM=プロジェクトマネージャ(プロジェクトを成功へ導く人)


というわけで長々書いてますが、ここからが回答です。

>ゲーム業界(自分はプログラマー志望)に入る(、そして続けていく)には、本当にゲームの専門学校でいいのか
自分にやる気があるなら、どちらでも関係ないと思います。

>(専門学校に入るとして)専門学校はどのように選べかいいか?
卒業生の進路をチェックしてみてはどうでしょうか。
多くがゲーム業界に就職していれば、その専門学校へゲーム会社から求人が来ている、ということでしょうからね。
(企業から専門学校に、2〜3人ぐらいそちらの学生とれますよ、と求人がきます。)

>(専門学校に入るとして)入るタメには何をすればいいのか?
出来ることは今すればいいと思います。
教わることに期待するのではなく、自発的にするべき。
・数学・物理(ベクトルや行列、三角関数、力学。他には線形代数とかでしょうか。基礎は出来て当たり前
・言語の基礎(文法書を通るぐらいだったら2週間あれば余裕でしょう。今するべき。
学校の勉強もしっかりするべきですけどね。
2年過程であれば、一年の2月くらいからはもう説明会に行かなくてはいけません。
学校に入ってから10ヶ月くらいですね。3年ならば、1年と10ヶ月。
0から始めたらゲームなんて作れませんよ。

>「どうやって選んだのか」・「入る前にした事(勉強以外でも)」
地元で一番よさそうな情報系の専門学校です。
入る前は特になにもしてないですね。

>(他の学校とは比べられないとしても)その学校に入って、良かった(良くない)と思えたのか(理由も欲しいです)
中堅の大学に2年ほど通ってました。
べつに名前だしても問題ないと思うんで広島大学です。
大学と比べてます。

まずはいい所から
物理科だったのですが、学問としての勉強をするよりも、プログラミングのために勉強できる今は相当楽しいです。これが一番いいところですかね。
あとは、先生にいろいろなアドバイスが貰えます。
資格取るのが楽しいです。

そして悪い部分
まずは授業のレベルが低い。かなり暇なので、授業中別の勉強をしたりしてます。
周りのレベルが低い。やるときにやれない人が多いです。
自習期間が多い。資格対策、とか言って自習がかなりあります。



とまぁこんな感じでしょうか。


2,068ポイント を落としてしまった。

Name: dic  ..熟練のプログラマー(49,018ポイント)   Date: 2010/01/16(土) 16:34   No:46339     
Title: Re:進路について    
仕事なんて2の次です
世の中コネです
上司に気に入られたらその会社に入社できるでしょう

世の中には他にもいろんな職種があります
それらを一切考慮せず、いきなりゲームプログラマと決定してしまうのは
人生の幅を自らせばめているようなものです


92ポイント を落としてしまった。

Name: dic  ..熟練のプログラマー(49,101ポイント)   Date: 2010/01/16(土) 17:35   No:46342     
Title: Re:進路について    
高校生ということで
わかりやくす?すると
周りから生徒会長になれと 薦められてなる人と
自分から生徒会長になる と決めてなろうとする人
どちらがなりやすいでしょうかね

役割を自分で決めてなるか
周りが決めてくれるかの差です
どちらが苦労しないか


83ポイント を手に入れた。

Name: 光翼型近接支援残酷超初心者  ..初心者(7,962ポイント)   Date: 2010/01/17(日) 16:42   No:46431     
Title: Re:進路について    
自分の大切な話だというのに返信が遅れてすみませんでした。


名前の件はやはり迷惑だと思うので変えることにします。
一応このスレが続く内は光翼型近接支援残酷超初心者で行きますが、次に質問や回答で名乗る時は、ソレっぽく違う名前にすることにします。


>>たかぎさん
メールの場合、返信が遅れてしまっても大丈夫でしょうか?
一応yahooのメールアドレスはあるのですが、大して使ってないので。


>>匿名さん
とても長くタメになる話をありがとうございます。

>体験入学で自分の"目"で確かめることだと思います。
他の場所でも自分のような質問が出ると、よくその様な回答が出ます。
自分で説明会や体験入学に参加して、なるべく見るようにしているのですが、正直言って自分の"目"が信じきれません。
「うまく隠されてるんじゃないか」とか思ってしまうのです。

>時間が経つにつれて、乱れてきて非常に困ることがある。
ありそうですね。とても怖いです。
そのような事だらけの学校に行かないタメにもこの質問でたくさんの意見が欲しいのです。


>>sizumaさん
sizumaさんも長くてタメになる話をありがとうございます。

>どんな会社に入りたいかによると思います。
最初で書きましたが、自分はホントウに東大なんかねらう人の頭に比べれば、(悪い意味で)別次元に頭よくないです。
任天堂などではなく、言う所の下請け、実際にゲーム(ソフト)を作っている会社で働きたいと思っています。

>卒業生の進路をチェックしてみてはどうでしょうか。
なるほど! 学校の注目点として参考にさせて頂きます。

大学との比較はとても参考になります。


>>dicさん
そういうモノなのでしょうか? 未熟なのでイマイチ実感が湧きませんね。

>それらを一切考慮せず、いきなりゲームプログラマと決定してしまうのは人生の幅を自らせばめているようなものです。
別に一切考慮してない訳ではありません。まあでも、プログラマやシステマーというパソコン関係の仕事を選択している時点で、あまり人生の幅が広いとは言えないのでしょうね。


今のところを総じて、
言うまでもなく、物理や数学、言語の勉強は大切ですね。今からでも遅いくらいでしょうか。
それと、ホントウになりたいのであれば、暇な時間を無駄に潰さずに、やれる事をやるのが大切なのですね。


後、自分も文章が悪かったのかと思うですが、三つ目の質問は

「入る『タメ』には何をすればいいのか?」 

なんです。もう一度書きますが

『「数学を勉強しとけ」や「C言語を予習程度に」などの『入ってからもすること』ではなく、『入る【タメ】』にする事を聞きたいのです。』


もちろん入ってからすることもたくさん言ってくれると嬉しいです。
でも、自分が聞きたい事は「入る『タメ』にする事」なんです。お願いします。




まだまだ、他の方もたくさん回答・意見・助言をお願いします。


989ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(93,176ポイント)   Date: 2010/01/17(日) 17:35   No:46436     
Title: Re:進路について    
>もちろん入ってからすることもたくさん言ってくれると嬉しいです。
>でも、自分が聞きたい事は「入る『タメ』にする事」なんです。お願いします。 

専門学校で足切りされるとしたら、それこそ立派な学校だと思います。
そもそも入学基準が厳しかったら、専門学校のサイトにでも入学基準が書いてあると思いますがありますか?
私は、そんな専門学校は少ないと思います。

XNAのコンテストですが、色んな専門学校が参加していますね。
http://msdn.microsoft.com/ja-jp/xna/cc787987.aspx
平均して実力の高い学校は、やる気のある生徒や先生が多いのかも知れません。

とりあえず、そこそこの専門学校に入るとして、最終的にゲームプログラマーとして就職するためには何をすれば良いかと言うことを書きます。

中小のゲーム会社に取って本当に必要なのは、実力があって、そこそこちゃんと人とのコミュニケーションがとれる人です。これさえ満たしていれば採用されないはずがありません。

参考「レイトン教授で有名なレベルファイブ」の新卒採用情報です。
http://job.rikunabi.com/2011/company/employ/r166010008/

専門学校でゲーム会社に採用されるのは、ほんのほんの一握りの人たちで大半は関係ない会社に就職しているのが現状だと思います。
たとえば専門学校HALの「完全就職保証制度」は、ゲーム科に通えばゲーム会社に就職で出来るってことを保証するものではなく、関係ない会社でも就職させますよって保証です。

こちらのサイトの「ゲーム学校の実態」をみてください。
http://www.geocities.co.jp/SiliconValley-SanJose/7769/school/sc_menu1.html
これが専門学校の実態だと思います。
私もゲームではないですが、プログラミング系の専門学校を出ました。
放課後まで残ってコンピュータを使っている様な人は、ほんの数人だけでしたね。
つまり、やる気のある人はそのぐらいしか居ないと思った方が良いでしょう。
学校の中で飛び抜けた実力を自力で身につける覚悟が必要なんだと思います。

思いつくまま書いたので読みづらいかも知れませんがご容赦下さい。


582ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(48,465ポイント)   Date: 2010/01/17(日) 18:13   No:46437     
Title: Re:進路について    
> でも、自分が聞きたい事は「入る『タメ』にする事」なんです。お願いします。

既に書かれているように、専門学校なら殆ど誰でも入れるので、
『入る【タメ】』にする事といえば、学費と願書を準備すること位です。
一般には難しいのは学費ですが、これが質問の趣旨ではないですよね?


> 『「数学を勉強しとけ」や「C言語を予習程度に」などの
> 『入ってからもすること』ではなく、『入る【タメ】』にする事を聞きたいのです。』

数学が嫌いだから後回しにしたいだけのように思えます。
あるいは、高校の数学のような役に立たないものではなく、
ゲーム作成に直接必要な数学なら勉強するつもりがある、みたいな。
今やるべきことをやらないのは現実逃避ですよ。

誰でも入れる専門学校ですが、だからこそ十分な技術を身につけて
卒業できる人は少数です。限られた年数の中で、数学の基礎から応用まで、
C言語の基礎から応用まで、ゲーム制作も高度な技術を、と、なんでも
教えてもらって身に着けて卒業できると考えるのは甘いでしょう。
良い講義を聞いたとしても、基礎の出来ていない人には只の呪文です。


> 最初で書きましたが、自分はホントウに東大なんかねらう人の頭に比べれば、
> (悪い意味で)別次元に頭よくないです。

どの位謙遜が含まれているのか判りませんけど、頭が悪い人にはプログラマは向いてないですよ。
東大レベルとまでは贅沢言いませんが。
光翼型近接支援残酷超初心者さんは、中学の頃に勉強をサボってたとのことですが、
それは「今」勉強ができない事の言い訳にはなりません。
将来ゲームプログラマとして一線で働くならば、新しい技術を勉強し続ける必要があります。
「教わり続ける」でないことに注意してください。
「頭が良い」==「学校の勉強ができる」ではないのですが、
「頭が良い」人は「学校の勉強」程度の事は、そこそこできるものです。

このようにして考えてみると、大学進学というのも選択肢に入ってきませんか?
その気になって努力しても高三の1年間で学力が伸びないのならば、
そこそこのゲームプログラマとして活躍する能力はなかったと考えることもできます。


最後に、もう一つの選択肢として、高卒で就職するつもりはありませんか?
たまに専門学校卒の人の仕事振りを見ることがあります。
中には「この人は4年間も何をしていたんだろう」と呆れるほどの人もいます。
自分はそのようになるつもりはない、と思うでしょうが、
彼らも思っていなかったのです。結構な割合でいます。
一応学校で色々教わったようですが、基礎ができていないので、
自分の作った課題からも表面的な部分しか吸収できず、応用ができません。

そういう人の場合はむしろ高卒だった方が若い分だけ、
しっかり教えてあげることができたのにな、と思うわけです。
初任給について書いている人もいましたが、
企業にとってはそれだけ採用しやすい、ということも意味します。
入社後実力を付けてから会社と交渉するなり転職するなりして、
給料を上げることもできます。専門学校卒や大卒の人に比べて、
自分の方が能力があるということを言えるだけの実力が前提ですが。

ちょうど今、申込期間中ですし、4月の情報処理の試験を受けてはどうですか?
どのような進路を取るにしても有意義だと思います。
(一念発起して大学受験するなら、受験勉強の方が優先でしょう)
高卒の就職活動の時期を知りませんが、例えば7月頃には、こう言えます。
「4月に基本情報を取得しました。今は10月の応用情報に向けて勉強しています。」
私に対しては、これで専門学校卒よりも有利です。
あいにく私はゲーム業界の人ではないのですが、
ゲーム業界にも私のように考える人がいるでしょう。


1,117ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(153,840ポイント)   Date: 2010/01/17(日) 18:26   No:46438     
Title: Re:進路について    
> メールの場合、返信が遅れてしまっても大丈夫でしょうか? 
> 一応yahooのメールアドレスはあるのですが、大して使ってないので。 

大して急がないのであれば、どんなに遅れても私は困りません。


12ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(48,782ポイント)   Date: 2010/01/17(日) 20:35   No:46445     
Title: Re:進路について    
高校2年で情報処理はきついと思います
あれは大学生レベルだと私は認識してます
とっちゃう人もいるようですが、ごくまれでしょう

ゆとり教育の現在、ゆっくりと幅広い知識を持ってる人を
採用したいのではないでしょうか

新卒で入りたいなら高校なり、大学なりで、何を学んで
そこの就職する会社で何をするのか、あらかじめ決めておくのは鉄即でしょう
就職活動という名前ができるくらい誰もが大変な思いをしています
何かしら抜きんでるものがあれば、企業側も見てくれるのではないでしょうか

一般論ですのでつまらないですが、基礎は固めておいて損はしません

目指す会社にも、書類選考、一次面接、二次面接、があるところや
いきなり現場の人と面接という場合もあります
どういう会社を目指して就職するのか、目標をはっきりさせてから計画を立て
実行するのがいいですね


299ポイント を落としてしまった。

Name: shilfia  ..入門者(2,961ポイント)   Date: 2010/01/17(日) 21:12   No:46446     
Title: Re:進路について    
こんにちは。
情報工学系の学部にいる就活中の大学生です。


>「ゲーム業界(自分はプログラマー志望)に入る(、そして続けていく)には、本当にゲームの専門学校でいいのか」 

専門学校に関する話は噂程度しか知りませんが、sizumaさんのような学習意欲が高くて素晴らしい方は少ないと聞きます。
大学に関してですが、情報系の学部は大抵プログラミングを学ぶと思います。
私は自分の学校で学べる言語のほぼ全ての授業を受けました。
具体的にはJava、Java3D、OpenGL、C、VBAです。
それを勉強していて(というか学生生活を通じて)感じたことは、自主的に勉強する意欲が無い人はプログラマには向かないだろうなということです。
要するに、専門学校でも大学でも独学する意欲があればゲームプログラマになれます。

ただ、大企業を目指すのならやはり(そこそこ有名な)大学を出たほうがいいです。
万が一ゲームプログラマ以外の進路を見つけた時にも有利ですから。
激務でも会社に泊まり込みでも徹夜作業があっても、どんなゲーム会社でもいいのなら専門学校でも大学でもスキルがあればプログラマになれます。
大企業はコミュニケーション力を重視するようですが。


>「(専門学校に入るとして)専門学校はどのように選べかいいか?」 

専門学校に関しては知識が無いので分かりません。
専門学校って、やる気のない人達に流されたら終わりって話を良く聞きますが、実際どうなんでしょうか。


>「(専門学校に入るとして)入るタメには何をすればいいのか?」 

これもよく知りません。
専門学校って入試試験あるんですか?
基本的に誰でも入れるイメージなのですが。



専門学校に入る前に、今一度ゲームプログラマの研究を行うことをお勧めします。
現状を把握したうえで、それでもゲームプログラマになりたいのであれば、頑張って目指してください。
私もゲーム業界を志望していますから、応援しています。


820ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(48,720ポイント)   Date: 2010/01/17(日) 21:25   No:46447     
Title: Re:進路について    
> 高校2年で情報処理はきついと思います
> あれは大学生レベルだと私は認識してます
> とっちゃう人もいるようですが、ごくまれでしょう

商業高校とかでは授業でプログラムを教えていることもあり、
在学中に取る人も結構いるようですが。
センター試験よりも難しいとは思えません。試験の分野が違うし、
センター試験に合否があるわけではないのも承知してますけど。
私の希望は高すぎましたかね?他の人の意見も聞いてみたいな。

厳しいようですが、独学で基本情報すら取れないならば、
自分がプログラマに向いてないことが早くわかって良いと思うのですが。
適性の無い人がプログラマになると周りが迷惑ですし、何より本人が不幸でしょう。

先ほども書きましたが、受動的ではなく能動的な勉強が必要です。
専門学校に入るまでは、とか、専門学校では、ではなく、
プログラマとして働く間は、です。
プログラマは技術職一般と考えてもらっても良いでしょう。


255ポイント を手に入れた。

Name: shilfia  ..入門者(3,035ポイント)   Date: 2010/01/17(日) 21:51   No:46450     
Title: Re:進路について    
>基本情報技術者試験

一般的な高校生には厳しいでしょうね。
専門的な勉強をしている人なら取れるかもしれません。
自分を基準にすれば、50時間くらい勉強すれば取れると思います。


74ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(28,748ポイント)   Date: 2010/01/18(月) 02:14   No:46471     
Title: Re:進路について    
>shilfiaさん
>専門学校に関する話は噂程度しか知りませんが〜
はーーずーーーかーーーしーーーいーーぞーーー(笑
ごほん、僕もその人の意欲次第だと思います。
授業中にPSPしてる人とは一緒のチームで働きないです。


>基本情報技術者試験
僕の通ってる学校では、半年いろいろ授業して、プラス一ヶ月以上対策授業をして30〜40%ぐらいの合格率です。
応用に一回で受かった人は3%くらい
高度試験に一回で受かった人は1%以下。

難しいといえば難しいのでしょうか。
だから僕が面接官でも
>「4月に基本情報を取得しました。今は10月の応用情報に向けて勉強しています。」 
と高校生に言われれば評価すると思います。
僕は全面的にたいちうさんの意見に賛成です。

もし、本当に勉強しても全然出来ないのであれば、この世界は向いてないのだと思います。
立場上よく友達になんで専門にきたのかもよく聞くんですが、

「大学落ちたから」「勉強だるいから」「パソコンが好きだから」

というもので、自分の適性を考えないで決めてる人が多いようです。

もちろん「これが好きだ!」というのは大きな適性のうちの一つだと思います。
でもそれだけではやっていけない仕事もあると思います。


>「(専門学校に入るとして)入るタメには何をすればいいのか?」 
僕のところは成績がよかったら20万学費が免除される試験がありましたね。
IQテストみたいなものでした。

あと、上の僕の投稿でも書きましたが、出来ることは今するべきです。
今のあなたが一番するべきことは、あなたしか分からないことが多いですよ。
専門学校に入るために何かをするべきなのか?
今の学生生活の中で何をすべきなのか?
あなたが出来ることがきっとすぐ近くにあるはずです。

僕はあなたが”ゲームプログラマになりたい”ということだけしか分かりませんが、学校の先生や友達、一番いいのは親兄弟でしょうか。きっとあなたのことをよく分かってる人がいると思います。
その人たちに
「もっと学校の勉強をちゃんとしなさい」「部活をがんばりなさい」「いろんな人と仲良くしなさい」
なんていわれるかもしれないです。
言われたことをよく考えて、何をするべきなのかを考えてみてはどうでしょうか?

なんか偉そうに言ってますけど、僕も今の自分に出来ることがないか探しながらすごしてます。 編集済み


797ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(154,297ポイント)   Date: 2010/01/18(月) 06:51   No:46473     
Title: Re:進路について    
私もsizumaさんのようにいろいろ書ければよいのですが、専門学校で教えている立場上、あまり生々しいことは書けません。
生徒側と教員側では、見えるものも当然違ってくるのですが...
というわけで、質問者さんに限らず、メールをいただければ、ある程度は相談に乗ります。


129ポイント を手に入れた。

Name: ちゃお  ..入門者(3,041ポイント)   Date: 2010/01/18(月) 14:41   No:46485     
Title: Re:進路について    
私は大学に行った方が良いと考えています。
ゲームプログラマーになるのが目標ではなく、ゲームプログラマーになった先を見据えるといいと思います。

完全に偏見ですが、専門学校で触れるものよりも大学(情報系や電子系などの学部)で学べるインタラクティブな作品を見た方が発想が広がる気がします。質が高いのではと。

ゲーム関係のプログラミングなら専門学校でも大学でも学べる。大学通いながら、独学でも出来る。
大学に入っても、同人やらSNSに参加して、連絡して、実際にゲームプログラミングをしているプロを捕まえて、学ぶ努力をすればいい。友達になって幅を広げればいい。
昨日、大阪のあるイベントに参加して、ゲームを作ってる人に会いました。実際にプロもいましたし、実力のあるアマチュアもたくさんいました。そのような人と接触して、様々なことを学び、自身を高めて欲しいと思います。そうゆう行動力を出す。人の性格や趣味に毛嫌いをせず、と思います。

ゲーム作成に役立つ感性を磨くために、様々な人に会って、様々な作品(ゲームだけでなく、アート、小説、歴史など)を見て欲しいと思います。
プログラミングするだけがゲームプログラマーの仕事ではないと思いますから。

大学なら研究費(大学や研究室によるが)を使って、日本や海外を飛び回って、研究会などにたくさん参加でき、色々な考えを持った人に出会え、常に最先端の情報と刺激を受けられる環境があると思います。

大学に入ったとしても、大学で所属する学部の枠組みに捉われることなく、様々な人(他の学部の人や他大学の人)と交流を深めれば、枠を超えた発想などを身につけられるかと。



専門卒より大卒の方が圧倒的に採用人数も多い。

企業が求めてるのはどんな人間か。
それを考える。

セミナーで参加して、生の声を聞きましたが、スクエニなんかはCG分野の人に対して、SIGGRAPHに出るような最先端技術を持った研究者レベルを求めています。
SIGGRAPHがなんなのか調べてください。

任天堂なんかは、常に最先端の研究とゲームを絡ませて、面白いことが出来ないかを考えられるアイディアマンを求めていました。実際に内定者は、学部生より院生が多かったりします。専門卒は一人とか。人事の人は、採用は学部も院生も同じぐらいとか言いますが・・・。
加速度センサーやらジャイロセンサーやらを搭載したWiiリモコンを扱ったゲームの発想は、どこなら学べるでしょうか。

あなたが何をしたくて、どうなりたいか。

私は圧倒的に大学を推薦します。

高校現役のときは、大学試験で一つも合格できず、どこにもいけませんでした。
1浪して、1日平均12時間の勉強を10ヶ月以上続け、それなりに有名な大学にいけました。

夢に向かう覚悟があれば、努力してください。


あと、インパクトのあるネームですが、変えて欲しいかも(笑)


742ポイント を手に入れた。

Name: ちゃお  ..入門者(3,523ポイント)   Date: 2010/01/18(月) 16:14   No:46488     
Title: Re:進路について    
あと『「数学を勉強しとけ」や「C言語を予習程度に」などの『入ってからもすること』ではなく、『入る【タメ】』にする事を聞きたいのです。』 

正解はないので、自分で考えて、自分で行動してください。〜すべきという、べき論はない。
ただ、これはやっておいたほうがいいと思われることは、いくつかあると思います。

やっておいたほうがいい最低限のこと↓

・部活・バイトをする⇒面接やES時に自己PRで使える。人とのコミュニケーション力があると少しはアピールできる。幹部とか企画をしてたら、行動力とか見られるし、思考特性を見やすいから。

・ゲームや、なにかしらのアプリケーションの開発をする⇒面接でアピールできると思います。ゲームよりもインタラクティブな面白い作品を作ったことがある人の方が、採用されやすいと思いますが。具体的に使った言語の話やコードについても聞かれることあります。例えば、JavaとCのデータを通信するためにソケットプログラム使ったとか。ゲーム関連の企業入りたいのに作ってなかったら意欲ないとしか言い様がない。

・C/C++を修得⇒企業は即戦力のある人の方がさらに歓迎ってことで。

・数学、物理、C/C++、CGや高度な情報処理技術全般の勉強⇒SPIだけでなく、企業の専門科目試験ってので出ます。6〜8割以上の点数以上かつES見て、良さげな人に絞る。面接だけでなく採用試験も難関すぎる。(カプコン、バンナム、セガ、コナミ、任天堂etc)

・面接の練習が出来る就職コンサルタントのいる塾みたいなのに通って面接対策⇒なんだかんだで面接が全て
ESで落ちたらそれだけで、一生終わるし。努力無駄になる。

頭の良い大学ほど良い人材がいるという相関があるみたいなので、なんだかんだいって、良い大学の方が採用人数が多いです。あと理系なら院生の方が多かったりします。
採用の倍率を考えても大学の行った方が良いでしょう。ゲーム会社以外の進路もたくさん増えます。


資格はあまり必要ないと思います。
基本情報一つとかなら、アピールにならないと思います。大卒ぐらいならみんな持ってたりします。
どうせなら、基本情報、応用情報、ソフトウェア開発とかたくさんもってたら、意欲があるんだなと感じると思います。


482ポイント を手に入れた。

Name: 通りすがり  ..上級者(18,529ポイント)   Date: 2010/01/18(月) 21:35   No:46534     
Title: Re:進路について    
資格についてですが、現実問題、
普通の公立高校を通ってる学生さんが
基本情報を習得するのはかなり難しいです。
そんな人が多くて、最近は受験する人が減ってきてるので
独立行政法人情報処理推進機構 情報処理技術者試験センターは
「ITパスポート」という基本情報よりも一ランク下の資格を
去年より、新しく出来ました。
まずはこちらを勉強なされてはいかがでしょうか?
まあこれもある程度難しいんですけどね・・


145ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(48,864ポイント)   Date: 2010/01/18(月) 21:58   No:46537     
Title: Re:進路について    
基本情報処理などの資格の受験平均年齢
http://www.jitec.jp/1_07toukei/heikin_nenrei.pdf

こちらを参考にするといいですね

ITパスポートは最近できたばかりで、平均年齢高いですね


82ポイント を手に入れた。

Name: 光翼型近接支援残酷超初心者  ..中級者(9,895ポイント)   Date: 2010/01/19(火) 00:09   No:46551     
Title: Re:進路について    
またしても遅くなってすみません。
まだまだ光翼型近接支援残酷超初心者です。


>>softyaさん
>XNAのコンテスト
すばらしいですね! 学生さんでもあそこまでのモノが出来るなんてすごいです。
僕もアレ(等)くらい作ってみせるようになってみたいです。もちろん一人では無理なのでしょうけどね。

でも、アレ等のように表に出ているのは、裏側に沈んでしまったモノ達の上になりたっているんですよね。

>ゲーム学校の実態
そのサイトですが、実はこの質問をする前に見たのですが、その「ゲーム学校の実態」を見たからこそ、この質問をさせて頂いてると言っても過言ではないのです。

ゲームの専門学校の事を調べようと、グーグルで、「ゲーム 専門学校」と打った時の検索候補欄に「実態」とあるのが見え、気になったので「ゲーム 専門学校 実態」でググりました。
そして「ゲーム学校の実態」に行き着いた訳です。

そこからは、最初に書いたように「いろいろなサイト・掲示板・質問広場」を回り、不安・疑問に駆られ、この質問をさせて頂いている訳なのです。
「いろいろなサイト」の一番最初にめぐり合ったサイトこそが「ゲーム学校の実態」だったのです。


>>たいちうさん
>数学が嫌いだから後回しにしたいだけのように思えます。
そーゆー意味ではありません。自分の文章が悪いからかもしれませんが、「やらない」など一言も書いてません。

文章の悪さのセイで、やはり皆さんにイマイチ伝わってないみたいですが、今さっきよさそうな言葉が浮かびました。
質問文章がまるっきり変わりますが、


「専門学校に入るタメには、何か事前に特別な事をする必要がありますか?」と言えば――


――…………最初からこう書けばよかったですね。まさに orz です。

>大学進学というのも選択肢に入ってきませんか?
この質問でたくさんの意見を聞かせて頂いてから、そちらも大いに選択肢の一つとさせて頂いてます。
取り合えず、安易に「専門学校に行けば安牌」という考えは捨てました(もちろん人生に安牌なんてないと思います。

>高卒で就職するつもりはありませんか?
正直、自信が微塵もありません。
まず一番重要と思える、コミュニケーション能力が自分にあるとも思えないのです。
逃げ、なのだと思うのですが、その選択肢には正直、目を背けてしまいます。

>>shilfiaさん
>自主的に勉強する意欲が無い人はプログラマには向かないだろうなということです。 
専門職、いやそれ以外でも意欲というのが無い人には「仕事」自体が向かないんでしょうね。
意欲、つまりヤル気ですよね。ヤル気だけ、ではダメでもありますが、かといってヤル気が重要なモノにはかわりありませんよね。

>専門学校って、やる気のない人達に流されたら終わりって話
そういうのが気になるのです。けど本当に「ヤル気」がある人は流されないんでしょうね、きっと。
でも、

自分「ヤル気十分っス!」

周り「ダルい」

みたいな事になり、ヤル気もどんどん磨り減っちゃうと思うと、とても心配です不安です怖いです。


>>sizumaさん
>授業中にPSPしてる人とは一緒のチームで働きたくないです。
そうですね。特にゲームは一人で作るものではないと聞いているので、そんな人たちと一緒になったと思うと、軽く絶望的な感じがします。

他にもタメになる事をありがとうございます。
僕もsizumaさんや他の方々みたいに、いつか答える立場になるほどの人物になりたいものです。


>>ちゃおさん
>ゲーム作成に役立つ感性を磨くために、様々な人に会って、様々な作品(ゲームだけでなく、アート、小説、歴史など)を見て欲しいと思います。 
親もよくいいます。「ゲームだけでなく、いろんな『引き出し』を増やせ」、とね。
自分もその通りだと思ってます。一つがどんなに優れていても、他の殆どがダメじゃあ、まさに「ダメ」だって話ですよね。

>SIGGRAPH
横浜で少し前にやっていたのを見てきました。
しかし最初、CMを見たとき「CGのイベントか〜。面白そうだな〜」と思っていたのですが、実際に現地に行って驚きました。

まず、SIGGRAPH自体、(説明しずらいのですが)雰囲気は東京ゲームショウのようなモノだと思っていたんです。
でも入ってみれば、最先端の技術を説明していたり、高度な研究の発表会のような、とても専門的でCGのことを何も知らない自分ではついていけない世界でした(外国の方が多かったのも、「ついていけない」と思った理由の一つだと思います。
もちろん、普通に楽しめる所もありました。かといって、結局は、自分の思っていたイベントのイメージとは結構違っていたので、そのインパクトのおかげであまり内容が頭に入らずにいました。今思い出そうとしても、なかなか思い出せない所が多いです。
後、入るために、いろいろと書くのも驚きましたね。書く物を持ってなかったので、建物内のコンビニでペンを買ったのをよく覚えています。


>>たかぎさん
掲示板の、所謂「メッセージ機能」を使ったことがないので、どうすればいいのか分かりませんでしたが。
とりあえず、挨拶とyahooのメールアドレスを乗せたモノを送ろう、としたら、「ホスト"STEP"が見つかりません」とエラーが出て、遅れませんでした。

本当に恥ずかしながら、どのようにすればいいのでしょうか?
ぜひ生々しいお話を聞きたいと思っているので、ご教授を願えないでしょうか?



>>まとめ

とりあえず質問を変えた「専門学校に入るタメには、何か事前に『特別』な事をする必要がありますか?」を今一度回答ほどをお願いします。
今のところ、特に無い。ということらしいですが、ありましたら何でも言って下さい。お願いします。

それと、この質問ですが。きっと「解決」マークはつかないと思います。
この質問の中で、全てを決めてしまうのは良くないハズ、だからです。
まだまだこれから、ずいぶん悩みながら決めていきたいと思っています。


ところで、皆さんの言う、基本情報技術者試験? や情報処理検定? と、情報技術検定ってのは違うものですよか? というか違うものですよね?




まだまだご回答・ご意見・助言をお願いします。


1,933ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(155,034ポイント)   Date: 2010/01/19(火) 00:11   No:46552     
Title: Re:進路について    
> 本当に恥ずかしながら、どのようにすればいいのでしょうか? 

普通にメールを送って下さい。
私の名前のところに、mailto:でリンクが貼られているはずです。


28ポイント を手に入れた。

Name: shilfia  ..入門者(3,469ポイント)   Date: 2010/01/19(火) 01:47   No:46557     
Title: Re:進路について    
>「専門学校に入るタメには、何か事前に特別な事をする必要がありますか?」
これって、みなさんが回答されていることがすべてだと思うのですが・・・。
何かあれば私も知りたいです。

>基本情報技術者試験
情報処理技術者試験の中にITパスポート試験、基本情報技術者試験などがあります。


最後に今一度、ゲームの専門学校に行くべきかどうか考えることをお勧めします。
ゲームクリエイターのような仕事は、やる気のある人は大量にいますが実際にゲーム制作の内容に触れると諦める人が大半だと思います。
独学でゲームを作る行動力があるかどうかが重要です。
プログラムを組んでみた事はありますか?数学物理の基礎は勉強しましたか?
もしなければ、専門学校に入る前に触れておいた方がいいです。
やってみて、嫌にならずに続けたいと思えれば大丈夫です。
これらのことが問題なくできれば、後は知識をつけて課題作品作ってコミュ力磨いて見事就職!です。


2倍のポイントを手に入れた! 434ポイント を手に入れた。

Name: 光翼型近接支援残酷超初心者  ..中級者(9,895ポイント)   Date: 2010/01/19(火) 23:03   No:46636     
Title: Re:進路について    
>>たかぎさん
正直遅れているのか不安なので、内容は特に書いてませんが、挨拶という形でメールを送らせて頂きました。
届いていれば、ご返事をお願いします。

>>shilfia
>みなさんが回答されていることがすべてだと思うのですが・・・。
確かにそうですね。言葉が浮かんだのに浮かれて、思い至りませんでした。
あ、それでもなにか他にあるようでしたら、他の方々もお答え頂けると嬉しいです。

>基本情報技術者試験
学校の先生に聞きましたが、情報技術検定とは全然別物でした。難易度もずいぶん違うようでした。

>最後に今一度、ゲームの専門学校に行くべきかどうか考えることをお勧めします。
とっても考え直してます。これから時間が許す限り、悩みに悩んで決めていこう思ってます。



ところで、専門学校の選び方の話になるのですが。

奨学金を(多く)用意している学校などは、学校選ぶさいの一つの基準として考えてもよろしいでしょうか?


Name: sizuma [URL]  ..プログラマー(30,533ポイント)   Date: 2010/01/20(水) 18:59   No:46732     
Title: Re:進路について    
>奨学金を(多く)用意している学校などは、学校選ぶさいの一つの基準として考えてもよろしいでしょうか?
ちょっとよくわからないですね。
奨学金って日本育英会、とかそういうのから出てるんじゃないいでしょうか?
無利子の審査が厳しいものもありますけど、たいていは利子がついてますよね。(平均評定4,5以上だったらオッケーとか、親の収入が1000万以上はダメ、とか)
利子が付いてる奨学金は、ビジネスライクなものに違いないのでは??
僕は奨学金審査てもらうかな、と思ったことぐらいしかないのでよくわからないですけど。


210ポイント を手に入れた。

Name: 光翼型近接支援残酷超初心者  ..中級者(9,972ポイント)   Date: 2010/01/20(水) 21:10   No:46741     
Title: Re:進路について    
えっとですね。
あまり良い言い方じゃあありませんが、奨学金を用意している学校は、いわゆる「当たり」やら「良い方」の学校と考えてもよろしいのでしょうか?
という意味です。


77ポイント を手に入れた。



Name: たこやき  ..初心者(8,365ポイント)   Date: 2010/01/20(水) 06:27   No:46659       
Title: 無題    
あるサイトで気になったので質問させていただきます。
http://www.geocities.jp/kenji_y0328/crenshu/renshu/r094.html
の問題で「社員マスタ、残業時間ファイルを読み込み、残業手当と支給額合計の計算を行い、支給ファイルを出力する。」
なのですが、これをif(m_bango<t_bango)を使わずにプログラミングする方法を教えてください。



142ポイント を手に入れた。


Name: non  ..比類無きプログラマー(88,712ポイント)   Date: 2010/01/20(水) 09:45   No:46672     
Title: Re:無題    
>これをif(m_bango<t_bango)を使わずにプログラミングする方法

質問の意味がわかりません。
マスターとトランザクションの番号を比較しないで作れということでしょうか?
それとも、m_bango<t_bango は駄目で、m_bango>=t_bango なら良いということでしょうか?
補足してください。


90ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(49,730ポイント)   Date: 2010/01/20(水) 09:47   No:46673     
Title: Re:無題    
こういうこと?

if (m_bango<t_bango) {
    ...
}
↓
for ( ; m_bango < t_bango; ) {
    ...
    break;
}


違うならば、ifを使ったプログラムと質問の具体的な意味を書いてください。


64ポイント を手に入れた。

Name: たこやき  ..初心者(8,583ポイント)   Date: 2010/01/20(水) 17:48   No:46719     
Title: Re:無題    
回答ありがとうございます。
> nonさん
返信ありがとうございます。マスターとトランザクションの番号を比較しないで作れということでしょうか? 
そういうことです。説明不足ですみません。
>たいちうさん
返信ありがとうございます。
>違うならば、ifを使ったプログラムと質問の具体的な意味を書いてください。
プログラムはなんて書いてよいのかわかりません。マスターとトランザクションの番号を比較しないで作れということです。
それ以外は特に決まりはありません。説明不足ですみません。


162ポイント を手に入れた。

Name: non  ..比類無きプログラマー(88,917ポイント)   Date: 2010/01/20(水) 18:08   No:46722     
Title: Re:無題    
マッチングってのは、キーを比較して操作しますからねぇ。
キーを比較しない方法なんてのは、考えたことがないです。
目的はなんですか?


60ポイント を手に入れた。

Name: たこやき  ..初心者(8,678ポイント)   Date: 2010/01/20(水) 18:50   No:46731     
Title: Re:無題    
返信ありがとうございます。目的はとくにないです。ただキーを比較しないで出来ないかなと考えに
至って考えても思いつかなかったので質問させていただきました。え


14ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(50,509ポイント)   Date: 2010/01/20(水) 19:52   No:46736     
Title: Re:無題    
プログラムから離れて考えてみてください。

社員マスタと残業時間ファイルという紙の書類を受け取りました。
社員番号の比較をしないで支給ファイルを作成することができますか?

社員マスタと残業時間ファイルの行が完全に対応している場合は可能ですけど。


100ポイント を手に入れた。



Name: アトラス  ..入門者(3,526ポイント)   Date: 2010/01/19(火) 05:32   No:46560       
Title: (C++)再帰的構造体を使ったリストの処理    
学校の課題です。

あらかじめ与えられた関数をつかって、リストの中身を反転させる関数reverseを作れという問題です。

とりあえず反転には成功しているようなのですが、

その後リストに数字を追加しようとしても何も追加されていない現象が起きて困っています。(削除するのは問題なし)

どこが原因なのでしょうか?

アドバイスよろしくお願いします。

==========================
#include <stdio.h>
#include <stdlib.h>

typedef struct list{    //再帰的構造体
    int data;
    struct list *next;
} LIST;

LIST *head,*tail;    //head:リストの先頭 tail:リストの末尾

int non=0;    //指定の数字が存在するかのフラグ


//リストの中身を表示
void display_list(LIST *p) {

    if(p == NULL)
        printf("\nからっぽ!\n\n");
    else{
        printf("\n現在のリストの中身は\n\n");

        printf("( %d ", p->data);
        p = p->next;
        while(p != NULL){
            printf(", %d ", p->data);
            p = p->next;
        }
        printf(")\n\nです\n\n");
    }
    
}

//新規リスト作成
LIST *new_list(int x, LIST *y){

    LIST *c = (LIST *)malloc(sizeof(LIST));
    c->data = x;
    c->next = y;
    return c;

}

//リストに数字を追加
void add_list(int x){
    LIST *p;
    p = new_list(x, NULL);

    if(head == NULL)
        head = tail = p;
    else{
        tail->next = p;
        tail = p;
    }
}

//リストから数字を削除
void delete_list(int x){
    LIST *p, *q;
    q = p = head;

    while(p != NULL && x != p->data){
        q = p;
        p = p->next;
    }

    if (p == NULL){
        non=1;
        return;
    }

    if (q == p) head = head->next;
    else q->next = p->next;

    free(p);
}

//2つのリストを結合
LIST *append(LIST *list1, LIST *list2){
    if (list1 == NULL){
        return list2;
    }else{
        return new_list(list1->data , append(list1->next,list2));
    }
}

//リストを反転
LIST *reverse(LIST *list){
    if(list==NULL) return list;
    else return append(reverse(list->next) , new_list(list->data,NULL));
}


void main(){
    int a,add,del;

    while(1){

        printf("\n\n    ┌--------------------┐\n");
        printf("    │                    │\n");
        printf("    │     コマンド       │\n");
        printf("    │                    │\n");
        printf("    │  0 : リストの表示  │\n");
        printf("    │  1 : リストの追加  │\n");
        printf("    │  2 : リストの削除  │\n");
        printf("    │  3 : リストの反転  │\n");
        printf("    │                    │\n");
        printf("    └--------------------┘\n\nコマンド>");

        scanf("%d",&a);

        if(a==0){
            display_list(head);

        }else if(a==1){

            printf("\n追加する数字は?\n\n");
            scanf("%d",&add);
            add_list(add);
            printf("\n%d を追加しました!",add);

        }else if(a==2){

            printf("\n削除する数字は?\n\n");
            scanf("%d",&del);
            delete_list(del);
            if(non==0){
                printf("\n%d を削除しました!\n\n",del);
            }else if(non==1){
                printf("\nその数字はリストに存在しません!");
                non=0;
            }

        }else if(a==3){
            if(head!=NULL) tail=new_list(head->data,NULL);
            head=reverse(head);
            printf("\n反転が完了しました");
        }

    }

}


668ポイント を手に入れた。


Name: non  ..比類無きプログラマー(88,247ポイント)   Date: 2010/01/19(火) 10:15   No:46572     
Title: Re:(C++)再帰的構造体を使ったリストの処理    
あなたの逆順への考え方が、さっぱりわかりません。

まず、mainの最初でhead=NULL;はやっておきましょう。(自動的にNULLが入っているとしても)


逆順にした後、追加ができないのは、tailが最後尾を指していないからです。
とりあえず動けばいいのなら、head=reverse(head);の行の後に
            for(tail=head;tail->next!=NULL;tail=tail->next){}
この1行を追加します。
しかし、これでは、mallocされた、メモリがまったく解放されてません。
このような、プログラムは作るべきではありません。

逆順にするのに、再帰呼び出しを使わなければいけないのでしょうか?
指定されていないのなら、再帰呼び出しにしない方が、いいと思います。
どこまでが、課題として指定されているのか明確にしてください。


327ポイント を手に入れた。

Name: アトラス  ..入門者(4,540ポイント)   Date: 2010/01/20(水) 02:18   No:46658     
Title: Re:(C++)再帰的構造体を使ったリストの処理    
回答ありがとうございます。

逆順の作り方が根本的に違っていたみたいですね。

やり方の指定は特にありません。再帰について習った授業で出された課題なので、てっきりこれを使うのかと勘違いしていました。

tailをきちんと設定して、再起を使わずに書きなおしてみました。

今回は問題なく動きましたが、これでOKでしょうか。




#include <stdio.h>
#include <stdlib.h>

typedef struct list{    //再帰的構造体
    int data;
    struct list *next;
} LIST;

LIST *head,*tail;    //head:リストの先頭 tail:リストの末尾

int non=0;    //指定の数字が存在するかのフラグ


//リストの中身を表示
void display_list(LIST *p) {

    if(p == NULL)
        printf("\nからっぽ!\n\n");
    else{
        printf("\n現在のリストの中身は\n\n");

        printf("( %d ", p->data);
        p = p->next;
        while(p != NULL){
            printf(", %d ", p->data);
            p = p->next;
        }
        printf(")\n\nです\n\n");
    }
    
}

//新規リスト作成
LIST *new_list(int x, LIST *y){

    LIST *c = (LIST *)malloc(sizeof(LIST));
    c->data = x;
    c->next = y;
    return c;

}

//リストに数字を追加
void add_list(int x){
    LIST *p;
    p = new_list(x, NULL);

    if(head == NULL)
        head = tail = p;
    else{
        tail->next = p;
        tail = p;
    }
}

//リストから数字を削除
void delete_list(int x){
    LIST *p, *q;
    q = p = head;

    while(p != NULL && x != p->data){
        q = p;
        p = p->next;
    }

    if (p == NULL){    //見つからなかった場合
        non=1;
        return;
    }

    if (q == p) head = head->next;    //先頭にあった場合
    else q->next = p->next;    //それ以外:消えた部分を連結

    free(p);
}

//リストを反転
LIST *reverse(LIST *list){
    LIST *p;
    
    if(list==NULL) return list;

    p=new_list(list->data,NULL);
    tail=p;

    while(list->next!=NULL){

        list=list->next;
        p=new_list(list->data,p);

    }

    return p;
}


void main(){
    int a,add,del;
    head=NULL;
    tail=NULL;

    while(1){

        printf("\n\n    ┌--------------------┐\n");
        printf("    │                    │\n");
        printf("    │     コマンド       │\n");
        printf("    │                    │\n");
        printf("    │  0 : リストの表示  │\n");
        printf("    │  1 : リストの追加  │\n");
        printf("    │  2 : リストの削除  │\n");
        printf("    │  3 : リストの反転  │\n");
        printf("    │                    │\n");
        printf("    └--------------------┘\n\nコマンド>");

        scanf("%d",&a);

        if(a==0){
            display_list(head);

        }else if(a==1){

            printf("\n追加する数字は?\n\n");
            scanf("%d",&add);
            add_list(add);
            printf("\n%d を追加しました!",add);

        }else if(a==2){

            printf("\n削除する数字は?\n\n");
            scanf("%d",&del);
            delete_list(del);
            if(non==0){
                printf("\n%d を削除しました!\n\n",del);
            }else if(non==1){
                printf("\nその数字はリストに存在しません!");
                non=0;
            }

        }else if(a==3){
            head=reverse(head);
            printf("\n反転が完了しました");
        }

    }

}

 編集済み


1,014ポイント を手に入れた。

Name: non  ..比類無きプログラマー(88,560ポイント)   Date: 2010/01/20(水) 09:23   No:46670     
Title: Re:(C++)再帰的構造体を使ったリストの処理    
新しいリストを作り直したのなら、古いリストのノードを
削除しなくてはいけません。

または、新しいノードを作らずに、繋ぎ換えだけをおこなうように
作るかのどちらかです。


3ポイント を手に入れた。

Name: アトラス  ..入門者(4,593ポイント)   Date: 2010/01/20(水) 18:10   No:46723 解決!     
Title: Re:(C++)再帰的構造体を使ったリストの処理    
あぁ、削除しないとどんどんたまってしまいますね、気付いていませんでした(汗)

アドバイスありがとうございました!

おかげで完成させることができました。


53ポイント を手に入れた。



Name: ジャーニー  ..入門者(3,224ポイント)   Date: 2010/01/20(水) 11:18   No:46691       
Title: DXライブラリの文字列を回転して表示させたい    
お世話になっております

DXライブラリでフォントハンドルを用いて文字列を描画するDrawStringToHandleという関数があります.
この関数を用いて文字列を描画するのですが,普通に描画すると文字列が水平に表示されてしまいます.
文字列を水平に描画するのではなく,傾けたり,垂直に描画したいです.

1つの方法としては画面に文字列を描画して,それを画像にしてから貼り付けるという方法がありますが,
もっと簡単にできる方法はないでしょうか.

よろしくお願いします.


183ポイント を手に入れた。


Name: Ma  ..プログラマー(31,363ポイント)   Date: 2010/01/20(水) 11:57   No:46695     
Title: Re:DXライブラリの文字列を回転して表示させたい    
斜め等はジャーニーさんがおっしゃるような、なんらかの方法で一度キャプチャしないとだめかもしれません。

ただ、日本語のように縦文字ならかけます・・・。
extern    int            DrawFormatVStringToHandle( int x, int y, int Color, int FontHandle, const char *FormatString, ... ) ;                                                // 書式指定文字列を描画する
といっても、これでは文字の並び方も変わっちゃうので求めているような描画はできないでしょうが・・・。

少なくとも私が知っている方法は一度画像ハンドル(ソフトイメージハンドルか、イメージハンドルとか)作る必要があります。


22ポイント を手に入れた。

Name: ジャーニー  ..入門者(3,087ポイント)   Date: 2010/01/20(水) 13:40   No:46709     
Title: Re:DXライブラリの文字列を回転して表示させたい    
>Maさん

回答ありがとうございます.
傾けるのはできたらいいなという程度で,やりたいのは垂直表示なのでその関数を使ってみると思ったように垂直になりました.
ただ,DrawStringToHandleにも隠し引数で垂直フラグがあったのですが,どちらも時計回りに90度回転するだけでした.
反時計回りにも90度回転させる方法はないものでしょうか?


137ポイント を落としてしまった。

Name: Ma  ..プログラマー(31,977ポイント)   Date: 2010/01/20(水) 14:03   No:46711     
Title: Re:DXライブラリの文字列を回転して表示させたい    
ありゃ、縦書きになると思ったのは勘違いだったみたいですね、すいません。
もしかしたらフォントに依存するのかも・・・?

反時計周りは分かりません。
やはりこれ以降は画像として扱わないと難しいのかも。


98ポイント を手に入れた。

Name: ジャーニー  ..入門者(3,156ポイント)   Date: 2010/01/20(水) 14:30   No:46712     
Title: Re:DXライブラリの文字列を回転して表示させたい    
>Maさん

やはり画像で扱うしかないみたいですね.
縦書きになるのは縦書きフォントを使用した場合になりますので,普通のフォントであれば文字が回転するようです.
ありがとうございました.


69ポイント を手に入れた。

Name: ジャーニー  ..入門者(3,168ポイント)   Date: 2010/01/20(水) 14:46   No:46714 解決!     
Title: Re:DXライブラリの文字列を回転して表示させたい    
解決を忘れてました

2倍のポイントを手に入れた! 12ポイント を手に入れた。



Name: MIRORU  ..かけだし(2,030ポイント)   Date: 2010/01/19(火) 09:21   No:46567 解決!       
Title: 移動    
移動のプログラムで↑・↓・→のコマンドはいいのですが、←のボタンを使うと画像が点滅し、あたり判定も無視して、ずっと上に向かいます。なぜでしょうかお願いします。 編集済み

73ポイント を手に入れた。


Name: MIRORU  ..かけだし(2,062ポイント)   Date: 2010/01/20(水) 09:19   No:46669     
Title: Re:移動    
・乗せているプログラムで正常に動くのと動かないプログラムの違うのはenemyだけなのでここも乗せておきます。

訂正です原因はあたり判定とわかりました。
CollisionDetection()でした。
改善点を教えてください。
 編集済み


32ポイント を手に入れた。

Name: MIRORU  ..ぴよぴよ(43ポイント)   Date: 2010/01/20(水) 09:51   No:46674     
Title: Re:移動    
その他に、関数で必要なものがあれば言ってください。その時アップします。実行可能のプログラムは勘弁してください。

43ポイント を手に入れた。

Name: MIRORU  ..かけだし(2,031ポイント)   Date: 2010/01/20(水) 12:12   No:46699     
Title: Re:移動    
すみません。自分で何とかなりました。
すみませんが消し説いてください


31ポイント を落としてしまった。



Name: とく  ..かけだし(1,367ポイント)   Date: 2010/01/18(月) 23:06   No:46549       
Title: PSPへ移植の時エラーが出てしまいます。    
龍神録をPSPへ移植しようと思い、ソースを書いてコンパイルしようとしたのですが、エラーが出てしまいます。

環境
OS:Windows7
IDE:Visual C++ 2008
SDK:Minimalist PSPSDK for Windows

Makefile
TARGET = TestProject
OBJS = main.o key.o
INCDIR = C:\pspsdk\psp\include
INCDIR += C:\Projects\PSP\PSP\include
CFLAGS = -O2 -G0
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

LIBDIR =
LDFLAGS =

LIBS = -lm -lpspdebug
LIBS += dxlibp.a -lpspgu -lpng -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec -lpsputility -lpspjpeg

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Title

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak


all:
    @rm -f *.o
    @rm -f *.elf
    @rm -f *.BAK
    @rm -f *.SFO
main.cpp
#include <GV.h>
#include <pspkernel.h>
#include <psppower.h>
#include <dxlibp.h>
#define GLOBAL_INSTANCE

PSP_MODULE_INFO("TEST", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);

//現在のキー入力処理を行う
extern int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
extern int CheckStateKey(unsigned char Handle);

//ループで必ず行う3大処理
int ProcessLoop(){
    if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
    if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
    GetHitKeyStateAll_2();//現在のキー入力処理を行う
    return 0;
}

int main(void)
{
    if(DxLib_Init() == -1 || SetDrawScreen(DX_SCREEN_BACK)!=0)
        return -1;//初期化と裏画面化
    
    while(ProcessLoop()==0){//メインループ

        if(CheckStateKey(DXP_INPUT_SELECT)==1)
            break;//SELECTが入力されたらブレイク
       
        ScreenFlip();//裏画面反映
    }

    DxLib_End();//DXライブラリ終了処理

    sceKernelExitGame();

    return 0;
}
key.cpp
#include <GV.h>

unsigned int stateKey[256];

int GetHitKeyStateAll_2(){
    char GetHitKeyStateAll_Key[256];
    GetHitKeyStateAll( GetHitKeyStateAll_Key );
    for(int i=0;i<256;i++){
        if(GetHitKeyStateAll_Key[i]==1)
            stateKey[i]++;
        else                       
            stateKey[i]=0;
    }
    return 0;
}

int CheckStateKey(unsigned char Handle){
        return stateKey[Handle];
}


ファイルの構成

プログラムのソースすべて
dxlibp.a
dxlibp.h
makefile
include
|_自作ヘッダーファイルすべて
dat(画像やらいろいろ)

エラーメッセージ

1>main.cpp: In function 'int main()':
1>main.cpp:29: error: 'DX_SCREEN_BACK' was not declared in this scope
1>make: *** [main.o] Error 1
1>Project : error PRJ0019: ツールはエラー コードを返しました : "メイクファイル プロジェクト動作を実行しています。"

なぜエラーが出てしまうのかわかりません。
dxlibp.hがインクルードされてないとかでしょうか?
教えてください。


1,367ポイント を手に入れた。


Name: pooka [URL]  ..上級者(21,612ポイント)   Date: 2010/01/19(火) 19:31   No:46609     
Title: Re:PSPへ移植の時エラーが出てしまいます。    
http://dxlibp.sourceforge.jp/cgi-bin/patio/read.cgi?mode=view&no=53
こちらを見るとDX_SCREEN_BACKをDXP_SCREEN_BACKに変えればよさそうです。

ちょっとdxlibp.hを見てみましたが、v0.5.5ではDX_SCREEN_BACKとなっているようなので、
ご使用のバージョンが古いのかもしれませんね。


32ポイント を手に入れた。

Name: とく  ..かけだし(1,958ポイント)   Date: 2010/01/19(火) 22:29   No:46626     
Title: Re:PSPへ移植の時エラーが出てしまいます。    
たびたびすいません。

DXライブラリPortableを新しくしたら解消されたのですが、別のエラーが出てきてしまいます。

1>psp-gcc -IC:\pspsdk\psp\include -IC:\Projects\PSP\PSP\include -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -D_PSP_FW_VERSION=150  -L. -LC:/pspsdk/psp/sdk/lib   main.o key.o -lm -lpspdebug dxlibp.a -lpspgu -lpng -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec -lpsputility -lpspjpeg -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o TestProject.elf
1>dxlibp.a(graphics.o): In function `dxpGraphicsInit':
1>graphics.c:(.text+0xc50): undefined reference to `vgetMemorySize'
1>graphics.c:(.text+0xcbc): undefined reference to `vgetMemorySize'
1>graphics.c:(.text+0xe1c): undefined reference to `vGuPointer'
1>graphics.c:(.text+0xe34): undefined reference to `vGuPointer'
1>graphics.c:(.text+0xf68): undefined reference to `vfree'
1>graphics.c:(.text+0xf70): undefined reference to `vfree'
1>graphics.c:(.text+0xf78): undefined reference to `vfree'
1>graphics.c:(.text+0xfe8): undefined reference to `vgetMemorySize'
1>dxlibp.a(graphics.o): In function `dxpGraphicsEnd':
1>graphics.c:(.text+0x1054): undefined reference to `vfree'
1>graphics.c:(.text+0x105c): undefined reference to `vfree'
1>graphics.c:(.text+0x1064): undefined reference to `vfree'
1>graphics.c:(.text+0x106c): undefined reference to `vfree'
1>dxlibp.a(texutils.o): In function `MoveGraphToDDR':
1>texutils.c:(.text+0x568): undefined reference to `vCPUPointer'
1>texutils.c:(.text+0x580): undefined reference to `vfree'
1>dxlibp.a(texutils.o): In function `dxpGraphicsReleseTexture':
1>texutils.c:(.text+0xafc): undefined reference to `vfree'
1>dxlibp.a(texutils.o): In function `dxpGraphicsReleseGraphicHandle':
1>texutils.c:(.text+0xd18): undefined reference to `vfree'
1>dxlibp.a(fileio.o): In function `dxpPowerCallbackThread':
1>fileio.c:(.text+0x264): undefined reference to `scePowerRegisterCallback'
1>collect2: ld 、マ・ケ・ニ。シ・ソ・ケ 1 、ヌスェホサ、キ、゛、キ、ソ
1>make: *** [TestProject.elf] Error 1



これはなんなのでしょうか。
さっぱりわかりません。
本当にすいませんが教えてもらえるとうれしいです。


591ポイント を手に入れた。

Name: pooka [URL]  ..上級者(21,642ポイント)   Date: 2010/01/19(火) 23:30   No:46644     
Title: Re:PSPへ移植の時エラーが出てしまいます。    
dxlibp_src_v0.5.5.rarに付属のreadme.txtに
【0.4.x以前からの更新注意!】とありますが、読まれましたか?


30ポイント を手に入れた。

Name: とく  ..かけだし(1,991ポイント)   Date: 2010/01/20(水) 00:47   No:46656 解決!     
Title: Re:PSPへ移植の時エラーが出てしまいます。    
解決できました!!
本当にありがとうございました。
また、お世話になるかもしれないので、その時は、よろしくお願いします。


33ポイント を手に入れた。



Name: XKXY  ..ぴよぴよ(279ポイント)   Date: 2010/01/19(火) 21:53   No:46619       
Title: リンカ ツール エラー LNK2019とグローバル変数について。    
今度はリンカ ツール エラー LNK2019とグローバル変数に悩まされています。
どうすればよろしいのでしょうか?

以下問題のソースコードとエラーメッセージ

bitmap.hの中身。

#ifndef BITMAP_GAME
#define BITMAP_GAME

template <class type>
class Graphics
{
public:;
    void screen_up();
    void mario();
};
class Bitmap
{
 protected:
    int z;
 public:
     int get_z();
     void change_z(const int& set_z);
};
static Graphics<Bitmap> graphics;
#endif

bitmap.cppの中身
#include "bitmap.h"

template <class type>
void Graphics<type>::screen_up()
{
};
template <class type>
void Graphics<type>::mario()
{
};
int Bitmap::get_z()
{
     return z;
};
void Bitmap::change_z(const int& set_z)
{
     z=set_z;
};
 


scene.hの中身
#ifndef SCENE_GAME
#define SCENE_GAME

#include "bitmap.h"
class Scene_Base
{
  public:
    virtual void main();
};

#endif

scene.cppの中身

#include "scene.h"

void Scene_Base::main()
{
    graphics.screen_up();            
    graphics.mario();
};


279ポイント を手に入れた。


Name: KKXY  ..入門者(3,017ポイント)   Date: 2010/01/19(火) 21:57   No:46620     
Title: Re:リンカ ツール エラー LNK2019とグローバル変数について。    
エラーメッセージを忘れていました。

コンパイルしています...
bitmap.cpp
main.cpp
scene.cpp
コードを生成中...
マニフェストをリソースにコンパイルしています...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation.  All rights reserved.
リンクしています...
scene.obj : error LNK2019: 未解決の外部シンボル "public: void __thiscall Graphics::mario(void)" (?mario@?$Graphics@VBitmap@@@@QAEXXZ) が関数 "public: virtual void __thiscall Scene_Base::main(void)" (?main@Scene_Base@@UAEXXZ) で参照されました。
scene.obj : error LNK2019: 未解決の外部シンボル "public: void __thiscall Graphics::screen_up(void)" (?screen_up@?$Graphics@VBitmap@@@@QAEXXZ) が関数 "public: virtual void __thiscall Scene_Base::main(void)" (?main@Scene_Base@@UAEXXZ) で参照されました。
C:\Users\kimura  keigo\Documents\Visual Studio 2008\Projects\実験_2\Debug\実験_2.exe : fatal error LNK1120: 外部参照 2 が未解決です。


395ポイント を手に入れた。

Name: MNS  ..プログラマー(29,875ポイント)   Date: 2010/01/19(火) 22:05   No:46622     
Title: Re:リンカ ツール エラー LNK2019とグローバル変数について。    
class Graphics
{
public:; 
    ↑このセミコロンが問題では?


29ポイント を手に入れた。

Name: KKXY  ..入門者(3,101ポイント)   Date: 2010/01/19(火) 22:24   No:46624     
Title: Re:リンカ ツール エラー LNK2019とグローバル変数について。    
はずしてみましたが問題解決にはなりませんでした。

27ポイント を手に入れた。

Name: MNS  ..プログラマー(29,933ポイント)   Date: 2010/01/19(火) 22:39   No:46629     
Title: Re:リンカ ツール エラー LNK2019とグローバル変数について。    
確かに、文法上は間違いではなかったですね(そうなのか?)

コードを全て開示していただかないと、これ以上私はわかりませんね。
(グローバル変数に悩まされているということですが、そのグローバル変数も見当たりませんし。)


58ポイント を手に入れた。

Name: KKXY  ..入門者(3,156ポイント)   Date: 2010/01/19(火) 22:45   No:46631     
Title: Re:リンカ ツール エラー LNK2019とグローバル変数について。    
一番上の文章の27行目あたりに
static Graphics<Bitmap> graphics;
と書いてあるはずなんですが・・・。
これがグローバル変数のはずなんですけど・・・。 


55ポイント を手に入れた。

Name: hoge  ..入門者(3,696ポイント)   Date: 2010/01/19(火) 22:46   No:46632     
Title: Re:リンカ ツール エラー LNK2019とグローバル変数について。    
template はヘッダファイルに移動。


あと、
static Graphics<Bitmap> graphics; 


これは、本当にヘッダファイルに書く必要あるの?


45ポイント を手に入れた。

Name: KKXY  ..入門者(3,191ポイント)   Date: 2010/01/19(火) 22:52   No:46634     
Title: Re:リンカ ツール エラー LNK2019とグローバル変数について。    
hogeさんがいったようにやってみたら解決しました。
どうもありがとうございました。


35ポイント を手に入れた。

Name: MNS  ..プログラマー(29,952ポイント)   Date: 2010/01/19(火) 23:07   No:46637     
Title: Re:リンカ ツール エラー LNK2019とグローバル変数について。    
本当ですね。すいません、見逃していました。

19ポイント を手に入れた。



Name: kai  ..中級者(13,032ポイント)   Date: 2010/01/17(日) 18:52   No:46441       
Title: DrawFormatStringToHandleで右詰めにする方法    
現在、改造している龍神録で、
東方でいうスペルカードの文字を表示させるところを実装中なんですが、
弾幕一つ一つに、文字を描いた画像を表示するのはロードが長くなる原因なので
DrawFormatStringToHandleを使って表示しようとしたのですが、
これって左詰めですよね?
DrawFormatStringToHandle( xxx , yyy , color[0] , font[2] , "テスト『テストテストテスト』");
みたいにプログラムを組むと左詰めに表示されてしまい、
次の弾幕で、名前が違ったりすると
DrawFormatStringToHandle( xxx , yyy , color[0] , font[2] , "テスト『テストテスト』");
その文字の間分、隙間が開いてしまい、見た目が悪くなってしまって困ってます。
右詰めに表示出来たら最高にうれしいのですが、どうしたら出来ますでしょうか?
アドバイスよろしくお願いします。


344ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..ウィザード(1,138,928ポイント)   Date: 2010/01/17(日) 19:09   No:46442     
Title: Re:DrawFormatStringToHandleで右詰めにする方法    
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R17N2

こちらの関数で、描画する際の表示サイズが取得できます。
これに合わせて描画位置を変えて描画する自作関数を作ればどうでしょうか?


61ポイント を手に入れた。

Name: kai  ..中級者(13,008ポイント)   Date: 2010/01/17(日) 19:24   No:46443     
Title: Re:DrawFormatStringToHandleで右詰めにする方法    
ありがとうございます。
GetDrawStringWidth関数をどのように扱えば右詰めになるのでしょうか?
出来ましたら、右詰めにする簡単なプログラムがあればありがたいです。 編集済み


24ポイント を落としてしまった。

Name: kai  ..中級者(13,089ポイント)   Date: 2010/01/17(日) 21:35   No:46449     
Title: Re:DrawFormatStringToHandleで右詰めにする方法    
ついでなので聞きたいのですが、
画像の場合、DrawModiGraphでグラフィックの自由変形描画が出来るのですが、
文字の関数で自由変形描画出来る関数はないのでしょうか?


81ポイント を手に入れた。

Name: lbfuvab  ..上級者(24,456ポイント)   Date: 2010/01/17(日) 22:11   No:46451     
Title: Re:DrawFormatStringToHandleで右詰めにする方法    
>GetDrawStringWidth関数をどのように扱えば右詰めになるのでしょうか?

リファレンスに乗っている関数なので関数自体や引数の意味は分かっていると仮定します。
まずはトライ&エラー方式でやりましょう。
最低でも3〜5回程度改良してから質問しましょう。


>文字の関数で自由変形描画出来る関数はないのでしょうか?

MakeScreenで描画画面を作成して文字を書き、それをDrawModiGraphすれば出来なくはないです。
ただ、それなら事前に画像を作成する事をお薦めします。


178ポイント を手に入れた。

Name: kazuoni [URL]  ..ハッカー(127,843ポイント)   Date: 2010/01/17(日) 22:27   No:46454     
Title: Re:DrawFormatStringToHandleで右詰めにする方法    
> GetDrawStringWidth関数をどのように扱えば右詰めになるのでしょうか?

こんな感じですかね。


#う・・・暇だったんで、ついぱぱっと書いてしまいました。。
こういう質問って、普通はlbfuvabさんのおっしゃるように、
導出させる方向での回答のがよいのでしょうか・・・。
最近ではsoftyaさんの様な回答ですね。
とても親切に導出まで導いていらっしゃいます。
宿題の丸投げではないので、また基準が難しいですね。

質問者さんの回答からは逸れるので文字小さくしときます・・・
 編集済み


9ポイント を手に入れた。

Name: kai  ..中級者(12,833ポイント)   Date: 2010/01/17(日) 23:11   No:46462     
Title: Re:DrawFormatStringToHandleで右詰めにする方法    
>lbfuvabさん
返答ありがとうございます。
>MakeScreenで描画画面を作成して文字を書き、それをDrawModiGraphすれば出来なくはないです。
すみません。いまいちやり方が分からないのですが、もうちょっと詳しく説明していただけないでしょうか?
よろしくお願いします。

>kazuoniさん
返答ありがとうございます。
作成したいただいたサンプルを参考に実装してみたいと思います。ありがとうございます。
私自信、よく会社では、分からないことがあれば(教える時間短縮のために)サンプルをやるから、
後は自分で理解しろということが結構あるので、その方が理解しやすいので助かります。 編集済み


256ポイント を落としてしまった。

Name: pooka [URL]  ..上級者(21,306ポイント)   Date: 2010/01/18(月) 03:08   No:46472     
Title: Re:DrawFormatStringToHandleで右詰めにする方法    
>>MakeScreenで描画画面を作成して文字を書き、それをDrawModiGraphすれば出来なくはないです。 
>すみません。いまいちやり方が分からないのですが、もうちょっと詳しく説明していただけないでしょうか?

こんなかんじでしょうか。

#include "DxLib.h"
#include <string.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    char *str = "サンプルです";
    int len;
    int width;
    int screen;

    ChangeWindowMode(TRUE);

    if (DxLib_Init() == -1)
         return -1;

    len = (int)strlen(str);
    width = GetDrawStringWidth(str, len);
    screen = MakeScreen(width, 20);

    SetDrawScreen(screen);

    DrawString(0, 0, str, GetColor(255, 255, 255));

    SetDrawScreen(DX_SCREEN_BACK);

    DrawModiGraph(100, 100, 300, 200, 300, 250, 100, 150, screen, TRUE);
    
    ScreenFlip();
    
    WaitKey();

    DeleteGraph(screen);

    DxLib_End();

    return 0;    
}

 編集済み


376ポイント を手に入れた。

Name: kai  ..中級者(12,855ポイント)   Date: 2010/01/19(火) 20:48   No:46616 解決!     
Title: Re:DrawFormatStringToHandleで右詰めにする方法    
ありがとうございます!助かりました!

22ポイント を手に入れた。



Name: a  ..かけだし(1,177ポイント)   Date: 2010/01/19(火) 18:39   No:46603       
Title: ぬるぽ回避    
単発な質問なんですが、
龍神録でfunc.h内に書かれてある、

//終り
boss_shot_bulletH000,//回避用(この弾幕は出てこない)

これはいったいどういう役割をしているのでしょうか?
この弾幕は出てこないなら、書かなくてもいいと思うのですが、
そこのところはどうなんでしょうか?誰かわかる方がいましたら教えてください。


93ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..ウィザード(1,140,749ポイント)   Date: 2010/01/19(火) 19:44   No:46612     
Title: Re:ぬるぽ回避    
>> aさん

for文の上限を間違って<=と書いてしまっても、
一度関数を呼んでから終了するようにプログラムを変えても問題が無いようにしているのだけなので、
同じプログラムを書くなら特に必要ないはずです。

後、お名前はなるべくオリジナルなものにして下さい。


82ポイント を手に入れた。

Name: a  ..かけだし(1,226ポイント)   Date: 2010/01/19(火) 20:24   No:46615 解決!     
Title: Re:ぬるぽ回避    
Dixq (管理人)さんありがとうございます。
やっぱり必要なかったのですね。
困ってたので助かりました。


49ポイント を手に入れた。



Name: 炒飯  ..ぴよぴよ(121ポイント)   Date: 2010/01/18(月) 11:29   No:46477       
Title: エンカウント    
C言語でRPGゲームを作っているのですが、
Wikipediaにあるような『エンカウント率 (%) = 100 / 戦闘後、次の敵に遭遇するまでの平均歩数』
でコーディングしてしまうと思ったような結果が得られません。

平均5歩歩いた時にエンカウントするようにしたいのですが、
上の式を使用すると、ほぼ3歩目までにはエンカウントしてしまいます。
どなたか心地よく平均5歩でエンカウントする具体的なC言語でのコーディング例をご教授いただけませんでしょうか?

よろしくお願いします。


121ポイント を手に入れた。


Name: Dixq (管理人)  ..ウィザード(1,139,019ポイント)   Date: 2010/01/18(月) 12:06   No:46478     
Title: Re:エンカウント    
難しく考えないでも、
例えば3〜7の乱数作って、歩数と一致いたらエンカウントでよくないですか?単純に考えて5歩平均になりそうです。
平均の幅を広げたいなら1〜9作るとか。


91ポイント を手に入れた。

Name: 炒飯  ..ぴよぴよ(61ポイント)   Date: 2010/01/18(月) 12:15   No:46480     
Title: Re:エンカウント    
回答ありがとうございます。

成程、難しく考えなくてもよさそうですね。。
もしよろしければ、具体的な実装例を示していただくわけにはいきませんか?


60ポイント を落としてしまった。

Name: softya  ..比類無きプログラマー(93,865ポイント)   Date: 2010/01/18(月) 12:18   No:46481     
Title: Re:エンカウント    
>エンカウント率 (%) = 100 / 戦闘後、次の敵に遭遇するまでの平均歩数
この式は、あくまでエンカウント率ですのでエンカウント処理に使う事自体間違ってます。
もしエンカウント率20%で計算していたら、ほぼ100%5歩でエンカウントします。
だって、1歩20%の確率なら5歩で100%じゃないですか。
※実際には違いますが、体感上はほぼ100%のはずです。

そうですね。一番楽な方法は、次のエンカウントまでの歩数を先に計算してしまうことです。
バトル終了時にエンカウントするまでの歩数を決めてしまいましょう。
エンカウントする歩数 = 3 + 乱数(0〜4)
とすれば平均5歩でエンカウントするはずです。
※ちなみに3は、短い歩数でエンカウントしないための底上げ歩数です。

他にもエンカウント計算は色々工夫しがいのあるポイントです。
プログラムのアルゴリズムの勉強にもなるので色々考えてみて下さい。

私のアイデアを書いておきます。
・一歩ごとにエンカウント率が上がっていくエンカウントシステム。
・見えない敵のいるポイントを乱数で決めておいて接触したらエンカウント。
・直進するとエンカウント率が下がり、曲がった直後だけエンカウント率が上がるシステム。

ただ、5歩はエンカウント率が高すぎる気がすますね。
実際に作って調整してみてくださいとしか言えませんが。


2倍のポイントを手に入れた! 422ポイント を手に入れた。

Name: sizuma  ..プログラマー(28,837ポイント)   Date: 2010/01/18(月) 12:39   No:46483     
Title: Re:エンカウント    
エンカウント率20%で敵に遭遇しようとする期待値を計算すると

0.2 * 1 + (1-0.2)*0.2 * 2 + (1-0.2-(1-0.2))*0.2 * 3 + ・・・・

かな?
極限まで計算すると3になるのではないでしょうかね。
softyaさんのおっしゃる通りに、5までにエンカウントする確率が

0.2 + 0.16 + 0.128 + 0.1024 + 0.08192 + .....

6.7くらいですね。
3回に2回は5までにエンカウント、しかもカウントが少ないほうがエンカウントする確率が高い、ってことかな。 編集済み


89ポイント を手に入れた。

Name: 炒飯  ..ぴよぴよ(166ポイント)   Date: 2010/01/18(月) 17:36   No:46494     
Title: Re:エンカウント    
回答ありがとうございます。

softyaさんやsizumaさんの理論を具体的にクールにコーディングするには
どうすればよいでしょうか?

具体例ばかり聞いて恐縮なのですが、
c言語を始めて間もないため少しでも優秀な人の組み方を参考にして
よりクールな組み方が出来るようになりたいのです。

ご教授お願いします。


105ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(94,292ポイント)   Date: 2010/01/18(月) 17:59   No:46496     
Title: Re:エンカウント    
いや、それほど難しくないですよ。
まず、
エンカウントする歩数 = 3 + 乱数(0〜4) 
でエンカウントする歩数を求めます。
あとは、一歩歩くごとにエンカウントする歩数から1を引いていって0になればエンカウント成立でバトル開始です。
残念ですが炒飯さんのプログラムがどうなっているか分からない以上は、これ以上のコードは書けません。

それと初心者が一番挑戦してはいけないゲーム開発はRPGと戦略シミュレーションだと思います。
なにせ作るプログラムが多い&前提とする知識が多い&ツールを作らないと手作業ではやることが多すぎるのでツール作れる技量が必要。と言う2D系ゲームで難易度最上級のプログラミング開発力が必要です。
私は経験からアクションゲーム、シューティングゲーム、アドベンチャーゲームを全て自力で作れない人にはRPGは難しすぎると思いますよ。作りたいのは止めはしませんが、地道に力を付けないと挫折します。

挫折している例(技量不足で挫折したのでは無いと思いますが。やることが多くて挫折した例かな?)。
http://inu.harisen.jp/top.html


427ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(29,267ポイント)   Date: 2010/01/18(月) 18:23   No:46503     
Title: Re:エンカウント    
では一番簡単そうなDixqさんの考え方で書いてみます。
僕もどちらかというと初心者なので、softyaさんの回答があればきっとソッチの方がスマートです。


キャラの構造体の中に歩数をカウントする変数を追加する。
char.pedometer = 0;
マジックナンバーになりそうなエンカウント率をdefine(マクロ使いたくないけど、とりあえず)
#define ENCOUNT 5
といっても、これが歩数になるわけではないので、あくまで目安
ついでにエンカウントしない歩数は決めておく(これは確定)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define ENCOUNT 5
#define DES_ENCOUNT 2

int main(){
    int petometor =0;
    int count =0;
    int ave = 0;//平均計算用
    srand((unsigned)time(NULL));
    for(count=1;count<100;count++){
        if(petometor>=ENCOUNT + DES_ENCOUNT ||
            rand()%ENCOUNT == (petometor-DES_ENCOUNT)){
            puts("encount!!");
            petometor = 0;
            ave++; //平均計算用
            continue;
        }
        puts("..walking...");
        petometor++ ;
    }
    printf("エンカウント率は%d\%\n",ave);
    printf("大体%d歩に一回エンカウントします",100/ave);
}


というわけでテスト用です。
大体これだと5、6歩に一回エンカウントするくらいですね。

#追記
コード書いてる間にsoftyaさんの投稿がありましたが、確かにエンカウントする歩数を先に決めた方が断然わかりやすいと僕は思うので、そっちで書いた方がよさそうですね。
 編集済み


430ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(154,987ポイント)   Date: 2010/01/18(月) 20:21   No:46522     
Title: Re:エンカウント    
> softyaさん
> もしエンカウント率20%で計算していたら、ほぼ100%5歩でエンカウントします。 
> だって、1歩20%の確率なら5歩で100%じゃないですか。 
> ※実際には違いますが、体感上はほぼ100%のはずです。 

そんなことはないでしょう。
平均して5歩に1回の頻度になるということは、具体的には、500万歩につき100万回になればよいわけで、これは20%の確率になります。
5歩歩いたときに遭遇する確率は、1- (1 - 0.2)^5 = 0.67232であり、約3分の2になります。


102ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(94,718ポイント)   Date: 2010/01/18(月) 20:27   No:46524     
Title: Re:エンカウント    
>そんなことはないでしょう。
>平均して5歩に1回の頻度になるということは、具体的には、500万歩につき100万回になればよいわけで、これは20%の確率になります。
>5歩歩いたときに遭遇する確率は、1- (1 - 0.2)^5 = 0.67232であり、約3分の2になります。

その件はすでに指摘されてます。
確かに、確率の話は大雑把に言いすぎました。
ただ、70%ぐらいの確率になると、ほぼ体感上100%ぐらいに感じると思うんですが、どうでしょうか?
あくまで、ほぼですけどね。


172ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(29,514ポイント)   Date: 2010/01/18(月) 20:48   No:46527     
Title: Re:エンカウント    
極限の計算しなきゃはっきりとした値は出せないですけど、最初に3歩でエンカウントするって質問でありましたね。
僕もrand()%5を100ループさせてみましたけど、だいたい3くらいでした。
期待値が約3なので、大体体感は3歩目でエンカウントする、ってなると僕は思います。
体感上のほぼ100%っていうのが分かりにくい気がしますね。

5歩目で100%になるなら、その真ん中ぐらい(1〜5の間)の3歩目が体感するエンカウントの歩数だと思います。


136ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(155,006ポイント)   Date: 2010/01/18(月) 20:58   No:46529     
Title: Re:エンカウント    
> その件はすでに指摘されてます。 

すみません。行ったり来たりしている間に見落としていました。
 編集済み


19ポイント を手に入れた。

Name: 炒飯  ..ぴよぴよ(236ポイント)   Date: 2010/01/19(火) 11:34   No:46579     
Title: Re:エンカウント    
皆さん、意義のある議論をしてくださってありがとうございます。
とてもためになります。

sizumaさんに教授頂いたコードをどのように改変すれば、
皆さんの議論の結果をより反映することができますでしょうか?
スマートな組み方を拝見したいので、是非ともどなたかご教授願います。


70ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(95,291ポイント)   Date: 2010/01/19(火) 12:01   No:46581     
Title: Re:エンカウント    
うーん。
それを聞いてくるC言語の知識レベルだと、多分書いても自分のプログラムに反映出来ないんじゃないかと思うんですけどね。
今話しに出ているエンカウントの方法だとスマートとか、そんな問題じゃないんですよ。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define ENCOUNT 5
#define DES_ENCOUNT 3

int main(){
    int petometor =0;
    int count =0;
    int ave = 0;//平均計算用
    srand((unsigned)time(NULL));
    //  エンカウントする歩数 = 3 + 乱数(0〜4) 
    petometor = DES_ENCOUNT + rand()%ENCOUNT;
    for(count=1;count<100;count++){
        if(petometor==0) {
            puts("encount!!");
            //  エンカウントする歩数 = 3 + 乱数(0〜4) 
            petometor = DES_ENCOUNT + rand()%ENCOUNT;
            ave++; //平均計算用
            continue;
        }
        puts("..walking...");
        petometor--;
    }
    printf("エンカウント率は%d\%%\n",ave);
    printf("大体%f歩に一回エンカウントします",100.0f/(float)ave);
}


395ポイント を手に入れた。

Name: lbfuvab  ..上級者(24,618ポイント)   Date: 2010/01/19(火) 16:16   No:46592     
Title: Re:エンカウント    
エンカウント率をaとして

平均歩数 = 1Σn ( a * k * ((1-a)^(k-1)) )

でnを無限に向かう時のaを求めれば良いと思いますよ(ただの期待値です)
計算は高校数学程度と思いますので。


34ポイント を手に入れた。

Name: やそ  ..比類無きプログラマー(99,774ポイント)   Date: 2010/01/19(火) 19:25   No:46608     
Title: Re:エンカウント    
クールとかスマートとかあいまいな表現が多く、結局丸投げぽい投稿ですね^^;

rand()%5
で0だったらエンカウント
でいいじゃないですか。
1歩目からエンカウントしたっていいじゃないですか。

製作中のRPGはクリアまでにエンカウントフィールドを何歩くらい歩く想定なのでしょうか?

1万歩?
100万歩?

種をいろいろ変えて100万回ずつ検証してみてはいかがでしょう。
きっとそれなりになると思いますよ。

そもそも20%で遭遇する確率が適正なのかというところも考えたほうがいいのかも。

今のトピ主さんの発言から推測するレベルではsoftyaさんも指摘しているとおり、ここで得た回答を反映させようとしても余計なトラブル(バグ)を招きかねません。


しんぷるいずべすと

です。
自分の理解できるレベルで望みましょう。

>Wikipediaにあるような『エンカウント率 (%) = 100 / 戦闘後、次の敵に遭遇するまでの平均歩数』 
でコーディングしてしまうと思ったような結果が得られません。 

>平均5歩歩いた時にエンカウントするようにしたいのですが、 
上の式を使用すると、ほぼ3歩目までにはエンカウントしてしまいます。 

で作成したソースをさらしてみてはいかがでしょう?
あなたのレベルにあった回答が得られやすくなるでしょう。


524ポイント を手に入れた。



Name: d  ..ぴよぴよ(211ポイント)   Date: 2010/01/19(火) 09:46   No:46568       
Title: 最短経路    
出発点とゴール地点を打ち込むと、自動的に最短経路を決定してそれを表示するプログラム
を教えてください。右の数字は交差点の数と隣接する町の番号です。
map.dat

1, 0.0, 0.0, Hirosakieki, 2, 2, 4 
2, -0.6, 0.15, Daikanntyou, 3, 1, 3, 11 
3, -0.83, 0.0, Kamidaikanntyou, 4, 2, 4, 9, 10 
4, -0.6, -0.38, Omati, 3, 1, 3, 5 
5, -0.38, -0.68, Matumori, 3, 4, 6, 7 
6, 6.0, -0.3, Takada, 1, 5 
7, -0.18, -1.02, Torikami, 2, 5, 8 
8, -0.84, -1.58, Nakano, 3, 7, 9, 18 
9, -0.9, -0.98, Hirosakidaigaku, 2, 3, 8 
10, -0.98, 0.15, Runesugai, 3, 3, 11, 13 
11, -0.78, 0.3, Hirosakiyuubinnkyoku, 3, 2, 10, 12 
12, -1.28, 0.68, Motoderamati, 2, 11, 13 
13, -1.32, 0.53, Ichibantyou, 4, 10, 12, 14, 15 
14, -1.8, 0.98, Hirosakijou, 2, 13, 20 
15, -1.43, -0.15, Douyamati, 2, 13, 16 
16, -1.73, -0.26, sinntera, 3, 15, 17, 20 
17, -1.8, -1.43, Asahigaoka, 3, 16, 18, 19 
18, -1.2, -1.73, Nisihirosaki, 2, 8, 17 
19, -2.48, -1.2, Shimizu, 2, 17, 20 
20, -2.33, -0.51, Jumoku, 3, 14, 16, 19 



211ポイント を手に入れた。


Name:  ..ぴよぴよ(393ポイント)   Date: 2010/01/19(火) 09:48   No:46569     
Title: Re:最短経路    
出発点とゴール地点を打ち込むと、自動的に最短経路を決定してそれを表示するプログラム 
を教えてください。右の数字は交差点の数と隣接する町の番号です。 1行1行プログラムの説明もお願いします。
map.dat 

1, 0.0, 0.0, Hirosakieki, 2, 2, 4  
2, -0.6, 0.15, Daikanntyou, 3, 1, 3, 11  
3, -0.83, 0.0, Kamidaikanntyou, 4, 2, 4, 9, 10  
4, -0.6, -0.38, Omati, 3, 1, 3, 5  
5, -0.38, -0.68, Matumori, 3, 4, 6, 7  
6, 6.0, -0.3, Takada, 1, 5  
7, -0.18, -1.02, Torikami, 2, 5, 8  
8, -0.84, -1.58, Nakano, 3, 7, 9, 18  
9, -0.9, -0.98, Hirosakidaigaku, 2, 3, 8  
10, -0.98, 0.15, Runesugai, 3, 3, 11, 13  
11, -0.78, 0.3, Hirosakiyuubinnkyoku, 3, 2, 10, 12  
12, -1.28, 0.68, Motoderamati, 2, 11, 13  
13, -1.32, 0.53, Ichibantyou, 4, 10, 12, 14, 15  
14, -1.8, 0.98, Hirosakijou, 2, 13, 20  
15, -1.43, -0.15, Douyamati, 2, 13, 16  
16, -1.73, -0.26, sinntera, 3, 15, 17, 20  
17, -1.8, -1.43, Asahigaoka, 3, 16, 18, 19  
18, -1.2, -1.73, Nisihirosaki, 2, 8, 17  
19, -2.48, -1.2, Shimizu, 2, 17, 20  
20, -2.33, -0.51, Jumoku, 3, 14, 16, 19  


393ポイント を手に入れた。

Name: ??  ..ぴよぴよ(13ポイント)   Date: 2010/01/19(火) 09:54   No:46570     
Title: Re:最短経路    
ちょっと難しくて私にはわかりかねます。すいません。

18ポイント を落としてしまった。

Name: たいちう  ..熟練のプログラマー(49,199ポイント)   Date: 2010/01/19(火) 09:59   No:46571     
Title: Re:最短経路    
あなたの替わりに宿題をやるつもりはないけど、
あなたが宿題をするのを助けるつもりならありますよ。
久しぶりにTSPでも解いてみようかと。

やる気があるなら、まず、map.datを読み込むプログラムを
作ってください。とりあえずできるところまで。


82ポイント を手に入れた。

Name: non  ..比類無きプログラマー(88,299ポイント)   Date: 2010/01/19(火) 10:25   No:46573     
Title: Re:最短経路    
>1, 0.0, 0.0, Hirosakieki, 2, 2, 4  
データの持つ意味を、正確に表してください。


52ポイント を手に入れた。

Name: Ma  ..プログラマー(30,918ポイント)   Date: 2010/01/19(火) 11:00   No:46576     
Title: Re:最短経路    
>>1, 0.0, 0.0, Hirosakieki, 2, 2, 4   
>データの持つ意味を、正確に表してください。 

憶測ですが

町ID, x 座標, y 座標, 町名, 隣接する町の数(移動できる分岐), 分岐できる町IDその1, 分岐できる町IDその2,・・・
というフォーマットかと思われます。


カーナビの劣化プログラム?みたいなのかな?

このような問題は解いたことがないので、まったくの素人の考えですが私なりの考え方を書いてみます。
と、おもったのですが、これって1点(出発地点か到着地点)から隣町へ移動したときおもう1点までの直線距離の変化を比べるだけじゃだめそうですね・・・。
(理由:その直線距離にして近いと思われた町からの分岐が結局遠くなることも、ありそうだから。)

実際どのようなマップになっているのか描画してみて、↑の方法でいけるかどうか判断できるかも。
もしくは、移動回数(町から町まで)を複数回ぐらい調査するとか。

といっても、ぱっと思いついた方法なので最良の方法ではないでしょうが・・・。

(町が増えたとき)重くてもいいなら、ルートを全部割り出して比べあうとか。
ただし、途中で同じ町にたどりついときにはぶつかったもう一方のルートとの距離を比べて短い方のみ残すとか。


ともかく、この手の問題は(私のように)解いたことがないなら実際に書いてみて試行錯誤するべきだと思います。
(あと実行結果をチェックする際はプログラムか手書きで視覚的に見たほうがいいでしょう。) 編集済み


238ポイント を手に入れた。

Name: non  ..比類無きプログラマー(88,519ポイント)   Date: 2010/01/19(火) 11:48   No:46580     
Title: Re:最短経路    
>町ID, x 座標, y 座標, 町名, 隣接する町の数(移動できる分岐), 分岐できる町IDその1, 分岐できる町IDその2,・・・ 
>というフォーマットかと思われます。

なるほど。わかりました。

再帰呼び出しの、課題ですね。


70ポイント を手に入れた。

Name: mats  ..かけだし(2,207ポイント)   Date: 2010/01/19(火) 13:32   No:46587     
Title: Re:最短経路    
投稿者さんからの情報が少ないため何とも言えませんが、

・たいちうさんの仰るようなTSPの課題
(正確にはスタートとゴールが異なるようなので最短ハミルトン経路問題)

・nonさんの仰るような再起呼び出しの課題
(深さ優先探索等でしょうか)

・Maさんの仰るようないわゆる経路探索の課題
(ダイクストラ法(ダイキストラ法)、幅優先探索、A*探索等)

等が考えられますね

……大学の課題だとするならTSPの可能性は低いとは思いますが 編集済み


172ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(49,272ポイント)   Date: 2010/01/19(火) 14:06   No:46588     
Title: Re:最短経路    
> ……大学の課題だとするならTSPの可能性は低いとは思いますが

kwsk


それはともかく、TSPではなかったですね。
フォーマットについてはMaさんと同じ憶測をしていましたが、
接続が決まっているとすると、TSPで解くような自由度の高い問題ではなかったです。
失礼しました。


73ポイント を手に入れた。

Name: mats  ..かけだし(2,240ポイント)   Date: 2010/01/19(火) 14:32   No:46589     
Title: Re:最短経路    
>>たいちうさん

TSPだとすると、投稿者さんのサンプルにあるような頂点数20というのは多すぎます

スパコンでも使えば別ですが、市販されているコンピューターですと、
工夫したアルゴリズムを用いても頂点数22〜23程度が限界だったと記憶しています
(『現実的な時間で解ける』という意味での限界)

学生によっては解くのに数日〜数週間を要するプログラムを作成する危険性があるので、
検証にそれだけ時間を要する課題は出題しにくいはずです


33ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(49,342ポイント)   Date: 2010/01/19(火) 15:40   No:46590     
Title: Re:最短経路    
> スパコンでも使えば別ですが、市販されているコンピューターですと、
> 工夫したアルゴリズムを用いても頂点数22〜23程度が限界だったと記憶しています
> (『現実的な時間で解ける』という意味での限界)

なるほど論点が判りました。しかし、遺伝的アルゴリズムの課題等という可能性は?

いずれにしろTSPではないだろうということは納得しています。
ありがとうございました。


70ポイント を手に入れた。

Name: lbfuvab  ..上級者(24,584ポイント)   Date: 2010/01/19(火) 15:53   No:46591     
Title: Re:最短経路    
にしても最近は質問しっ放しの人が増えましたねぇ。
自己解決したにせよ連絡するのが筋でしょうに。

しかも名前を変えてますし。


42ポイント を手に入れた。

Name: mats  ..かけだし(2,482ポイント)   Date: 2010/01/19(火) 18:58   No:46607     
Title: Re:最短経路    
> なるほど論点が判りました。しかし、遺伝的アルゴリズムの課題等という可能性は?

確かに…その可能性もありますね.
このくらいの問題ならば,他にもたくさん解法があるかもしれません.

ただ,課題だとするなら,ランダム性が絡む遺伝的アルゴリズムも評価がしにくいのでは…….



と,ここまで書いた所で

サンプルから弘前大学の課題かとアタリをつけて検索してみたら引っ掛かりました.
どうやら,C言語でダイクストラ法を実装する課題のようですね.

質問者さんが戻ってこられるかわかりませんが……

ダイクストラ法ならば,様々なサイトにソースが掲載されています.
それを見てもわからないようなら,その時に改めて『ちゃんとした態度で』質問して頂けたら,
解答が得られるのではないかと思います.


242ポイント を手に入れた。

Name:   Date: 2010/01/26(火) 08:59   No:465681264463949     
Title: Re:最短経路    
遅くなって申し訳ありません。
いろいろ調べてみたのですがなんかよくわかりません。
ダイクストラ?だかってのを使うらしいのですが・・・。
わかりません。




Name: ☆初心者☆  ..ぴよぴよ(13ポイント)   Date: 2010/01/19(火) 02:38   No:46559       
Title: 初心者なもので…    
http://dixq.net/rakisuta.html
↑この記事の一番下の
※ コメント ※
AAデータであるAAdat.datはこちらのプログラムのプロジェクトに移す必要はありません。

変更すべき箇所は定義のMAXだけです。何フレーム描画するのか、

convAAのMAXの値を確認して設定して下さい。

このMAXの値がどこに書いてあるのかわかりません。。。
どなたか教えてくださいm(>_<)m 編集済み


13ポイント を手に入れた。


Name: mnkr  ..入門者(3,215ポイント)   Date: 2010/01/19(火) 07:25   No:46562     
Title: Re:初心者なもので…    
リンク先をMAXで検索したら見つかったので
検索すると良いと思います。


25ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,140,038ポイント)   Date: 2010/01/19(火) 07:39   No:46564     
Title: Re:初心者なもので…    
そのコメントが書いてあるプログラムの先頭にありますよ。
mnkrさんが仰っている通り、検索すれば解ると思います。

#include "DxLib.h"

/* convAAで設定したMAXと同じ数値をいれる。 */
#define MAX 500

のMAXですね。


80ポイント を落としてしまった。

Name: ☆初心者☆  ..ぴよぴよ(786ポイント)   Date: 2010/01/19(火) 17:56   No:46599     
Title: Re:初心者なもので…    
質問の仕方が良くなかったみたいなので…
---修正---
http://dixq.net/rakisuta.htmlの一番下のプログラムコードを使って
一つ目は出来たのですが、二つ目が失敗になります。
何故なのでしょうか?

〜エラーメッセージ〜
------ ビルド開始: プロジェクト: dispAA, 構成: Debug Win32 ------
コンパイルしています...
dispAA.cpp
c:\aa\dispaa\dispaa.cpp(128) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。
リンクしています...
dispAA.obj : error LNK2019: 未解決の外部シンボル "void __cdecl draw_setumei(int,int,int,int)" (?draw_setumei@@YAXHHHH@Z) が関数 _WinMain@16 で参照されました。
dispAA.obj : error LNK2019: 未解決の外部シンボル "void __cdecl draw_fps(int,int,int,int)" (?draw_fps@@YAXHHHH@Z) が関数 _WinMain@16 で参照されました。
dispAA.obj : error LNK2019: 未解決の外部シンボル "void __cdecl fps_wait(void)" (?fps_wait@@YAXXZ) が関数 _WinMain@16 で参照されました。
dispAA.obj : error LNK2019: 未解決の外部シンボル "void __cdecl check_key(char * const)" (?check_key@@YAXQAD@Z) が関数 _WinMain@16 で参照されました。
C:\AA\dispAA\Debug\dispAA.exe : fatal error LNK1120: 外部参照 4 が未解決です。
ビルドログは "file://c:\AA\dispAA\Debug\BuildLog.htm" に保存されました。
dispAA - エラー 5、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========


773ポイント を手に入れた。



Name: ざくざく  ..ぴよぴよ(168ポイント)   Date: 2010/01/18(月) 18:34   No:46505       
Title: 初心者です。なにもわかりません    
ひとつ

#include "DxLib.h"
 #include "DxLib.h"
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
        if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了 
 
        LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ;
        LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ;


 
        WaitKey() ;             // キーの入力待ち(『WaitKey』を使用) 
        DxLib_End() ;           // DXライブラリ使用の終了処理
        return 0 ;              // ソフトの終了
}

こんなのをやったのですが、この後構造体とか敵を出すなどそういうのはどこに入力すればいいのですか?


168ポイント を手に入れた。


Name: softya  ..比類無きプログラマー(94,330ポイント)   Date: 2010/01/18(月) 18:43   No:46506     
Title: Re:初心者です。なにもわかりません    
ゲームプログラミングの館のコードですね。
ゲームプログラミングの館の最初の方に構造体なんか出てきましたっけ?

幾つか質問があります。
1.ゲームプログラミングの館の何章まで進んでいて、どこでつまづいたか教えてください。
2.1章から全ての内容は理解されていますか?
3.C言語の勉強はどの位されましたか? 時間や参考にしたサイトや本と進んだページなどを教えてください。
あるいは、C言語で理解している文法でもかまいません。


38ポイント を手に入れた。

Name: ざくざく  ..ぴよぴよ(201ポイント)   Date: 2010/01/18(月) 18:53   No:46508     
Title: Re:初心者です。なにもわかりません    
18番までで、
構造体については18番で出てきました

25、26は気になったので少し見ました


33ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,139,204ポイント)   Date: 2010/01/18(月) 18:56   No:46510     
Title: Re:初心者です。なにもわかりません    
構造体はキャラ情報を扱う時に少し扱ったと思います。
しかし、ゲームの館に出てきた構造体で悩んでいる風ではないですね・・。

ゲームの館のコードに構造体を入れたいなら、
18章位から見ていけば何か参考になるかもしれません。


65ポイント を手に入れた。

Name: ざくざく  ..ぴよぴよ(230ポイント)   Date: 2010/01/18(月) 18:58   No:46511     
Title: Re:初心者です。なにもわかりません    
そのどこをコピーして、どこに入れるかがわかりません><

29ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(94,414ポイント)   Date: 2010/01/18(月) 19:08   No:46515     
Title: Re:初心者です。なにもわかりません    
>18番までで、構造体については18番で出てきました 

18章なら、サイトを見る限り構造体もソースコードとして書かれていますが?
http://dixq.net/g/20.html
今のコードと見比べて分かりませんか?


84ポイント を手に入れた。

Name: ざくざく  ..ぴよぴよ(281ポイント)   Date: 2010/01/18(月) 19:57   No:46516     
Title: Re:初心者です。なにもわかりません    
あぁ、
あのぉ、
そこに書いてあるコードをどこにどれだけ張り付ければいいのかが分からないのですが


51ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(154,885ポイント)   Date: 2010/01/18(月) 20:00   No:46517     
Title: Re:初心者です。なにもわかりません    
> そこに書いてあるコードをどこにどれだけ張り付ければいいのかが分からないのですが

なるほど...

> 初心者です。なにもわかりません

話が通じるぐらいには勉強しましょう。


15ポイント を手に入れた。

Name: ざくざく  ..ぴよぴよ(287ポイント)   Date: 2010/01/18(月) 20:02   No:46518     
Title: Re:初心者です。なにもわかりません    
えっ!?
どゆこと??


6ポイント を手に入れた。

Name: SooA [URL]  ..プログラマー(25,771ポイント)   Date: 2010/01/18(月) 20:05   No:46519     
Title: Re:初心者です。なにもわかりません    
プログラミングの館の「2. ウィンドウを表示する。 」以降は、
どうやって進めてきたのですか?
やり方は同じだと思うのですが。


42ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(94,546ポイント)   Date: 2010/01/18(月) 20:05   No:46520     
Title: Re:初心者です。なにもわかりません    
>そこに書いてあるコードをどこにどれだけ張り付ければいいのかが分からないのですが

勉強のためには、一字一句同じになるように今のコードを修正して、足らないものは打ち込んだほうが良いです。
コピペとか使うのは止めましょう。
もし間違ったとしても、出てくるエラーコードを見て修正するのが勉強になります。


132ポイント を手に入れた。

Name: ざくざく  ..ぴよぴよ(335ポイント)   Date: 2010/01/18(月) 20:07   No:46521     
Title: Re:初心者です。なにもわかりません    
『ココ』って書いてある部分に全部コピってけばいいんですか?

#include "DxLib.h"

みたいなやつが全部の分に書いてあるから、こんがらがって...

順番とかはごっちゃでいいんですか?


48ポイント を手に入れた。

Name: SooA [URL]  ..プログラマー(25,836ポイント)   Date: 2010/01/18(月) 20:25   No:46523     
Title: Re:初心者です。なにもわかりません    
操作方法だけ覚えてもプログラムは組めませんので、
最低限「Hello world」が出力&理解出来る程度には
知識を高め、再チャレンジした方が良さそうです。

http://www7.plala.or.jp/keny01/c/index.html


65ポイント を手に入れた。

Name: ざくざく  ..ぴよぴよ(344ポイント)   Date: 2010/01/18(月) 20:32   No:46526     
Title: Re:初心者です。なにもわかりません    
うわぁーん泣

9ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(94,740ポイント)   Date: 2010/01/18(月) 21:13   No:46530     
Title: Re:初心者です。なにもわかりません    
少なくとも1〜2ヶ月はC言語の学習をしないとゲームプログラミングの館は無理ですね。

22ポイント を手に入れた。

Name: SooA [URL]  ..プログラマー(25,661ポイント)   Date: 2010/01/18(月) 21:13   No:46531     
Title: Re:初心者です。なにもわかりません    
「諦めろ」とか言っているワケではありませんからね?
根本的な部分の知識を深めてから「ゲームプログラミングの館」に
挑戦しましょうって事ですよ。

リンクを張りましたが読んで頂けたでしょうか?
基本を学ぶ中で解らないことが出たらここで質問してみましょう、
そうやって学んでいけば、すぐに「ゲームプログラミングの館」の
内容も理解できるようになりますよ。 編集済み


175ポイント を落としてしまった。

Name: softya  ..比類無きプログラマー(94,859ポイント)   Date: 2010/01/18(月) 21:29   No:46532     
Title: Re:初心者です。なにもわかりません    
>「諦めろ」とか言っているワケではありませんからね? 
そうです。諦める必要はありませんよ。
ただ、算数(=C言語)も良く分からない小学生低学年で因数分解(=DXライブラリ)に挑むようなものなので、6年生までの算数(=C言語)をちゃんと勉強しないといけませんよって話です。
面倒でしょうが、ゲーム作るために頑張ってくださいね。 編集済み


119ポイント を手に入れた。

Name: Ma  ..プログラマー(30,680ポイント)   Date: 2010/01/18(月) 21:29   No:46533     
Title: Re:初心者です。なにもわかりません    
なんか、愛嬌がある質問者でしたねww
応援してますよ、がんばってくださいね。
(蛇足失礼しました。)


51ポイント を手に入れた。

Name: 通りすがり  ..上級者(18,633ポイント)   Date: 2010/01/18(月) 22:02   No:46538     
Title: Re:初心者です。なにもわかりません    
文章から推測して恐らく小学生でしょう。
最近は低年齢化が進んでいるようですからね。
とりあえず、どこに何を書いたらいいか分からないと言っていることから、
コンパイラも持っていないのではないかと思われます。
まずはコンパイラの導入から始めていきましょう。


104ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(48,883ポイント)   Date: 2010/01/18(月) 22:04   No:46539     
Title: Re:初心者です。なにもわかりません    
知識いらないから速攻作りたいってことは
「デザエモン」で調べてみてください


19ポイント を手に入れた。

Name: ざくざく  ..ぴよぴよ(362ポイント)   Date: 2010/01/19(火) 07:20   No:46561     
Title: Re:初心者です。なにもわかりません    
あ、
小学生じゃできませんか?


18ポイント を手に入れた。

Name: Ma  ..プログラマー(31,040ポイント)   Date: 2010/01/19(火) 11:20   No:46577     
Title: Re:初心者です。なにもわかりません    
>あ、 
>小学生じゃできませんか?

不可能じゃありません、だけど無理はするかも。
だけど、ここのシューティングを作るというなら中学生とかが習う数学は簡単に解けるぐらいの数学力と
C言語(プログラミング言語)を(入門サイト等で)勉強しないとできないよ。

正直、普通の子ならかなり大変だと思う。
(高校1年生が、大学、大学院の問題を解けとか言われるようなことでしょうから・・・)


122ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(95,407ポイント)   Date: 2010/01/19(火) 12:13   No:46582     
Title: Re:初心者です。なにもわかりません    
>あ、
>小学生じゃできませんか?

小学生だから無理なのではなくて、人の話を聞かないから出来ないんですよ。
まず、C言語を勉強して下さいッてみんなが言っているのに無視する態度ではムリでよって事です。
ただ、前にも話題に出てましたが、算数(数学)力が少なくても中学2年レベルぐらいじゃないと難しいです。


116ポイント を手に入れた。

Name: Ma  ..プログラマー(31,169ポイント)   Date: 2010/01/19(火) 12:30   No:46584     
Title: Re:初心者です。なにもわかりません    
たしかに目に余る無視の連発でしたね。

 ・まず周りの話を聞きましょう。
 ・何を言っているのか分からないなら1単語づつ調べましょう。
 ・さらに調べても分からないならその意味を人か掲示板(ここなど)で聞いてみましょう。
 ・それでも駄目(分からないか調べたくなくなった)なら、今は早すぎると思ったほうがいいです。
  今するべきこと、またはできることのアドバイスをもらうといいよ

あ、ちなみに今私が今できることをアドバイスするなら、「C言語 入門」 って調べてヒットしたサイトの中から理解(分かる)ものを選んで、それを勉強してみることです。 編集済み


129ポイント を手に入れた。

Name: Dixq (管理人)  ..ウィザード(1,140,667ポイント)   Date: 2010/01/19(火) 17:31   No:46596     
Title: Re:初心者です。なにもわかりません    
まぁ小学生なら仕方ないでしょう^_^;
今無理にプログラム勉強しなくていいんじゃないですかね?
プログラムが大好き!ってわけでもないみたいですし、小さい頃は皆さんおっしゃってるツクールなどでゲーム作りの楽しさを味わうってのでいいんじゃないでしょうか?
小学生だとわからない事がありすぎて、あちこちで躓いてしまうかもしれません。バグさんみたいに幼い頃電気屋さんでプログラム作って遊んでいたというツワモノもいますが^_^;

無理しなくても高校位から始めても誰にも負けないプログラマーというレベルは十分目指せると思いますよ。


185ポイント を手に入れた。

Name: ざくざく  ..ぴよぴよ(919ポイント)   Date: 2010/01/19(火) 17:47   No:46597     
Title: Re:初心者です。なにもわかりません    
はい

5ポイント を手に入れた。



Name: 初心者☆  ..ぴよぴよ(507ポイント)   Date: 2010/01/19(火) 16:23   No:46593       
Title: あたり判定    
画像に当たり判定をつけようとDrawRotaGraphで画像を表示させています。
回転をかけると判定って変わりますか。

意味
///////////////////////////////////////////////////////
//1は判定場所0は残りの画像
//////////////////////////////////////////////////////
10000
00000
00000
00000
///////////////////////////////////////////////////////
もし、これに回転をかけると判定の場所が変わりますか?(1の場所)
たとえば、画像を90℃傾けると
///////////////////////////////////////////////////////
//1は判定場所0は残りの画像
//////////////////////////////////////////////////////
00001
00000
00000
00000
///////////////////////////////////////////////////////
このようになりますか?それとも変わらないのですか?教えてください!





260ポイント を手に入れた。


Name: SooA [URL]  ..プログラマー(25,962ポイント)   Date: 2010/01/19(火) 16:44   No:46594     
Title: Re:あたり判定    
ゲームプログラミングの館にある
「当たり判定」を読んでみましょう.


34ポイント を手に入れた。

Name: 初心者☆  ..ぴよぴよ(519ポイント)   Date: 2010/01/19(火) 17:10   No:46595 解決!     
Title: Re:あたり判定    
ありがとうございます 編集済み

12ポイント を手に入れた。



Name: kms  ..中級者(13,783ポイント)   Date: 2010/01/18(月) 21:53   No:46535       
Title: 3D ジャンプ処理について    
質問させて頂きます。恐縮です。

VC++2008,DXライブラリを用いて3Dのジャンプ処理をしているのですが、
うまくいきません。
Y軸にジャンプ力を加算して、重力を追加したのですが、
コードの記述式が違うのか、はたまたもっと複雑なのか。

アドバイス頂けたら幸いです。 編集済み


82ポイント を手に入れた。


Name: MNS  ..プログラマー(29,207ポイント)   Date: 2010/01/18(月) 21:57   No:46536     
Title: Re:3D ジャンプ処理について    
何が、どう、うまくいかないのか詳しく説明してください。

14ポイント を手に入れた。

Name: kms  ..中級者(13,888ポイント)   Date: 2010/01/18(月) 22:15   No:46541     
Title: Re:3D ジャンプ処理について    
えと、Cキーを押すと、原点(0,0,0)のモデルがY軸方向にジャンプし、
再度、原点に着地するプログラムを組みたいのですが、
何度コードを打ち込んでも、そのままモデルがY軸プラス方向に移動し続けるか、
もしくは、ちらっとジャンプしたかに見えると、そのままY軸のマイナス方向へと下がっていくか、
或いは、何も動作しないか、です。


105ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(94,896ポイント)   Date: 2010/01/18(月) 22:38   No:46545     
Title: Re:3D ジャンプ処理について    
ジャンプで使っている部分だけのコードだけでも見せてもらえませか?
2Dでも3Dでも重力加速度のプログラムに差はありません。


37ポイント を手に入れた。

Name: MNS  ..プログラマー(29,846ポイント)   Date: 2010/01/18(月) 22:47   No:46546     
Title: Re:3D ジャンプ処理について    
>そのままモデルがY軸プラス方向に移動し続けるか、
>もしくは、ちらっとジャンプしたかに見えると、そのままY軸のマイナス方向へと下がっていくか、
>或いは、何も動作しないか、です。

こんな不特定な動作が行われるとは思えないのですが、
少なくとも、
if ( CheckHitKey( KEY_INPUT_C ) == 1 )
{
    // ここにジャンプ処理を記述
    PlayerPosition.y += JumpPower;
    JumpPower -= Gravity ;
}

これでは、Cキーを押している間のみ、ジャンプの処理が行われることになります。
また、これで、Cキーを押し続けた場合、yの値は
 0フレーム: 25.0 JumpPower= 20.0
 1フレーム: 45.0 JumpPower= 15.0
 2フレーム: 60.0 JumpPower= 10.0
 3フレーム: 70.0 JumpPower=  5.0
 4フレーム: 75.0 JumpPower=  0.0
 5フレーム: 75.0 JumpPower= -5.0
 6フレーム: 70.0 JumpPower=-10.0
 7フレーム: 65.0 JumpPower=-15.0
 8フレーム: 50.0 JumpPower=-20.0
 9フレーム: 30.0 JumpPower=-25.0
10フレーム:  5.0 JumpPower=-30.0
11フレーム:-25.0 JumpPower=-35.0
12フレーム:-60.0 JumpPower=-40.0
 … … … … … …
このように、わずか11フレームで元の位置より下の場所に行ってしまうので、
重力の値を減少させるか、ジャンプ力を増加させる必要があるでしょう。

ちなみに、Cキーを押してない間でもジャンプをさせるには、

float 力 = 0.0f
bool ジャンプフラグ = false;



if(Cキーが押されている場合 かつ ジャンプフラグ == false)
{
        力 = 適当な値(100とか50とか)
        ジャンプフラグ = true;
}

if(プレイヤーのy > 0)
{
        力 -= 重力
        プレイヤーのy += 力
}
else
{
        ジャンプフラグ = false;
}

こんな設計にするといいかもしれません。 編集済み


639ポイント を手に入れた。

Name: kms  ..中級者(13,943ポイント)   Date: 2010/01/19(火) 12:40   No:46585 解決!     
Title: Re:3D ジャンプ処理について    
softya様、MNS様、お返事ありがとうございました。
なんとかジャンプ処理を成功させるに至りました。
助かりました。本当に有り難う御座います。


55ポイント を手に入れた。



Name: ざくざく  ..ぴよぴよ(914ポイント)   Date: 2010/01/19(火) 07:28   No:46563       
Title: 無題    
#include "DxLib.h"
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
        if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了 
 
 
 
        WaitKey() ;             // キーの入力待ち(『WaitKey』を使用) 
        DxLib_End() ;           // DXライブラリ使用の終了処理
        return 0 ;              // ソフトの終了
}

に、
#include "DxLib.h"
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        
    int image[16];
    char Key[256];
 
    if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
 
    SetDrawScreen( DX_SCREEN_BACK ) ;                         //描画先を裏画面に設定
    LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image );//画像を分割してimage配列に保存
 
    while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
            //↑メッセージ処理        ↑画面をクリア         ↑キーボード入力状態取得       ↑ESCが押されると終了
 
                DrawGraph( 320 , 240 , image[12] , TRUE ) ;//[12]の画像を描画
 
                ScreenFlip();//裏画面を表画面に反映
    }
 
    DxLib_End();
    return 0;
}
を加えたいのですが、
どこをコピーしてどこにつければいいのですか?


552ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..ウィザード(1,140,416ポイント)   Date: 2010/01/19(火) 07:55   No:46565     
Title: Re:無題    
前のトピックでも言われていましたが、基本的なCの知識はありますか?

質問をするなら、前にもらった回答を良く読んで一つずつ解決して下さい。

求めている答えしか読まないでいると何も解決しません。

SooAさんが貼っていらっしゃったリンク先の内容は理解出来ますか?

Hello World と画面に表示することは出来ますか?

せめて「C 言語ことはじめ」の部分が理解出来ないと館を読んでもちんぷんかんぷんになってしまうと思います。

自分で読んでも全く意味が理解出来ないようでしたら、お父さんかお母さんに一緒に読んでもらってはいかがでしょうか?

もし、コンパイラをまだ持っていなければhttp://dixq.net/vcpp.htmlこちらをご覧ください。

後、タイトルはパッと見て意味の解るものを付けてください。


2倍のポイントを手に入れた! 378ポイント を手に入れた。

Name: SooA [URL]  ..プログラマー(25,928ポイント)   Date: 2010/01/19(火) 11:22   No:46578     
Title: Re:無題    
>どこをコピーしてどこにつければいいのですか?

答えを書くと、
前の文章を全て消して、後の文章を貼り付けます。



>小学生じゃできませんか?

前のスレッドからですが。
いきなりプログラミングというのは難しいかなと思います。

ゲームを作りたいのであれば、こういった物もあります。
【アクションゲームツクール】
http://tkool.jp/products/act/top.html
おためし版もあるのでダウンロードしてみてはどうでしょう。

ツールを使って何かを作っていくことで、
ファイルの管理・構造・操作方法を学んでいけるのでは
ないかと思います。


267ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(95,458ポイント)   Date: 2010/01/19(火) 12:25   No:46583     
Title: Re:無題    
ちなみに貼りつけて動いただけでは理解していることにはなりませんよ〜。
一行一行の命令の意味が分かっていないと、なにも作れませんから。

私ならHSPとかから始めた方が良いんじゃないかと思うんですけどね。
「12歳からはじめるHSP3.0わくわくゲームプログラミング教室―Windows98/2000/Me/XP対応 」
http://www.amazon.co.jp/dp/489977124X
なにか作りたって気持ちは素晴らしいことなので、ぜひがんばってください。
ただ、やり方が間違っていると何も面白いことが出来ないので、すぐ飽きちゃいますから。


51ポイント を手に入れた。



Name: maak  ..ぴよぴよ(129ポイント)   Date: 2010/01/18(月) 20:32   No:46525       
Title: 二つの引数の値を交換する関数の作り方    
戻値を持たず、二つの float 型のポインタの引数を持ち、二つ
 の引数の値を交換する関数、f_swap を定義し、動作の確認がで
 きるプログラムとして作成せよという問題なのですが



void f_swap(float* a,float* b){ 
float tmp; 
tmp = *a; 
*f1 = *b; 
*f2 = tmp; 

このような感じでよいのでしょうか、あとどのように動作の確認をすればよいのでしょうか?

(1/18 22:22 管理人によりタイトルが変更されました)


129ポイント を手に入れた。


Name: MNS  ..プログラマー(29,193ポイント)   Date: 2010/01/18(月) 20:49   No:46528     
Title: Re:無題    
変数f1, f2はどこからきたのでしょうか?

動作確認はmain関数に二つのfloat型変数を用意して適当な値を代入して、
このf_swap関数で交換した後、その結果をprintf等で出力してみればよいと思います。


32ポイント を手に入れた。

Name: non  ..比類無きプログラマー(88,449ポイント)   Date: 2010/01/19(火) 10:34   No:46574     
Title: Re:無題    
float型で交換する課題が出されたということは、int型で交換するプログラムの説明が
すでにあったと思いますので、そのプログラムを載せてみてください。
万が一、それがなかったのなら(たぶん、そうだとしたら教科書に載っているから)
swapでググってみてください。いくらでもサンプルが見つかるはずです。

なお、環境を書いた方がいいです。


150ポイント を手に入れた。



Name:  ..かけだし(1,461ポイント)   Date: 2010/01/18(月) 18:06   No:46500       
Title: 円に内接する三角形の面積の求め方    
半径2の円に内接し、弧AB:弧BC:弧CA=5:4:3の三角形の面積の解き方を
教えてください。

(1/18 22:22 管理人によりタイトルが変更されました)
(※タイトルにはふさわしいタイトルを、名前には適切な名前を入力して投稿して下さい)


29ポイント を手に入れた。


Name: たかぎ [URL]  ..ハッカー(154,870ポイント)   Date: 2010/01/18(月) 18:55   No:46509     
Title: Re:無題    
素直に解くなら...

1. 各弧の中心角を求める。
2. 半径と弦で囲まれた三つの二等辺三角形の面積を求める。
3. 2.で求めた三つの二等辺三角形の面積を合計する。


87ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(29,378ポイント)   Date: 2010/01/18(月) 19:03   No:46512     
Title: Re:無題    
>素直に解くなら

余弦定理で求めた円周角から、辺の長さを求めて、あとはごり押し
だと思いましたけど、明らかに中心角から求めた方が楽らくですね。


65ポイント を手に入れた。

Name: non  ..比類無きプログラマー(87,901ポイント)   Date: 2010/01/18(月) 19:05   No:46513     
Title: Re:無題    
>弧AB:弧BC:弧CA=5:4:3

弧であってます?辺ではないの?

仮に辺だとすると、5:4:3の三角形は直角三角形なので(証明は省略)
円に内接する直角三角形は辺ABが円の直径になる。従って、辺ABの長さが2で
5:4:3なので、AB:BC:CA=2:2*4/5:2*3/5
三角形の面積は
2*4/5*2*3/5/2=24/25




125ポイント を手に入れた。

Name: non  ..比類無きプログラマー(87,920ポイント)   Date: 2010/01/18(月) 19:06   No:46514     
Title: Re:無題    
やっぱ、弧でいいのね。失礼しました。


19ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,139,782ポイント)   Date: 2010/01/18(月) 22:28   No:46543     
Title: Re:無題    
> あさん

お名前には適切な名前を入力して下さい。
本日掲示板の規約に名前についての記述を追加しました。
禁止行為欄の一番下です。
なるべく相手に誠意が伝わるような名前をつけ、タイトルも他の人が見てわかりやすいものを付けるようにして下さい。


82ポイント を手に入れた。

Name: hoge  ..入門者(3,578ポイント)   Date: 2010/01/18(月) 22:49   No:46547     
Title: Re:無題    
> お名前には適切な名前を入力して下さい。


ひょっとして私が以前から使っている名前も規約に抵触しますか?
抵触する場合、名前を変えることも禁止されていますし、
どうしたらいいんでしょ?





58ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,140,111ポイント)   Date: 2010/01/18(月) 22:58   No:46548     
Title: Re:無題    
まぁそこまで深く考えないでいいですよ(^^;

私は細かく規約を作るのは好きではないんですが、
質問する時に避けてほしい事があったとしても「そんなことどこに書いてあるんだ」と言われたら御終いなので、
書いているだけです。

規約の本来の目的は
規約を一字一句理解してもらい完全に厳守してもらう事ではなく、
円滑に情報交換が出来、お互いに失礼のない、気持のよいやり取りを可能にする事ですから、
それが出来れば別に厳守する必要はありません。

厳守する必要はありませんが、上の事を意識して頂ければ自然と規約を守ることになるのではないかと思います。
ということで上の事を意識して頂けるなら名前などどうでもよい事です。
もしお名前を変更したいなら、変更したトピックで「変更したよ」と添えてもらえたら十分ですので。

何か堅苦しいイメージを持たせてしまったら申し訳ないですm(_ _)m


329ポイント を手に入れた。

Name: hoge  ..入門者(3,651ポイント)   Date: 2010/01/19(火) 00:25   No:46553     
Title: Re:無題    
回答ありがとうございます。
ということで、これまでどおりhogeという名前を使わせていただきます。

話は変わりますが、タイトルを変更されたようですが、
あさんの問題は直角三角形ではないですよ。
具体的な角度を書くと45°、60°、75°の三角形のようです。


73ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,140,118ポイント)   Date: 2010/01/19(火) 00:35   No:46554     
Title: Re:無題    
あら・・「孤」でしたか、失礼しました^^;

7ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(29,617ポイント)   Date: 2010/01/19(火) 00:53   No:46555     
Title: Re:無題    
僕も辺の比で計算してました^^;
別に正弦、余弦定理でも解けないことなさそうですけど、加法定理とか出てきそうだから、やっぱ中心角を求めて、二等辺三角形の面積を求めるんでしょうね。求めるときにきれいに計算できない辺を余弦定理でもとめればいいですね。


弧の長さから分かるのは角度と
弧AB = 弧BCのときに
辺AB = 辺BC
ですね。


103ポイント を手に入れた。

Name: ぽこ  ..入門者(4,843ポイント)   Date: 2010/01/19(火) 01:30   No:46556     
Title: Re:無題    
1.弧の長さの比=中心角の比から中心角が求まる。
2.この段階で、円の中心をOとすると、△OAB、△OBC、△OCAの2辺とその間の角が判明する。
3−1.高校生レベルなら、公式S=0.5×a×b×sinθを使用して各二等辺三角形の面積を求める。
3−2.中学生レベルなら、補助線を使用して、各二等辺三角形の面積を求める。

が解法になると思います。


と投稿して、たかぎさんが提示した解法と全く同じであることに気がつきました。
忘れてください><b 編集済み


135ポイント を手に入れた。

Name: lbfuvab  ..上級者(24,542ポイント)   Date: 2010/01/19(火) 02:13   No:46558     
Title: Re:無題    
ルーチン化するなら
1.∠AOB,∠BOCを求める(説明不要ですよね?
2.∠AOB,∠BOCからAB,BCを求める(sinの性質より)
3.∠ABCの角度は求まるので S = (AB * BC * sin∠ABC) /2 から面積を求める。


86ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,140,482ポイント)   Date: 2010/01/19(火) 08:00   No:46566     
Title: Re:無題    
「数I教えてください」のsaaaさんと同じ方のようですね。
名前は統一するようにし、前のトピックの回答にコメントをしたり、解決ボタンを押したりしてから新しいトピックを立てましょう。


66ポイント を手に入れた。



Name: しろ  ..ぴよぴよ(59ポイント)   Date: 2010/01/16(土) 00:27   No:46282       
Title: 開発環境について質問です    
こんにちは

visual C++を今度PCにインストールしようと思っています。
(正確にはvisual studio 2008 professionalです)

OSはwindows 7の64bit版なのですが、プログラミングをする上でなにか問題点はありますでしょうか?
(wow64というもので、32bit版も動作するらしいのですが……)

なにぶん初心者(C言語も初めて勉強します)ですので……

よろしくお願いいたします。


59ポイント を手に入れた。


Name: たかぎ [URL]  ..ハッカー(153,505ポイント)   Date: 2010/01/16(土) 00:29   No:46283     
Title: Re:開発環境について質問です    
> プログラミングをする上でなにか問題点はありますでしょうか? 

特別問題点はないと思いますが、どんな観点で質問されているのかにもよります。


37ポイント を手に入れた。

Name: しろ  ..ぴよぴよ(156ポイント)   Date: 2010/01/16(土) 00:43   No:46284     
Title: Re:開発環境について質問です    
御回答ありがとうございます。

>>どんな観点で質問されているのかにもよります。

そうですね、教本とか使って勉強しようと思うのですが、
例えば64bitと32bitで同じプログラムでも動作が変わってくることなどあるのかな、と思いまして。

無知ですいません。


97ポイント を手に入れた。

Name: Ma  ..プログラマー(30,230ポイント)   Date: 2010/01/16(土) 03:20   No:46292     
Title: Re:開発環境について質問です    
あまり32、64bitシステムとかに詳しくない者ですが、同じ環境なのでかきこさせていただきます。

私の環境も windows7 64 bit です。
開発環境には Visual Studio 2008 Express Edition を使っていますが、
いまのところXPから今の環境に移って、気づくほどの問題はありませんでした。
(気づいてないだけかもしれませんが。)

あまり詳しい事は言えませんが、気にする必要はあまりないんじゃないでしょうか。

詳細は詳しい人に…w(オイ 編集済み


201ポイント を手に入れた。

Name: しろ  ..ぴよぴよ(175ポイント)   Date: 2010/01/16(土) 13:09   No:46322     
Title: Re:開発環境について質問です    
なるほど。

たかぎさん、Maさん、どうもありがとうございました。


19ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(153,577ポイント)   Date: 2010/01/16(土) 13:16   No:46324     
Title: Re:開発環境について質問です    
> 例えば64bitと32bitで同じプログラムでも動作が変わってくることなどあるのかな、と思いまして。 

ポインタなどのサイズが変わりますので、移植性に何の配慮もしていないプログラム場合、コンパイル出きなかったり誤動作したりすることはありえます。


49ポイント を落としてしまった。

Name: しろ  ..ぴよぴよ(196ポイント)   Date: 2010/01/19(火) 00:00   No:46550 解決!     
Title: Re:開発環境について質問です    
なるほど!

どうもありがとうございました!!


21ポイント を手に入れた。



Name: 初心者です  ..ぴよぴよ(410ポイント)   Date: 2010/01/18(月) 22:10   No:46540       
Title: ゲームプログラミングの館の13b章で    
全く知識が無い初心者なので質問させて頂きます。
13b章では何故LoadGraphScreen関数が無いのに画像が表示されるのですか?
また13章で説明通りに
if(ProcessMessage()!=0)
     break;
を入れても窓がプログラムを走らせている時に動きません。
理由が分からないので教えてください。


2倍のポイントを手に入れた! 266ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..ウィザード(1,139,700ポイント)   Date: 2010/01/18(月) 22:22   No:46542     
Title: Re:ゲームプログラミングの館の13b章で    
画像、描画されますか?
画像を描画する関数を書いていないので描画されないはずです。
13b章は描画する為の記述がある章ではなく、コードを短く書こうとする章なので、
特に描画関数は書いていません。
また、13b章のプログラムコードをそのまま張り付ければ追記しなくても、
ウィンドウは固まらないはずですが、どうでしょう?

後、お名前はその場限りのものではなく、なるべくオリジナルな名前に決め、
以後同じ名前を使ってください。
「初心者」という名前はかなりの多くの人が使っているので、誰が誰だかわからなくなってしまうのです。


2倍のポイントを手に入れた! 496ポイント を手に入れた。

Name: サスペン  ..ぴよぴよ(16ポイント)   Date: 2010/01/18(月) 22:33   No:46544     
Title: Re:ゲームプログラミングの館の13b章で    
名前は以後気をつけます。
13b章については保存していたファイルを使っていたようで同じ事何度も繰り返していました。
もう1つも同じようです。くだらない質問をしてしまい申し訳ありません。
今後も質問させてもらう機会があると思うのでその時はよろしくお願いします。
答えてくれてありがとうございました。


16ポイント を手に入れた。



Name: saaa  ..ぴよぴよ(11ポイント)   Date: 2010/01/18(月) 18:03   No:46498       
Title: 無題    
数T教えてください。


11ポイント を手に入れた。


Name: sizuma [URL]  ..プログラマー(29,313ポイント)   Date: 2010/01/18(月) 18:30   No:46504     
Title: Re:無題    
学校の授業をがんばって受けましょう。
もしそれでもわからなかったら塾に行くか家庭教師を頼むか。

教科書が一番分かりやすくていいと思います。


46ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,139,139ポイント)   Date: 2010/01/18(月) 18:51   No:46507     
Title: Re:無題    
なんてレアな質問・・^^;
プログラム系の掲示板といえども、プログラムが得意な人は数学な得意な人が多いと思います。
数Tレベルなら解る人も多いと思いますので、何が解らないか具体的に質問すれば答えてくれる人もいると思いますよ。
何が解らなくて今躓いています?


120ポイント を手に入れた。



Name: 電気屋  ..入門者(4,496ポイント)   Date: 2010/01/15(金) 14:09   No:46258       
Title: 敵が円を描くプログラム    
どうも、たびたびお騒がせをしている電気屋です。
今回は、プログラムを共同作成中の仲間からちょっとした質問です。
マップの表示には、0、1、2とサイトでは役割がありますが、2のところの敵の遭遇を変更して、敵キャラがその”2”を中心にして円を描くように動くプログラムは作れないのか?と言う質問です。何度か挑戦はしているのですが、SINの値の書き方や、その他諸々がまだ勉強中なのでうまく動きません
書き方を教えてください。

自分もとはイベント係だったのでよく分かりません。 編集済み


124ポイント を手に入れた。


Name: たいちう  ..熟練のプログラマー(47,081ポイント)   Date: 2010/01/15(金) 16:45   No:46259     
Title: Re:敵が円を描くプログラム    
質問が曖昧です。
現在どのようにデータを持っていて、どのように表示しているのかが、
全く判りません。これでは答えようがないのですが、ご理解いただけますよね?

円が難しいならば、直線運動は作れますか?
AからBまで動くプログラムを添付してくれたら、
回答者が前提条件を良く知ることができ、回答しやすいと思います。

直線運動も難しいならば、もっとハードルを下げ、
現在実行できるプログラムを添付してください。


2倍のポイントを手に入れた! 266ポイント を手に入れた。

Name: 電気屋  ..初心者(5,138ポイント)   Date: 2010/01/15(金) 17:03   No:46261     
Title: Re:敵が円を描くプログラム    
現在、貼り付けたプログラムを実行しています。
1,直線
2,まっすぐ進みしばらく停止し、その後プレイヤーに向かって進み出ししばらくすると戻って行く
3,前進→後退→前進…エンドレス
4、回る
5,プレイヤーに向かう

このプログラムの”4,回る”ところを改良中で、中心点を上記でも書いたように敵に遭遇する”2”に置き換えたいのです。目標はマップ中の”2”のところをぐるぐる回ると作りたいと思っています。

この乗せているプログラムは、参考書(サイトも含む)を参考にしています。まだ、取りかかったばかりで、プログラムを読み切れていません。

最終的には、最初の方から描画しているのではなく、”2”の近くに来るとぐるぐる回ると作りたいとおもっています。

まだ、始めたばかりなのでよろしくお願いします。


2倍のポイントを手に入れた! 642ポイント を手に入れた。

Name: kazuoni [URL]  ..ハッカー(127,411ポイント)   Date: 2010/01/15(金) 18:54   No:46272     
Title: Re:敵が円を描くプログラム    
管理人さんのプログラムではマップチップでマップを作成しているので、
32*32なのですが、電気屋さんはどの様に管理いているのでしょうか?
たいちうさんのおっしゃるように、「動作するプログラム」を載せるのが、
一番良い回答がもらえるのではないでしょうか。

こっからはエスパーになります。
例えば、32*32と仮定し、
int hantei[15][20] = {
        { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
        { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
        { 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
        { 1,1,1,1,1,0,2,0,0,0,0,0,0,0,0,2,0,0,1,1 },
        { 1,1,1,1,1,0,0,0,0,0,0,0,0,2,0,0,0,0,1,1 },
        { 1,1,1,1,1,0,0,2,0,0,0,0,0,0,0,0,0,0,1,1 },
        { 1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1 },
        { 1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,2,1,1 },
        { 1,1,1,1,1,0,2,0,0,0,1,0,2,0,1,0,0,0,1,1 },
        { 1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1 },
        { 1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1 },
        { 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,0,1,1 },
        { 1,1,1,1,1,0,0,2,0,0,0,0,2,0,0,0,0,0,1,1 },
        { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
        { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
};

とし、

hantei[3][6]=2

を対象位置とします。
対象は、

x1=32*6=192 , y1=32*3=96

が左上の頂点となる辺の長さ32の正方形です。
なのでこの中心座標は

x=x1+32/2 , y=y1+32/2

となります。ゆえに、円の中心(x,y)で、半径32/2の円の円周上を回ればよいわけです。
なので、回転する座標(X,Y)は

double rad
X=(32/2)*cos(rad)+x , Y=(32/2)*sin(rad)+y (訂正1/15 18:56)

って感じになるかと。
もし、対象となるマップチップが2であり、
かつ、その位置から9方向のなかに2があったら、円は大きくなりますね。
(そのあたりのアルゴリズムも組み込むのかわかりませんが。) 編集済み


2倍のポイントを手に入れた! 3,022ポイント を手に入れた。

Name: 電気屋  ..初心者(6,427ポイント)   Date: 2010/01/16(土) 10:54   No:46300     
Title: Re:敵が円を描くプログラム    
kazuoniさんありがとうございます。
今、自分が参考にしているサイトはシューティングの館の敵表示のところで、まだまだ勉強中の身です。
まだ、ハッカーさんの書いてくださったプログラムは、真似できそうにありませんでした。(組んでみたのですが、まだ自分に早かったようです。)

はじめから、高望みしたのがいけなかったと思います。なので


int hantei[15][20] = {
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
};

このマップの真ん中を画像が円を描く用に動くプログラム作っていきたいと思います。

今,シューティングの館のプログラムを変更して

void EnemyPattern1(int i){ //まっすぐ進む 
   enemy[i].x+=sin(PI*(enemy[i].counter)/160.0f)*1.0f;
   enemy[i].y+=sin(PI*(enemy[i].counter)/160.0f)*1.0f;

}
//////////////////////////////////////////////
enemy[i].pattern=1; //どういう軌道を描くか
enemy[i].flag=1; //出現フラグを立てる
enemy[i].counter=0;//出現して何カウント目か測るカウンター初期化
enemy[i].size=0.5f;//敵の大きさ
enemy[i].range=(MONSTER1_X_SIZE-60)/2.0f*enemy[i].size;//あたり判定範囲
enemy[i].x=320; //xの初期座標
enemy[i].y=240; //yの初期座標
///////////////////////////////
DrawRotaGraph( (int)enemy[i].x , (int)enemy[i].y , enemy[i].size , 0.0f , image[enemy_img[1]] , TRUE ) ; 
/////////////////////////////////
この用に組んでいるのですが、sinのやり方が分からず、変な風に動きます。
アドバイスお願いします。
///////////////////////////////////////////////////////////////////////
またハッカーさんのプログラムを自分なりに読んでみたのですが多分間違っていると思うので訂正をお願いします
hantei[3][6]=
{0,0,0,0,0,0}
{0,0,0,0,0,0}
{0,0,0,0,0,0}
//hanteiの中に2あるかどうか判定する

1マスが32ビットなので
Xマスは6マスなので
X1=32*6=198

Yマスは3マスなので
Y1=32*3=96

その後、そのhanteiの中心を求めるため
X=X1/2
Y=Y1/2

で中心を求める
/////////////////////////////////////////////////////////////////////////
double rad//角度
X=(1マスのXの真ん中)*cos(角度)+x , Y=(1マスのYの真ん中)*sin(角度)+y 編集済み


1,289ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(47,348ポイント)   Date: 2010/01/16(土) 13:00   No:46320     
Title: Re:敵が円を描くプログラム    
座標系が判らないので適当です。
うまく表示できるように、r, cx, cyを調節してください。

void EnemyPattern4(int i){      //ぐるぐる回る
    if(enemy[i].counter<100)
        enemy[i].x-=2.5f;
    if(enemy[i].counter>=100){
        float r = 2.5f; // 半径
        float cx = 10f; // 中心のX座標
        float cy = 10f; // 中心のY座標
        float theta = PI*(enemy[i].counter-100.0f)/160.0f;
        enemy[i].x = cx + r * cos(theta);
        enemy[i].y = cy - r * sin(theta);
    }
}


直線運動は差分を次々に足すことで計算していますが、
円運動は差分じゃなくて、直接計算した方が簡単で誤差も小さくなります。

またこのプログラムでは、enemy[i].counter==100で、
運動が連続しないと思います(瞬間移動してしまう)。
連続させることもできますが、まずは回転させてみてください。
それから連続性に取り組み、判らなければ再度尋ねてください。

また差分で書く場合は連続性が保証されるという利点があります。
こちらも説明できますが、まずは回転させてみてください、ということで。


267ポイント を手に入れた。

Name: 電気屋  ..初心者(6,445ポイント)   Date: 2010/01/16(土) 14:08   No:46330     
Title: Re:敵が円を描くプログラム    
回ることができました。
連続性について教えて貰えますか?
現時点でも、回るのですが連続性がつくとどうなるのですか?
教えてください。 編集済み


18ポイント を手に入れた。

Name: kazuoni [URL]  ..ハッカー(127,569ポイント)   Date: 2010/01/16(土) 19:21   No:46349     
Title: Re:敵が円を描くプログラム    
> このマップの真ん中を画像が円を描く用に動くプログラム作っていきたいと思います。

これはおかしいくないですか?
っというのも、電気屋さんの書いたマップデータでは、0と1から構成されているので、
どこを回ったらいいのかはっきりしないと思います。
せめて、回転させたい場所は違う数値のほうがよいかと。

とりあえず、作ってみました。(要DXライブラリ)
管理人さんの紹介していらっしゃる龍神録プログラミングの館の中で用いられている
0.png
を用いているので、ご用意を。

適当に殴り書きしてしまったこともあり、解読はかなりしづらいと思いますが・・・。

とりあえず、

1、マップチップのデータをコピー
2、関数RoteOnMap::GetRoteDataFromMapに1のデータを渡し、繰り返し文でまわしていると、
円を描く場所のデータが返ってくるのでそれを記憶(終了時に要関数RoteOnMap::DeleteRoteData)
3、2のデータを元に、楕円の方程式に代入
4、かなり微妙ですけど、まぁ、らしく回ってます。

解析はしないほうがいいかもです・・・。

重要追記
プログラムの関数GetHitKeyStateAll_2で、
for(int i=0;i<258;++i) ×
for(int i=0;i<256;++i) ○

に訂正を。危ないことしてました・・・ 編集済み


76ポイント を手に入れた。

Name: 電気屋  ..初心者(7,490ポイント)   Date: 2010/01/18(月) 10:33   No:46476     
Title: Re:敵が円を描くプログラム    
kazuoniさんありがとうございます
自分なりにkazuoniさんのプログラムを解読中です。あっているか確認してください。
(1文ずつ乗せます。1つ1つ覚えたいので。)
#include "DxLib.h"
#include <math.h>

const double PI = 3.1415926535898; //円周率
const int ClientWidth = 640;    //画面幅(X) 
const int ClientHeight = 480;       //画面幅(Y)
const int CellSize = 32;            //1マスの大きさ

//////////////////////////////////////////////////////////////
//構造体(円を描く)
/////////////////////////////////////////////////////////////
namespace
{
    typedef struct
    {
        float cx,cy;
        float a,b;
        float theta;
        float speed; // degree / loop
    } RoteData;
//////////////////////////////////////////////////////////////
//画面の設定
/////////////////////////////////////////////////////////////
    const int WidthNum = ClientWidth/CellSize;     //640
    const int HeightNum = ClientHeight/CellSize;   //480
/////////////////////////////////////////////////////////////
//設定
/////////////////////////////////////////////////////////////
    const int Color[] = { 0x00ff00 , 0xffffff };  //マップカラー
    const int RoteNum = 2;
    const int CheckedNum = 3;
//////////////////////////////////////////////////////////////
//マップ(640*480)
/////////////////////////////////////////////////////////////
    const int hantei[HeightNum][WidthNum] = { 
    { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, 
    { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, 
    { 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 }, 
    { 1,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,1 }, 
    { 1,1,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1 }, 
    { 1,1,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1 }, 
    { 1,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1 }, 
    { 1,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1 }, 
    { 1,1,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,1,1 },
    { 1,1,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,1,1 }, 
    { 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 }, 
    { 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 }, 
    { 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 }, 
    { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, 
    { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, 
    };
////////////////////////////////////////////////////////////////
//キーの取得
////////////////////////////////////////////////////////////////
    int GetHitKeyStateAll_2(int KeyStateBuf[])
    {
        char GetHitKeyStateAll_Key[256];
        GetHitKeyStateAll( GetHitKeyStateAll_Key );
        for(int i=0;i<256;++i)
        {
            if(GetHitKeyStateAll_Key[i]==1)
                ++KeyStateBuf[i];//キーを取得したらKeyStateBuf[i]に+1
            else
                KeyStateBuf[i]=0;キーを取得しなかったらKeyStateBuf[i]に0
        }
        return 0;
    }
//////////////////////////////////////////////////////////////////
    float GetRadianFromDegree(float deg)
    {
        return (float)PI*deg/180.0f;//degの値を返す
    }
} 


1,045ポイント を手に入れた。

Name: 電気屋  ..初心者(7,661ポイント)   Date: 2010/01/18(月) 16:23   No:46489     
Title: Re:敵が円を描くプログラム    
質問なのですが、kazuoni からいただいたプログラムを実行して、終了させた後にメッセージBOXで
/////////////////////////////////////////////////////////////////////////
データ実行防止
コンピュータ保護のため、このプログラムはWindowsにより終了しました。

名前: DxLid
/////////////////////////////////////////////////////////////////////////
とでたのですが、何なのでしょうか?


171ポイント を手に入れた。

Name: 電気屋  ..初心者(8,021ポイント)   Date: 2010/01/18(月) 17:26   No:46491     
Title: Re:敵が円を描くプログラム    
kazuoniさんから頂いたプログラムは自分にはまだハードルが高かった用です。解読しようとはしているのですが。どうもサンプル文の用にはいきません。


なので、たいちうさんのプログラムを変更して
////////////////////////////////////////////////
//たいちうさんのプログラム
////////////////////////////////////////////////
   if(enemy[i].counter<100)
        enemy[i].x-=2.5f;
    if(enemy[i].counter>=100){
        float r = 10; // 半径
        float cx = 320; // 中心のX座標
        float cy = 240; // 中心のY座標
        float theta = PI*(enemy[i].counter-100.0f)/160.0f;
        enemy[i].x = cx + r * cos(theta);
        enemy[i].y = cy - r * sin(theta);
    }
////////////////////////////////////////////////
とおいていますが、これだとcyが240と決まっているので瞬間移動してしまいます。(y座標がランダムなので)
なのでyの値が変わったら、cyの値も変わるにはどうすればいいですか?お願いします。 編集済み


360ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(49,062ポイント)   Date: 2010/01/18(月) 17:59   No:46497     
Title: Re:敵が円を描くプログラム    
enemy[i]の型が判らないけど、例えばこんな感じで。

struct Enemy {
    // これを追加する
    float cx;
    float cy;
};

void EnemyPattern4(int i){      //ぐるぐる回る
    float r = 2.5f; // 半径
    if(enemy[i].counter<100)
        enemy[i].x-=2.5f;
    if (enemy[i].counter==100) {
        enemy[i].cx = enemy[i].x - r;
        enemy[i].cy = enemy[i].y;
    }
    if(enemy[i].counter>=100){
        float theta = PI*(enemy[i].counter-100.0f)/160.0f;
        enemy[i].x = enemy[i].cx + r * cos(theta);
        enemy[i].y = enemy[i].cy - r * sin(theta);
    }
}


三角関数等の使い方を自分で理解しないと全部質問することになりますよ。


213ポイント を手に入れた。

Name: 電気屋  ..初心者(8,070ポイント)   Date: 2010/01/18(月) 18:06   No:46499     
Title: Re:敵が円を描くプログラム    
ありがとうございます。確かに全部聞く事になりそうなので、サイトのどこの部分を勉強すればいいのか教えてください。そしたら復習もできますし、一通り自分でも考えられるので。
お願いします。


49ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(49,117ポイント)   Date: 2010/01/18(月) 18:14   No:46501     
Title: Re:敵が円を描くプログラム    
> サイトのどこの部分

このサイトのことですか?
どこかに書いてあるかどうかも知りません。
三角関数を理解するためには、高校の数学の教科書が一番だと思います。


55ポイント を手に入れた。

Name: 電気屋  ..初心者(8,085ポイント)   Date: 2010/01/18(月) 18:19   No:46502     
Title: Re:敵が円を描くプログラム    
わかりました。勉強してがんばってみたいと思います。少しの間、勉強して、三角関数を理解してらまた来たいと思います。 編集済み

15ポイント を手に入れた。

Name: 電気屋   Date: 2010/01/22(金) 16:06   No:462581264144002 解決!     
Title: Re:敵が円を描くプログラム    
自学でどうにか理解することができるようになりました。ありがとうございました。



Name: MIRORU  ..ぴよぴよ(792ポイント)   Date: 2010/01/18(月) 12:20   No:46482       
Title: シューティング    
自分は4方向に打つプログラムを作っています。
下のが作成したプログラムです。
しかし玉の描画で、玉が消える前に方向キーを押すと、玉の画像が変わってしまいます。
どうしてでしょうか?コメントお願いします。


void PlayerShotCalc(){
        int j;
        if(Key[KEY_INPUT_Z]==1 && counter%30==0){
                for(j=0;j<50;j++){
                        if(PlayerShot[j].flag==0){
                                PlayerShot[j].flag=1;
                                PlayerShot[j].x=ch1.x;
                                PlayerShot[j].y=ch1.y;
                                for(int a=0;a<4;a++)
                                    PlayerShot[j].muki=3-ch1.muki;//上
                                break;
                        }
                }
        }
        for(j=0;j<50;j++){
                if(PlayerShot[j].flag==1){
                    PlayerShot[j].x+= SHOTSPEED * cos(90*PlayerShot[j].muki*PI/180); 
                    PlayerShot[j].y+= SHOTSPEED * sin(90*PlayerShot[j].muki*PI/180);
                    if(PlayerShot[j].y < -32 || PlayerShot[j].x > 672 || PlayerShot[j].y > 512 || PlayerShot[j].x < -32 || can_or_cannot( PlayerShot[j].x ,PlayerShot[j].y ,PlayerShot[j].muki )==1 )
                                           //もし画面外まで来たら、
                        PlayerShot[j].flag=0;    //発射フラグを0に戻す
                }
        }
}
void PlayerShotDisp(){
        int j;
        for(j=0;j<50;j++){
            PlayerShot[j].range=32;
                if(PlayerShot[j].flag==1){
                    if(ch1.muki==0)
                        DrawGraph(PlayerShot[j].x,PlayerShot[j].y-18,tama[0],TRUE);
                    else if(ch1.muki==1)
                        DrawGraph(PlayerShot[j].x-18,PlayerShot[j].y,tama[1],TRUE);
                    else if(ch1.muki==2)
                        DrawGraph(PlayerShot[j].x,PlayerShot[j].y+18,tama[2],TRUE);
                    else if(ch1.muki==3)
                        DrawGraph(PlayerShot[j].x+18,PlayerShot[j].y,tama[3],TRUE);
                }
        }
}
void CollisionDetection(){
        for(int i=0;i<100;i++){//ショットの全列分
                        if(PlayerShot[i].flag==1){//その弾が発射中なら
                                for(int s=0;s<100;s++){//全敵100体分
                                        if(enemy[s].flag==1){//その敵のショットが出現中なら
                                                double x,y;
                                                int range;
                                                x=(int)(PlayerShot[i].x-enemy[s].x);
                                                y=(int)(PlayerShot[i].y-enemy[s].y);
                                                switch(i){
                                                        case 0:
                                                        case 5:
                                                        case 6:
                                                                range=0;
                                                                break;
                                                        default:
                                                                range=9;
                                                                break;
                                                }
                                                if( (int)sqrt(x*x+y*y) < range+enemy[s].range){
                                                        enemy[s].flag=0;
                                                        ch1.point++;
                            PlayerShot[i].flag=0;
                                                }
                                        }
                                }
                        }
                }
        if(ch1.point == 1){
            battle_loop=2;
        }
}


792ポイント を手に入れた。


Name: pooka [URL]  ..上級者(21,580ポイント)   Date: 2010/01/18(月) 16:05   No:46487     
Title: Re:シューティング    
動作確認できないんで間違ってるかもしれませんが・・・

PlayerShotDisp関数で
if(ch1.muki == 0)
    DrawGraph(PlayerShot[j].x,PlayerShot[j].y-18,tama[0],TRUE); 
else if(ch1.muki == 1)
    DrawGraph(PlayerShot[j].x-18,PlayerShot[j].y,tama[1],TRUE); 
else if(ch1.muki == 2)
    DrawGraph(PlayerShot[j].x,PlayerShot[j].y+18,tama[2],TRUE); 
else if(ch1.muki == 3)
    DrawGraph(PlayerShot[j].x+18,PlayerShot[j].y,tama[3],TRUE); 

とありますが、ch1.mukiではなくPlayerShot[j].mukiではないでしょうか?


274ポイント を手に入れた。

Name: MIRORU  ..かけだし(1,937ポイント)   Date: 2010/01/18(月) 16:54   No:46490     
Title: Re:シューティング    
pookaさんありがとうございます。変更して実行した結果なのですが、今度は発射されるとき画像の向きが上向きになったままで、画像の向きが変わりません。PlayerControlも乗せておきます



void PlayerControl(){
    int white;
    white = GetColor(255,255,255);

        if(ch1.x%16==0 && ch1.y%16==0){         //座標が32で割り切れたら入力可能
            ch1.walking_flag=1;                //歩くフラグを立てる。
            if     ( Key[ KEY_INPUT_UP   ]  == 1 ){  //上ボタンが押されたら
                    ch1.muki=0;         //上向きフラグを立てる
                for(i=0;i<=SHOTMAX;i++){
                    if(PlayerShot[i].flag==0)
                        PlayerShot[i].muki=3;
                }
            }
            else if( Key[ KEY_INPUT_LEFT ]  == 1 ){  //左ボタンが押されたら
                    ch1.muki=1;         //右向きフラグを立てる
                for(i=0;i<=SHOTMAX;i++){
                    if(PlayerShot[i].flag==0)
                        PlayerShot[i].muki=2;
                }
            }

                else if( Key[ KEY_INPUT_DOWN ]  == 1 ){ //下ボタンが押されたら
                    ch1.muki=2;         //下向きフラグを立てる
                    for(i=0;i<=SHOTMAX;i++){
                        if(PlayerShot[i].flag==0)
                            PlayerShot[i].muki=1;
                    }
                }

                else if( Key[ KEY_INPUT_RIGHT]  == 1 ){  //右ボタンが押されたら
                    ch1.muki=3;         //左向きフラグを立てる
                    for(i=0;i<=SHOTMAX;i++){
                        if(PlayerShot[i].flag==0)
                            PlayerShot[i].muki=0;
                    }
                }
                
                else                                    //何のボタンも押されてなかったら
                    ch1.walking_flag=0; //歩かないフラグを立てる
                
                if(can_or_cannot(ch1.x,ch1.y,ch1.muki)==1)//行き先が歩けないなら
                    ch1.walking_flag=0;                  //歩かないフラグを立てる。


        }
 
        if(ch1.walking_flag==1){        //歩くフラグが立っていたら
            if     (ch1.muki==0){        //上向きならch.y座標を減らす
                    ch1.y-=2;
                    if(ch1.y<0)
                        ch1.y=0;
            }
            if(ch1.muki==1){        //右向きならch.x座標を減らす
                    ch1.x-=2;
                    if(ch1.x<0)
                        ch1.x=0;
            }
            if(ch1.muki==2){        //下向きならch.y座標を増やす
                    ch1.y+=2;
                    if(ch1.y>448)
                        ch1.y=448;
            }
            if(ch1.muki==3){        //左向きならch.x座標を増やす
                    ch1.x+=2;
                    if(ch1.x>608)
                        ch1.x=608;
            }
        }
 
        ch1.img=ima[(ch1.x%16+ch1.y%16)/4 + ch1.muki*4];            //画像をセット
        
        DrawFormatString(0,0, white , "%d , %d" , ch1.x,ch1.y);        
        
        DrawGraph( ch1.x , ch1.y , ch1.img , TRUE ) ;//画像を描画
}

/////////////////////////////////////////////////////////////////////////////////////
//変更したプログラム
///////////////////////////////////////////////////////////////////////////////////
void PlayerShotDisp(){
        int j;
        for(j=0;j<50;j++){
            PlayerShot[j].range=32;
                if(PlayerShot[j].flag==1){
                    if(PlayerShot[i].muki==0)
                        DrawGraph(PlayerShot[j].x,PlayerShot[j].y-18,tama[0],TRUE);
                    else if(PlayerShot[i].muki==1)
                        DrawGraph(PlayerShot[j].x-18,PlayerShot[j].y,tama[1],TRUE);
                    else if(PlayerShot[i].muki==2)
                        DrawGraph(PlayerShot[j].x,PlayerShot[j].y+18,tama[2],TRUE);
                    else if(PlayerShot[i].muki==3)
                        DrawGraph(PlayerShot[j].x+18,PlayerShot[j].y,tama[3],TRUE);
                }
        }
}

 編集済み


1,145ポイント を手に入れた。

Name: ひよこ  ..比類無きプログラマー(78,225ポイント)   Date: 2010/01/18(月) 17:30   No:46492     
Title: Re:シューティング    
PlayerShot[i].flag==0が条件だからではないのでしょうか?

8ポイント を手に入れた。

Name: MIRORU  ..かけだし(1,957ポイント)   Date: 2010/01/18(月) 17:37   No:46495 解決!     
Title: Re:シューティング    
動きました。ありがとうございます 編集済み

2倍のポイントを手に入れた! 20ポイント を手に入れた。



Name: たかぎ [URL]  ..ハッカー(149,965ポイント)   Date: 2010/01/14(木) 00:43   No:46137       
Title: 【雑談】C言語初学者に適した開発環境は?    
以前から何度かこの話題は出ていましたが、改めて皆さんのご意見をお伺いしたいと思います。
C言語初学者に適した開発環境と、それが適していると思う理由を教えてください。


85ポイント を手に入れた。


Name: Ma  ..プログラマー(29,849ポイント)   Date: 2010/01/14(木) 07:56   No:46145     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
C++になってしまい、
Visual C++, Boland C++ Compiler ぐらいしか使ったことがない者の意見ではありますが、

個人的にふたつのうちなら断然
Borland C++ Compiler
です。

理由
・設定することが少ない。(DXライブラリを使うなら別ですが…)
・サイズが軽いので、インストールが面倒に感じない。
・はじめに限られた機能しかないものから、より上質な環境にうつったときのうれしさと感動w
・たくさん知らないボタンや機能で埋め尽くされることはない。


118ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,071ポイント)   Date: 2010/01/14(木) 08:20   No:46146     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> Maさん
> ・設定することが少ない。(DXライブラリを使うなら別ですが…) 

bcc32.cfgとilink32.cfg、それから環境変数PATHの設定が必要でしたっけ。
わかっていれば簡単ですが、そうでないと戸惑いませんか?
まあ、この辺のことは、まともにプログラミングをやろうと思えば遅かれ早かれ習得しなければならないので、逃げずに覚えた方がよいとは思いますが...

DXライブラリはC++でないと使えないので、C言語初学者が使うことは原則ありませんね。


106ポイント を手に入れた。

Name: non  ..比類無きプログラマー(87,201ポイント)   Date: 2010/01/14(木) 08:51   No:46148     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
Borland C++ 5.5をお勧めします。
エディタは「C言語を始めよう」です。 http://homepage3.nifty.com/aokura/
設定はBCCが格納されている場所をクリックするだけなので、初心者でも大丈夫。
ビルドや実行もワンクリック。
一番いいのは、プロジェクトを作らなくて良いので、初学者は分割ファイルになるなんてことは
ないし、便利。とにかく軽いので起動もはやい。




102ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,219ポイント)   Date: 2010/01/14(木) 09:58   No:46149     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> nonさん
主になるのは、「Borland C++ Compiler」でしょうか? それとも「C言語を始めよう」でしょうか?
つまり、「C言語を始めよう」無しでも「Borland C++ Compiler」をお勧めしますか?
あるいは、「Borland C++ Compiler」無しでも「C言語を始めよう」をお勧めしますか?
 編集済み


2倍のポイントを手に入れた! 148ポイント を手に入れた。

Name: Mist  ..比類無きプログラマー(80,715ポイント)   Date: 2010/01/14(木) 10:30   No:46150     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
Windows限定ですが私はVC++EEですね。
VCひとつでコンパイラ、そこそこ高機能なエディタ、デバッガが全て揃いますので導入のための敷居は低いと思います。
高機能なので最初はいろいろ戸惑うことはあるかもしれませんが、初心者用の使い方を説明してくれているページはいくらでもありますし、最初からある程度高機能なものを触らせておくほうが伸びるように思うんですよね。

VC以外はフリー限定だとエディタ、デバッガが別になるのでその辺の準備がちょっと手間な気がします。(Turbo C++は配布終了しちゃったし。)
こういうのは使い慣れたエディッタがある人だと気にもならないんでしょうが。


> DXライブラリはC++でないと使えないので、C言語初学者が使うことは原則ありませんね。 
そんなことはないと思いますよ。
DXライブラリ自体はC++で作られているので拡張子はcppにしておく必要はありますが、DXライブラリとのインタフェースはCしか知らない人でも問題ないように作られていますから、ゲーム本体がCであっても問題ないですが。
C言語で書かれたソースをC++コンパイラでコンパイルすることはたかぎさんの質問範囲外なんでしょうか?


225ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,396ポイント)   Date: 2010/01/14(木) 10:37   No:46151     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> DXライブラリ自体はC++で作られているので拡張子はcppにしておく必要はありますが、DXライブラリとのインタフェースはCしか知らない人でも問題ないように作られていますから、ゲーム本体がCであっても問題ないですが。

それは分かりますが、C言語そのものを学習することとは分離して考える必要がありますね。
でないと、CとC++の区別がつかなくなってしまいます。

> C言語で書かれたソースをC++コンパイラでコンパイルすることはたかぎさんの質問範囲外なんでしょうか?

範囲外です。
CとC++は別の言語です。Cで書かれたソースをC++でコンパイルすることは、かなりの部分までできますが、常にできるわけではありません。Cではできないことができてしまうことも問題があります。
自分が何を学んでいるかを曖昧にしたままだと、まともな学習はできないと思います。


177ポイント を手に入れた。

Name: Mist  ..比類無きプログラマー(81,230ポイント)   Date: 2010/01/14(木) 11:24   No:46153     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
質問の意図を理解しました。
たかぎさんのいうC言語初学者とは、最終的にはC言語を完璧に理解する(スペシャリストになる)ことを目的とした人ということですね。
ということであればC99に対応しているもののほうがよいでしょうからgccじゃないでしょうか。
導入とか手間暇かかりますがそこで挫折するような人は頂までは達せないでしょう、ということで。
エディタは教える人の好みで。

> 自分が何を学んでいるかを曖昧にしたままだと、まともな学習はできないと思います。

(あくまで私見)
その通りだとは思いますが、C言語というのは多くの未経験者にとってゲーム等のアプリケーションを作るためのツールのひとつでしかないと思います。
そういう人たちはC言語を完璧にマスターすることは目的としていないので、最初の時点でCとC++を厳密に分けてあーだこーだと薀蓄をたれるのは、プログラミングというものに対するイメージを悪化させ、モチベーションを下げる要因にしかならないと思います。
例えが変かもしれませんが、運動不足解消を目的として野球を始めた人にプロ野球の頂点を目指そうとしている人と同じトレーニングはさせないでしょう。
最初は曖昧であっても、より高みを目指す人はおのずとそういう点に気が付いて解決していくと思います。
もちろん、最初から頂を目指す人のためのページは必要と思いますよ。
教わる側の目的に合わせて複数の選択肢があることが望ましいので、どういう人にもこれが最高というのは無いんじゃないかと思います。


515ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,811ポイント)   Date: 2010/01/14(木) 11:50   No:46154     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> たかぎさんのいうC言語初学者とは、最終的にはC言語を完璧に理解する(スペシャリストになる)ことを目的とした人ということですね。
> ということであればC99に対応しているもののほうがよいでしょうからgccじゃないでしょうか。

スペシャリストというか、実際に(C++ではなく)Cを使ってプログラミングができるようになることを目指すということですね。ですので、現実問題としては、C99を習得する必要は必ずしもありません。
例えば、組込み業界でNC30WAを使ってM16Cの開発をする場合、C++を使ってCを習得した気になったプログラマは使えませんね。そういうことです。
なお、C言語を習得する時点では、将来的にNC308WAやHEWを使うかどうかはわかりませんので、それに拘る必要はないと思います。

> その通りだとは思いますが、C言語というのは多くの未経験者にとってゲーム等のアプリケーションを作るためのツールのひとつでしかないと思います。 

一概にはいえません。
就職に有利になるように、または何らかの資格をとるために学ぼうとする人、あるいは学校の授業で単位をとるために学習する人は、少なくとも初期の段階では、アプリケーションを作ることが第一の目的ではありません。
そして、そうした人は少数派ではないはずです(もしかすると過半数がこちらかもしれません)。

> 例えが変かもしれませんが、運動不足解消を目的として野球を始めた人にプロ野球の頂点を目指そうとしている人と同じトレーニングはさせないでしょう。

純粋な運動不足解消ならそれでもよいでしょうが、たとえ草野球でも、自分が軟式野球をやっているのか硬式野球をやっているのか、あるいはソフトボールをやっているのかぐらいは認識するはずです。
プロを目指さなくても、自分が何をやっているかぐらいはわかっていないと、グローブなどの野球用品の選択も、練習試合の申し込みもできませんね。

> 最初は曖昧であっても、より高みを目指す人はおのずとそういう点に気が付いて解決していくと思います。 

趣味でプログラミングをやっていて、何でもよいので希望するアプリケーションが作れればよいという人のニーズとしてはそうかと思います。

> 教わる側の目的に合わせて複数の選択肢があることが望ましいので、どういう人にもこれが最高というのは無いんじゃないかと思います。

これは同感です。


415ポイント を手に入れた。

Name: non  ..比類無きプログラマー(87,357ポイント)   Date: 2010/01/14(木) 12:22   No:46155     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> > nonさん
> 主になるのは、「Borland C++ Compiler」でしょうか? それとも「C言語を始めよう」でしょうか?
> つまり、「C言語を始めよう」無しでも「Borland C++ Compiler」をお勧めしますか?
> あついは、「Borland C++ Compiler」無しでも「C言語を始めよう」をお勧めしますか?


「C言語を始めよう」がお勧めです。ただし、「C言語を始めよう」はBCC専用なのです。
エディタとしての機能はいまいちです。でも、初学者には充分だと思います。
プロジェクトを作らなくていいので、課題ごとにフォルダをわける必要もなく、ちっちゃなプログラムが
たくさん一つのフォルダに入ってても気になりません。

また、軽いので、同時にたくさんのファイルを開いて、課題を次々に解いても、カットアンドコピーも
やりやすく重宝します。




156ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,821ポイント)   Date: 2010/01/14(木) 12:44   No:46157     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> 「C言語を始めよう」がお勧めです。ただし、「C言語を始めよう」はBCC専用なのです。

確かLSI-C86にも対応していたと思います。


10ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(46,499ポイント)   Date: 2010/01/14(木) 13:04   No:46158     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> プロを目指さなくても、自分が何をやっているかぐらいはわかっていないと、
> グローブなどの野球用品の選択も、練習試合の申し込みもできませんね。

うまい例えですね。ボールを買うときに説明できず、
スポーツ用品店の人を困らせるわけですね。

他の言語の経験はありましたが、C/C++/MFCを区別せずに始めた私としては、
C/C++を区別することは重要だと思います。不要な苦労をしましたから。
将来的に両方身に着けるにしても、脱初心者程度までは片方だけを学習し、
その後、別の言語として他方を学習したほうが、トータルコストも下がるでしょう。


それとVC++2008EEに一票。理由はメジャーだからです。
かつては同じ理由でBCC5.5がベストだったと思います。


104ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,615ポイント)   Date: 2010/01/14(木) 13:17   No:46159     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> うまい例えですね。ボールを買うときに説明できず、
> スポーツ用品店の人を困らせるわけですね。 

軟式のグローブは柔らかくて安価ですので、初心者には使い易いはずです。
運動不足解消にキャッチボールをするぐらいなら何でも構いませんが、軟式グローブで硬式の打球を受けていると、そのうちグローブが破損したり怪我をする羽目になりますね。
CとC++も、ある意味そんな関係かもしれません。

> それとVC++2008EEに一票。理由はメジャーだからです。

メジャーなのは確かですね。
難点は、メジャーでいられる期間が短いことですが...
じきに2010も出ますので、2008に特化したものは陳腐化します。

> かつては同じ理由でBCC5.5がベストだったと思います。

これは何ともいえないのでは?
Borland C++ Compiler 5.5の全盛期でも、Visual C++ 6.0の方がメジャーだったはずです。


206ポイント を落としてしまった。

Name: すずめ  ..初心者(5,851ポイント)   Date: 2010/01/14(木) 13:19   No:46160     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
ここのサイトはどう見てもゲームが簡単にできるように解説して
くれているサイトです(掲示板での学生の質問は別として)。
そしてこのサイトが好きでみんなが集まり、盛り上がっているんだと思います。

CとC++を厳密に覚えたいと思う人、専業につきたい人は、専門学校、大学、あるいは
それなりのサイトで勉強すればいいわけです。

このサイトで勉強する人にはVC20008EEが最適です。



176ポイント を手に入れた。

Name: non  ..比類無きプログラマー(87,401ポイント)   Date: 2010/01/14(木) 13:41   No:46161     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> > 「C言語を始めよう」がお勧めです。ただし、「C言語を始めよう」はBCC専用なのです。

> 確かLSI-C86にも対応していたと思います。


バージョンが新しくなってから、BCC専用になり、LSI-C86試用版は使えなくなりました。



44ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,681ポイント)   Date: 2010/01/14(木) 13:49   No:46162     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> すずめさん
> ここのサイトはどう見てもゲームが簡単にできるように解説して
> くれているサイトです(掲示板での学生の質問は別として)。
> そしてこのサイトが好きでみんなが集まり、盛り上がっているんだと思います。

このサイト(dixq.net)の場合はそうだと思います。
今回の質問はそれに特化しているわけではありません。

> nonさん
> バージョンが新しくなってから、BCC専用になり、LSI-C86試用版は使えなくなりました。 

なるほど。はじめて知りました。


66ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(46,674ポイント)   Date: 2010/01/14(木) 14:23   No:46163     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> これは何ともいえないのでは?
> Borland C++ Compiler 5.5の全盛期でも、
> Visual C++ 6.0の方がメジャーだったはずです。

済みません。言葉が足りませんでした。
フリーのコンパイラの中で、という意味です。
VS2005からは、最もメジャーなIDEに無償のエディションができた、という意味で、
BCC5.5の頃よりも良い環境(時代)になっていると思います。
(市場調査をしている訳ではなく、「最もメジャー」は単なる私の印象です)


> 難点は、メジャーでいられる期間が短いことですが...
> じきに2010も出ますので、2008に特化したものは陳腐化します。

これはあまり難点と感じません。
教える立場としては、例えば10年後も推奨できるようなコンパイラを
想定しているのかもしれませんが、教わる立場としては、コンパイラの
流行り廃りを感じる前に、コンパイラの差異を吸収できるだけの実力を
身に着けてほしいものです。

また2008に特化と言っても、VS2008の方言を積極的に教える訳ではなく、
プロジェクトの作り方や、お節介な警告の消し方等だけで良いのでは?


175ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,962ポイント)   Date: 2010/01/14(木) 14:49   No:46165     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> 教わる立場としては、コンパイラの
> 流行り廃りを感じる前に、コンパイラの差異を吸収できるだけの実力を
> 身に着けてほしいものです。 

なるほど。ただ、2010が出ると、おそらく近いうちに2008は入手できなくなりますね。
その点はどうでしょうか?

> 教える立場としては、例えば10年後も推奨できるようなコンパイラを
> 想定しているのかもしれませんが、

手の内を明かすと、将来的に書籍化までにらんだ計画を考えています。
ウェブサイトの場合、比較的容易に新しいバージョンに追従できますが、書籍の場合はそうはいきません。
売れ行きがよければ、バージョンが上がる度に2010対応版とか2013対応版とかを出せばよいのでしょうが、そのような商法は何となく良心の呵責もあります。

Visual C++ 2008 Express Editionが、本製品がバージョンアップしたあとでも、Borland C++ Compiler 5.5.1のように入手可能な状態が続き、欲をいえば容易に再配布できるのであればよいのですが...


281ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(46,815ポイント)   Date: 2010/01/14(木) 15:35   No:46169     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> なるほど。ただ、2010が出ると、おそらく近いうちに2008は入手できなくなりますね。
> その点はどうでしょうか?

その時点で最もメジャーなものを選んだらよいと思います。

とはいえ、ようやくご質問の意図が理解できました。
VS2005EEも2009年3月末で提供が終わったそうですね。
(ダウンロードが不可能というわけではないですが)
長期的なことを考えるとMSは全くあてになりませんね。
気前良くアーカイブを提供し続けるようなことはないでしょう。

ということで、今回のケースで推奨できるような環境を知りません。
メジャーなもの以外の経験が少ないので。

# BCC5.5等はどうしても時代遅れに感じるな。見栄えもぱっとしないし。
# 初学者とはいえデバッガの使い方も教えてあげた方が良いと思う。


141ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,570ポイント)   Date: 2010/01/14(木) 16:48   No:46176     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
私なりに主要な開発ツールの比較をしてみます。

【Visual C++ 2008 Express Edition】
長所
・デバッガが使い易い
・情報が豊富
・職場で使われることも多い(Visual Studio 2008として)

短所
・重い
・IDEの操作を覚える必要がある
・CとC++を混同する可能性大
・_s付きの変数など、癖が多い
・いつまで入手できるかわからない
・再配布できない

【Borland C++ Compiler】
長所
・軽い
・情報が豊富
・覚えることが少ない

短所
・Turbo Debuggerが使いにくい
・バグが多い
・再配布できない
・(いつまで入手できるかわからない)

【Cygwin】
長所
・覚えることが比較的少ない
・職場で使われることも多い(GCCという意味で)
・C99にある程度対応

短所
・重い(サイズが大きい)
・デフォルトでは日本語のエラーメッセージが出ない

【MinGW】
長所
・軽い
・覚えることが比較的少ない
・職場で使われることも多い(GCCという意味で)
・C99にある程度対応

短所
・long doubleを使った場合にprintf/scanf系関数が誤動作する。
・デフォルトでは日本語のエラーメッセージが出ない
 編集済み


392ポイント を落としてしまった。

Name: たかぎ [URL]  ..ハッカー(150,658ポイント)   Date: 2010/01/14(木) 17:32   No:46179     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> その時点で最もメジャーなものを選んだらよいと思います。 

その時点で最もメジャーなものというのが難しいんですね。
例えば、現時点でも、C言語の開発環境として最も使われているのがVisual C++かというと、必ずしもそうとはいえません。ましてや、2008かというと、もっと怪しくなります。

Visual Studioを使った開発としては、C#がメジャーです。
ゲーム業界は確かにVisual C++を使いますが、その場合でも、CではなくC++です。
そう考えると、(C++ではなく)Cの開発ツールとして最も使われているのは、もしかするとGCCかもしれないという予想もできるわけです。
もちろん、知名度としてはVisual C++の方が高いでしょうが...
 編集済み


2倍のポイントを手に入れた! 88ポイント を手に入れた。

Name: fatens  ..入門者(4,696ポイント)   Date: 2010/01/14(木) 17:49   No:46181     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
BCC, VC++しか使ったことがないのを断っておきます。

C言語初学者→文法を理解する段階とすると、BCCが良いと思います。
cfgファイルや環境変数の設定は理解して欲しいと思いますし、
実際私が中学生の時にC言語を始めた際には何ら問題なく設定できました。
コマンドプロンプトの扱い(cd, dir など)も慣れますし。

また、デバッガが使いにくいということがありますが、
まだ文法を知っていろいろ試している状態では必須ではないと思います。
一通り学習し終えた後にVC++などの統合開発環境に触れ、
デバッグの仕方について学ぶのも遅くはないでしょう。
そのころにはVC++などの操作についても理解できるだけの力はついていると思います。


288ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(150,868ポイント)   Date: 2010/01/14(木) 18:55   No:46188     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> fatensさん
> コマンドプロンプトの扱い(cd, dir など)も慣れますし。 

昔はMS-DOSで、ファイルのコピーや削除なども全部コマンドで行わなければなりませんでしたが、現在はエクスプローラを併用することで、せいぜいcdコマンドとコンパイルのコマンド(bcc32とかclとかgccとか)が使えれば十分ですね。

> 一通り学習し終えた後にVC++などの統合開発環境に触れ、 
> デバッグの仕方について学ぶのも遅くはないでしょう。 

だとすると、Visual C++ 2008を使って、コマンドプロンプト上でclコマンドを使ってコンパイルするところから始め、ある程度進んだところで(デバッガを使ったり、多数のソースファイルに分割したりする段階で)IDEを使ってもよいかもしれませんね。


210ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(151,241ポイント)   Date: 2010/01/14(木) 19:13   No:46190     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
目的別に考えてみたいと思います。

■とにかくアプリケーションを作りたい

・ゲームを作りたい
 Cである必要はない → C++を使ってもよい → C#やHSPでもよい

・GUIアプリケーションが作りたい
 VC++2008EEにせよBCCにせよGCCにせよ、リソースエディタがない → C#やVBで十分

・コマンドラインツールを作りたい
 PerlとかRubyとかのLLでよいのでは?

・ウェブアプリケーションを作りたい
 PerlとかPHPとかRubyとか、あるいはJavaとかC#とか...

・マイコンのプログラムを作りたい
 使うマイコンに応じたクロスコンパイラと、場合によってはアセンブラを使う必要あり

■C言語をしっかり習得したい

・学校の授業で良い成績をとりたい
 授業で使っている環境に合わせるのが吉

・情報処理試験に合格したい
 C99ではダメ、純粋なC90を学習すべき。IDEはオーバースペック → コマンドラインコンパイラで十分
 実は過去問の丸暗記の方が効果的とか...

・仕事で使えるようになりたい
 仕事で使う環境に合わせるのが吉
 就職前など、環境が特定できないなら、特定ツールに依存しない学習方法が吉

・C言語の仕様を極めたい
 規格書に目を通すことが必須
 可能な限り多くの処理系に触れるべき
 編集済み


373ポイント を手に入れた。

Name: fatens  ..入門者(4,941ポイント)   Date: 2010/01/14(木) 19:48   No:46192     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
>だとすると、Visual C++ 2008を使って、コマンドプロンプト上でclコマンドを使ってコンパイルするところから始め、
>ある程度進んだところで(デバッガを使ったり、多数のソースファイルに分割したりする段階で)IDEを使ってもよいかもしれませんね。

確かにそうですね。
導入することを考えると、比較的簡単にインストールできるVC++に比べ、
ダウンロードに名前やメールアドレスが必要なBCCは抵抗を感じる人もいるかもしれません。
(30日以内に製品の登録は必要ですが……)


目的別については分からないものもありますが概ねその通りだと思います。
強いて挙げるなら...
・ゲームを作りたい
 既存のツールを使えばよい(プログラミングが目的ではない)


245ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(151,288ポイント)   Date: 2010/01/14(木) 19:58   No:46193     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> ・ゲームを作りたい 
>  既存のツールを使えばよい(プログラミングが目的ではない) 

何とかツクールの類ですね。
RPGツクールなんかを使い込むにはRubyを覚える必要はあるでしょうが...


47ポイント を手に入れた。

Name: fatens  ..入門者(4,993ポイント)   Date: 2010/01/14(木) 20:09   No:46195     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
>RPGツクールなんかを使い込むにはRubyを覚える必要はあるでしょうが...

これは知りませんでした。
RGGSというRubyをカスタマイズしたものが使えるようですね。


52ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(151,543ポイント)   Date: 2010/01/14(木) 20:58   No:46202     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
Eclipse + CDT + GCCという選択肢もありますね。
長所としては、IDEはWindowsだけでなく、MacでもLinuxでもほぼ同じように使えることがあります。
ただし、GCCはプラットフォームによって微妙に異なります。
短所としては、重いことでしょうか。



97ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(29,359ポイント)   Date: 2010/01/14(木) 21:49   No:46211     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
僕が最初にCの本を読んだときは、メモ帳でコード書いてました。(Windows,コマンドプロンプト)
if文や関数の作り方を勉強するときならメモ帳で書いて、コマンドプロンプトで実行ファイル作るようにしたほうがいいのではないかな?と思います。
コンパイルしたら何が生成されるのか?
リンクさせるには?とか勉強しながら出来ますし。
IDEのありがたさも分かると思います^^

VisualC++を使っていますが、確かに自分で導入するには大きいし重いですね。
VC++、VC#を家には導入しましたが、回線が細かったらそれだけで一苦労だと思います。
デバッグしやすいので気にってますけどね。


僕は開発の環境よりも、どんな学び方をするかの方が難しいと思います。
アルゴリズムの本はいろいろとあると思いますけど、コーディングの演習というのは見たことないです。
文法書の10〜100行あれば書けるような問題ではなく、それ以上の問題を難易度順にやらせる、なんて問題集が欲しいですね。
(ゲームプログラマになる前に覚えておきたい技術、をチラッとみたら最初にそんなミニゲームを作らせる問題だったので、面白そうと思いました)

このサイトに来る人だと、
ゲームが作りたい → シューティングを作ってみる
となって、シューティングを作るまではいいと思うんですが、僕は比較的簡単に出来るものをどんどん作って言語の習得をしたいと思っているので。

例えば
タイピングゲームを作らせる
→解として、どんな構造体を作るか、どんな関数を作るかなどポイントをのせる。

次に生態シミュレーションを作らせる
→AIのアルゴリズムが分からない場合はどんなアルゴ使うのかヒントのページを作る。同じようにポイントを解として

とこんな感じで(ゲームの必要は全くないですが)
こういう体系的にスキルアップできる演習のバイブルみたいなものがあればいいんですけど・・・
なんか話がずれましたが、これも一種の開発環境ということで^^;


852ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(152,020ポイント)   Date: 2010/01/14(木) 23:03   No:46217     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> sizumaさん
> 僕が最初にCの本を読んだときは、メモ帳でコード書いてました。

エディタはもう少しまともなものを使ってもよいとは思いますけどね。
例えば、TeraPadなら転載もできますので、場合によっては必要な(TeraPadの)ツールなどを付属して、MinGWやInsightと一緒に配布すれば、エディタ、コンパイラ、デバッガを一発でインストール(といっても圧縮ファイルを解凍するだけ)できます。

> VisualC++を使っていますが、確かに自分で導入するには大きいし重いですね。 

そうなんです。少なくとも手軽ではありませんね。
重くてもよいなら、私としてはCygwinが一番のおすすめです。
実をいうと、Windows環境でちょっとしたCのプログラム(ウェブサイトや書籍に掲載するサンプルなど)を書くときは、特別な事情がない限りCygwinを使っています。
Cygwinなら、エディタ、コンパイラ、デバッガを一発でインストールできます。そればかりか、アーカイバ、CVSやSubversionなどのリビジョン管理ツール、diffなどの各種ツール、PerlやTclなどのスクリプト言語も一緒にインストールできますので、他のものは何もいらないぐらい便利だったりします。
まあ、viやemacsが使いにくいなら、エディタは別のものを使ってもよいでしょが...

コーディングの演習に関しては、確かにそういうものがあってもよい気はします。



477ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(153,235ポイント)   Date: 2010/01/15(金) 19:28   No:46275 解決!     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
Windowsにかぎれば、Visual C++ 2008 Express Editionのコマンドラインからスタートして、デバッガやプロジェクトが必要になったあたりでIDEを持ち出すというのがかなり魅力的に見えてきました。
問題は、MSが開発ツールをずっと提供し続ける気があるかどうかです。
Visual C++ 2010 Express Editionみたいなものが出るなら、また、その先のバージョンでも同等以上の状況が継続するなら十分許容範囲なのですが、そんな保証はないことが痛いですね。

とりあえず、ここでいったん解決にしますが、今後もご意見をいただけると幸いです。



177ポイント を手に入れた。

Name: たいちう  ..熟練のプログラマー(48,849ポイント)   Date: 2010/01/18(月) 15:36   No:46486     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
こういうことですか?

「本書はVS2008EEの使用方法を解説しています。
VS2008EEが入手不可能になった場合は、必要に応じて
VSの新しいバージョンや他のコンパイラについて、
可能な限りのサポートを行いますので、著者HPも併せて参照してください。

尚、本書のプログラムについては、開発環境に依存する部分は一切(?)
ありませんので、C99に適合する全てのコンパイラで実行可能です。」

理想的なコンパイラが見つからないなら、これが最良でしょう。


129ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(154,783ポイント)   Date: 2010/01/18(月) 17:31   No:46493     
Title: Re:【雑談】C言語初学者に適した開発環境は?    
> C99に適合する全てのコンパイラで実行可能です。

C99に完全に適合するコンパイラというのは見たことがないですが、ほどほどの適合でさえできていないコンパイラもそれなりにありますからね。
まるっきりの非標準処理系を除けば、C99にまったく対応していないコンパイラのほうが少数派ではありますが..

> 尚、本書のプログラムについては、開発環境に依存する部分は一切(?) ありませんので、

それは無理でしょう。
記述が抽象的になりすぎることもありますが、それ以前に...

・#や[や\などの機種依存文字が使えなくなりますので、すべて三文字表記にしなければなりません。
・標準入出力が具体的なデバイスに結合されているとは限りません。また、CGIなども考慮しなければなりません。
・フリースタンディング環境も含めて、依存性をなくさなければなりません。
・sizeof(int) == 1の環境では、かなり不思議な現象が起きます。

というわけで、無理です。


165ポイント を手に入れた。



Name: YOK  ..ぴよぴよ(83ポイント)   Date: 2010/01/18(月) 00:33   No:46466       
Title: エラー    
warning: assignment makes pointer from integer without a castと 
warning: passing argument 1 of 'get_score' from incompatible pointer type 
というエラーがでたのだが、簡単にどういうエラーか教えてください


83ポイント を手に入れた。


Name: たかぎ [URL]  ..ハッカー(154,168ポイント)   Date: 2010/01/18(月) 00:35   No:46467     
Title: Re:エラー    
> 簡単にどういうエラーか教えてください

「エラー」ではなく「警告」です。
どんな警告かは、書いてある通りです。


36ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(27,731ポイント)   Date: 2010/01/18(月) 01:31   No:46468     
Title: Re:エラー    
単語調べれば大体の意味は分かると思いますよ。

僕のつたない翻訳機能を使うと

警告:代入によりint からキャストなしでポインタにしてます。
警告;get_scoreの第一引数に互換性のないポインタ型が渡されてます。

もし単語の意味を調べても分からないのであれば、英語の基礎力(というか国語も)不足。
中高生ならば英語の授業をがんばりましょう。


159ポイント を手に入れた。

Name: box  ..ハッカー(150,205ポイント)   Date: 2010/01/18(月) 13:31   No:46484     
Title: Re:エラー    
> というエラーがでたのだが、簡単にどういうエラーか教えてください

当該のソースコードとエラーの起きた箇所を見せてくだされば、
どういう風に修正すればよいかがわかるかもしれません。


2倍のポイントを手に入れた! 66ポイント を手に入れた。



Name: 初心者☆  ..ぴよぴよ(152ポイント)   Date: 2010/01/15(金) 18:15   No:46268       
Title: メニューバーの作成方法    
どうもよろしくお願いします。
プログラムウインドウでメニューバーってありますよね。このプログラムの作り方を教えてください。
目的は、フル画面か、ウインドウにするかを作成したいからです。


96ポイント を手に入れた。


Name: kazuoni [URL]  ..ハッカー(124,389ポイント)   Date: 2010/01/15(金) 18:32   No:46271     
Title: Re:メニューバーの作成方法    
開発環境は・・・?

windowsならググればたくさん参考サイトが出てきますよ。

Programming Place Plus
Win32API(C言語)編 第28章 メニューバーを作る
http://www.geocities.jp/ky_webid/win32c/028.html


96ポイント を手に入れた。

Name: 初心者☆  ..ぴよぴよ(201ポイント)   Date: 2010/01/16(土) 08:45   No:46295     
Title: Re:メニューバーの作成方法    
すみません、書くのを忘れていました。
windows Micrisift Visual C++
です。自分始めたばかりで右も左も分からないトウシロウですが、よろしくお願いします。



49ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(90,460ポイント)   Date: 2010/01/16(土) 12:32   No:46315     
Title: Re:メニューバーの作成方法    
kazuoniさんの紹介したWin32APIの方法で理解できたのでしょうか?
Visual C++が有料版ならMFCの方法も紹介しますが。


41ポイント を手に入れた。

Name: 初心者☆  ..ぴよぴよ(234ポイント)   Date: 2010/01/16(土) 12:51   No:46318     
Title: Re:メニューバーの作成方法    
多分、有料だと思います。
バージョンが古いのですが、大丈夫ですか?
 編集済み


33ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(90,626ポイント)   Date: 2010/01/16(土) 16:35   No:46340     
Title: Re:メニューバーの作成方法    
>バージョンが古いのですが、大丈夫ですか? 
6.0ぐらいな全然問題ないです。
メニューバーを単純に表示したければ、SDIかMDIで作れば簡単ですよ。
ダイアログにメニューバーを付けるのは気持ち面倒ですが。
プロジェクトの新規作成でMFCアプリケーションを選んで、シングルドキュメンテーションを選ぶだけです。


103ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(49,126ポイント)   Date: 2010/01/16(土) 17:38   No:46343     
Title: Re:メニューバーの作成方法    
バージョンも分かっていないようでは
何を言っているのかわからいのでは


25ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,137,863ポイント)   Date: 2010/01/16(土) 22:17   No:46360     
Title: Re:メニューバーの作成方法    
定番ですが、私はここで勉強しました。

http://www.kumei.ne.jp/c_lang/

SDK編を端から読んでいけば本を買わずとも結構勉強出来ますよ。


51ポイント を手に入れた。

Name: 初心者☆  ..ぴよぴよ(247ポイント)   Date: 2010/01/18(月) 12:13   No:46479 解決!     
Title: Re:メニューバーの作成方法    
ありがとうございました。

13ポイント を手に入れた。



Name: tori  ..ぴよぴよ(15ポイント)   Date: 2010/01/17(日) 12:19   No:46397       
Title: 無題    
大学の宿題でわからないので質問させていただきます。

問題が↓です。
文字列中の「語」の数を数える関数を作成してください
この関数をテストするプログラムを記述してください。

結果が
This is a pen. と入力したら
文字 11
語数 4
となればいいと思うのですが
strlen の関数を使えばいいのかなと思うぐらいでほとんど手におえない状態
なので詳しい方教えて頂きたいです。


15ポイント を手に入れた。


Name: softya  ..比類無きプログラマー(91,225ポイント)   Date: 2010/01/17(日) 12:23   No:46400     
Title: Re:無題    
質問に答えるために幾つかお願いがあります。スムーズに回答するために必要な事柄ですのでぜひお願いします。
 ・ 使用している環境やコンパイラ(VisualC++2008ExpressEdition等)、自分が習っている言語の規格(CにもC89やC99など幾つか規格があります)を教えて下さい。
 ・ 自分はどこまで理解しているのか、学校ではどこまで習ったのか明確にして下さい。特に使って良い関数の制限などが分かると答えやすいです。無制限なら無制限と書いて下さいね。
 ・ 自分で書いたソースプログラムがあるなら提示をお願いします。
 ・ ソースが有る場合は、自分が書いたソースプログラムはどこからどこまでなのか教えて下さい。
 詳しくはこの掲示板の使い方をご覧ください→ http://dixq.net/board/board.html


225ポイント を手に入れた。

Name: box  ..ハッカー(150,100ポイント)   Date: 2010/01/17(日) 12:52   No:46403     
Title: Re:無題    
> 文字列中の「語」の数を数える関数を作成してください

この問いに対して

> 文字 11

この出力は余分に思えます。いかがでしょうか。


25ポイント を手に入れた。

Name: tori  ..ぴよぴよ(207ポイント)   Date: 2010/01/17(日) 14:21   No:46416     
Title: Re:無題    
>softya さん
使用している環境やコンパイラはubuntuでEmacsというものを使わされています。
どこまで理解できているかというとオライリーのC実践プログラミングで
9章の変数スコープおよび関数というところまでは進んだのですが実際にCを習い始めてから
半年もたっていないのでほとんど初心者です。
関数については特に制限などは設けられていないので無制限です。
自分で書いたソースコードはありません。
次からは掲示板の使い方を読んでから質問させていただきます。すみませんでした。


>ハッカー さん

>文字 11

この出力は教員が問題に口頭で追加したものだったので
そのことを問題文中に記述するのを忘れていました。
誤解を招いてしまいすみませんでした


192ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(27,572ポイント)   Date: 2010/01/17(日) 14:31   No:46418     
Title: Re:無題    
>自分で書いたソースコードはありません。 
まずは自分で書けるところまでは書いてみましょう。
とりあえず、文字を入力して、受け取るところまではかけますよね?


43ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(92,448ポイント)   Date: 2010/01/17(日) 15:20   No:46422     
Title: Re:無題    
>使用している環境やコンパイラはubuntuでEmacsというものを使わされています。 
gccの可能性が高いですね。
Emacsはエディタです。

「オライリーのC実践プログラミング」の目次を見てみましたが
http://www.oreilly.co.jp/books/4900900648/
ポインタの理解がまだだと思われるので、char型配列で文字列を処理した方が良いと思われます。

ところで文字列は、どの様にしてプログラムで使いますか?
読み込むんでしょうか?
それとも、文字列として定義するんでしょうか?
とりあえずわかる範囲で良いでプログラムを書いてみて下さい。



24ポイント を手に入れた。

Name: tori  ..ぴよぴよ(0ポイント)   Date: 2010/01/17(日) 15:46   No:46424     
Title: Re:無題    
自分で書いてみたソースコードです。
最初はchar型で処理してみようと頑張ってみたのですが
エラーの内容もわからないので諦めてこのような内容になりました。
このプログラムだとgetcharで1文字づつ処理しています。

#include<stdio.h> 
int main() 

  printf("英語の文字列を入力してください\n"); 
  int code; 
  int count = 0,count2 = 0,count3; 
  for (;;) { 
    code = getchar(); 
    if (code =='\n') { 
      break; 
    } 
    if (code == ' ') { 
      ++count; 
    } 
    else 
      ++count2; 
  } 
  count3 = count+1; 
  printf("\n空白 = %d\n", count); 
  printf("文字 = %d\n", count2); 
  printf("語  = %d\n", count3); 

  return(0); 
}


307ポイント を落としてしまった。

Name: SooA [URL]  ..プログラマー(25,490ポイント)   Date: 2010/01/17(日) 16:37   No:46430     
Title: Re:無題    
まずは入力した文字列を、そのまま表示するだけの
プログラムを作ってみてはどうでしょう。

それしてもらって、
自分がどのデータに対して処理を
行おうとしているのか理解することが
必要かと思います。

【Programming Place Plus】
http://www.geocities.jp/ky_webid/index.html
コンテンツのC言語編を読み進めて下さい。


89ポイント を手に入れた。

Name: non  ..比類無きプログラマー(87,776ポイント)   Date: 2010/01/17(日) 16:47   No:46432     
Title: Re:無題    
課題として、語の区切りには何があるか、説明はありましたでしょうか?
スペースだけなら、貼り付けされたプログラムで良いかと思います。



40ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(92,547ポイント)   Date: 2010/01/17(日) 16:47   No:46433     
Title: Re:無題    
惜しいところまでは出来ています。
あとは、codeの処を配列にして添字を1つづつ増やすだけで処理出来ますよ。

ただ、関数になっていないのとテストするプログラムと言う課題なので、1パターンだけ処理するのではダメだと思います。


58ポイント を手に入れた。

Name: qwerty  ..かけだし(1,784ポイント)   Date: 2010/01/17(日) 17:09   No:46434     
Title: Re:無題    
>【Programming Place Plus】
別のスレッドでDixqさんも4つほどリンクを貼られていましたが・・・
C言語を解説しているサイトは本当にたくさんあるのですね

>{  
>  printf("英語の文字列を入力してください\n");  
>  int code;  
>  int count = 0,count2 = 0,count3; 
C言語だと変数はブロックの先頭にまとめて宣言しておかなければならなかったと記憶していますが・・・


195ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(92,594ポイント)   Date: 2010/01/17(日) 17:26   No:46435     
Title: Re:無題    
>C言語だと変数はブロックの先頭にまとめて宣言しておかなければならなかったと記憶していますが・・・ 
それはC89規格の制限でC99規格のコンパイラなら問題ありません。
http://ja.wikipedia.org/wiki/C99


47ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(153,879ポイント)   Date: 2010/01/17(日) 18:28   No:46439     
Title: Re:無題    
> それはC89規格の制限でC99規格のコンパイラなら問題ありません。 

もっといえば、比較的最近のGCCであれば、-std=c99や-std=gnu99オプションを指定していなくても問題ありません。


39ポイント を手に入れた。

Name: qwerty  ..かけだし(1,715ポイント)   Date: 2010/01/17(日) 18:52   No:46440     
Title: Re:無題    
>>softyaさん
>それはC89規格の制限でC99規格のコンパイラなら問題ありません
なるほど。面白いですね。
普段このような規格の改定については意識していないので、
ご指摘いただければこれ幸いとその都度確認させてもらっています。
ありがとうございます。


69ポイント を落としてしまった。

Name: tori  ..ぴよぴよ(61ポイント)   Date: 2010/01/17(日) 22:53   No:46459     
Title: Re:無題    
>>softyaさん
> あとは、codeの処を配列にして添字を1つづつ増やすだけで処理出来ますよ。 
> ただ、関数になっていないのとテストするプログラムと言う課題なので、1パターンだけ処理するのではダメだと思います。

どのように変えればいいのかイメージできなかったので、できればソースコードを書いて頂ければ幸いです。

>nonさん
語の区切りは指定されていなくてただ文字列ということなのでスペースだけだろうと自分で判断しました。


61ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(93,366ポイント)   Date: 2010/01/17(日) 23:09   No:46461     
Title: Re:無題    
>どのように変えればいいのかイメージできなかったので、できればソースコードを書いて頂ければ幸いです。 

じゃあ、ヒントになる部分だけ。

前略
char code[]="this is a pen.";
for( i=0 ; i<strlen(code) ; i++ ) {
 if( code[i] == ' ' ) {
以下略 

関数の呼び出し。

char code[]="this is a pen.";
func( code );

関数側

void func( char code[] )
{
中身略
}


159ポイント を手に入れた。

Name: SooA [URL]  ..プログラマー(25,729ポイント)   Date: 2010/01/17(日) 23:42   No:46463     
Title: Re:無題    
【Programming Place Plus】 
http://www.geocities.jp/ky_webid/index.html 
コンテンツのC言語編
9章の関数を読んでみてください。

>スペースだけだろうと自分で判断しました。
はっきりとさせておいた方が良いでしょう。

大まかな流れは、

1.文字列を入力する gets( str ) ;
2.入力した文字列を関数に送る
3.文字数と語数を調べる
4.値を返す
5.値を表示する

// 戻り値に構造体を使った場合の部分的な抜き出しです。
// 足りない定義は調べましょう。
for( s=strtok(str," "); s!=NULL; s=strtok( NULL," ") )
{
    a.moji += strlen( s ) ;
    a.div++ ;
}


128ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(154,132ポイント)   Date: 2010/01/17(日) 23:43   No:46464     
Title: Re:無題    
言語不明なので勝手に解釈します。
単に空白類文字で区切ればよいのであれば...
#include <iostream>
#include <string>
#include <sstream>

int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream iss(str);
    int n_words = 0, n_letters = 0;

    while (iss >> str)
    {
        ++n_words;
        n_letters += str.size();
    }
    std::cout << "文字 " << n_letters <<std::endl;
    std::cout << "語数 " << n_words <<std::endl;
}

でよいのではないでしょうか?


189ポイント を手に入れた。

Name: softya  ..比類無きプログラマー(93,443ポイント)   Date: 2010/01/18(月) 00:22   No:46465     
Title: Re:無題    
ご本人が
>オライリーのC実践プログラミングで9章の変数スコープおよび関数というところまでは進んだのですが
http://www.oreilly.co.jp/books/4900900648/
とおっしゃっていますので、C++とかstrtokを使ったポインタも難しいんじゃないでしょうか。


77ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(27,951ポイント)   Date: 2010/01/18(月) 01:44   No:46470     
Title: Re:無題    
でも文字列ストリーム便利ですね。

最初の文字数の出力で11を出力してるのに、単語の数が4ってのが僕には違和感があります。
英語使うヒトがどんな感覚なのかは分かりませんが。

特殊な場合を考えていけば何処までも複雑になってくるんですけど
僕がするなら文字と数字以外は区切り文字として数えるかな。
区切り文字が連続してた場合を考えたり、入力が一文だけと限らないなら、ピリオドも数えて単語を分けなきゃいけいですね。
"This is a pen.That is a teacher." //こんなとき


220ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(154,618ポイント)   Date: 2010/01/18(月) 08:04   No:46475     
Title: Re:無題    
そもそも英語だという指定はされていませんね。
英語またはヨーロッパ諸語だとした場合、ピリオドやクエスチョンマークの直後には空白を入れなければならない決まりになっていますので、連続は基本的に考える必要はありません。
連続している場合も実際にはあるのですが、abc co.,ltd.のような会社名だと、co.がひとつの単語になります。
スペイン語の場合、文頭に¿が来ることがあるので、これを除外しなければなりません。
あと、ギリシャ文字やキリル文字を使う言語もありますので、それらを対象にするのかどうかも考慮しなければなりませんし、アクセント記号やトレマ、ßやœなどの特殊文字を使う言語もどうするのか考慮しなければなりません。

というわけで、プログラミング言語も不明、データの言語も不明だと、どこまで考えてよいのかわかりませんね。


321ポイント を手に入れた。




 
[ 1 , ... ]
 
 
管理者画面   RSS   + Powered By 21style +