マンガでよめる痔のこと・薬のこと

僕はC言語を学び始めた程度ですが、一番簡単に作れるゲームとその作り方(ソース)を教えて下さい。お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

★じゃんけんゲームのソースです。



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

// じゃんけん定数
#define JKN_GOO  (0)
#define JKN_CHOKI (1)
#define JKN_PA  (2)

// 勝敗の定数
#define TYP_KATI (0)
#define TYP_MAKE (1)
#define TYP_AIKO (2)

// じゃんけんの判定関数
int check( int human, int computer )
{
 if ( human == computer ){
  return TYP_AIKO;
 }
 switch ( human ){
  case JKN_GOO:  return ((computer == JKN_CHOKI) ? TYP_KATI : TYP_MAKE);
  case JKN_CHOKI:  return ((computer == JKN_PA) ? TYP_KATI : TYP_MAKE);
  case JKN_PA:  return ((computer == JKN_GOO) ? TYP_KATI : TYP_MAKE);
  default:   return -1;
 }
}

// じゃんけんゲーム
int main( void )
{
 // ゲーム変数
 int count;  // 勝負回数
 int kati = 0; // 勝ちカウンタ
 int make = 0; // 負けカウンタ
 // 一時変数
 int human;  // キー入力の一時変数(人間用)
 int computer; // 乱数発生の一時変数(コンピュータ用)
 
 // (6)じゃんけん勝負を10回行う
 printf( "★じゃんけんゲーム(10回勝負)\n\n" );
 for ( count = 1 ; count <= 10 ; count++ ){
  // (1)人間:3つの状態を入力
  printf( "%2d回目…[1]グー [2]チョキ [3]パー を入力して下さい:", count );
  do {
   // (2)キー入力
   switch ( getche() ){
    case '1': human = JKN_GOO; break;
    case '2': human = JKN_CHOKI; break;
    case '3': human = JKN_PA; break;
    default: human = -1; break;
   }
  } while ( human == -1 );
  
  // (3)コンピュータ:3つの状態を乱数で決める
  computer = (rand() % 3);
  // (4)人間vsコンピュータの勝負
  switch ( check(human,computer) ){
   case TYP_KATI:
    kati++;
    printf( "⇒勝ち。\n" );
    break;
   case TYP_MAKE:
    make++;
    printf( "⇒負け。\n" );
    break;
   case TYP_AIKO:
    printf( "⇒引き分け。\n" );
    break;
   default:
    printf( "⇒エラー。\n" );
    break;
  }
 }
 // (7)結果表示
 printf( "\n★じゃんけんゲームの結果\n" );
 printf( "人間    :%d 回勝ち\n", kati );
 printf( "コンピュータ:%d 回勝ち\n", make );
 printf( "※引き分け回数は %d 回でした。\n", (10 - kati - make) );
 return 0;
}

注意:全角空白をタブ文字に変換して下さい。
    • good
    • 5
この回答へのお礼

ありがとうございます。このソースを使って勉強してみます。

お礼日時:2007/08/26 20:10

>ありがとうございます。

一日50ページのペースで進んでポインタでつまずきました。このポインタの先が「11.関数の作り方」みたいです。数あてゲームはだいたいわかりましたがvoidというのが本になくてわからりませんでした。
ポインタですか。C言語でつまずく人は多いんですよ。
ポインタ入門をいくつか紹介↓自分なりにわかり易い所を読んでください。
http://itpro.nikkeibp.co.jp/article/COLUMN/20061 …
http://www.stackasterisk.jp/tech/program/c01_05. …
http://www.cda.ics.saitama-u.ac.jp/~maekawa/lect …
http://www.binzume.net/library/robo/c08.html

voidについて解説します。
void func(void)
{
//関数の中身
}
という関数があった場合、
関数は値を返すのが普通です。intとかfloatとか。でも値を返さなくてよい関数があった場合は関数名の左側にvoidと書きます。この関数は値を返しませんって意味です。
関数名の右側の()なかにあるvoidは、パラメータを一切受け取りませんという意味です。
両方ともvoidだと何も受け取ったり、何も返しませんってことになりますが、紹介した「数あてゲーム」だとグローバル変数でaで情報を関数submに渡してます。
今見ると「数当てゲーム」のソースコードは、あんまり良くない例ですね。もっとわかり易くソースコード書けます。
subm→chiisai→submと関数呼び出しが深くなる必要はないので、whileループを使ったほうがシンプルで分かりやすくなるでしょう。
C言語の理解力アップのために自分なりに書き換えに挑戦してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。やはりポインタはC言語の難関のようですね。ここは急がず落ち着いて勉強しようと思います。voidの説明もありがとうございました。

お礼日時:2007/08/26 20:14

★簡易ゲーム講座。


>一番簡単に作れるゲームとその作り方(ソース)を教えて下さい。お願いします。
 ↑
 あらら…。とにかくゲームを作りたいんだ。
・いろいろありますが『じゃんけんゲーム』はどうですか?
 仕組みは
 (1)キー入力を待つ。→getch() 関数
 (2)キー入力から『グー』、『チョキ』、『パー』の3つの状態を得る。
 (3)乱数を使ってコンピュータの『グー』、『チョキ』、『パー』を決める。→rand() 関数
 (4)(2)の状態と(3)の状態から勝敗を決める。→switch文で条件分岐
 (5)『勝ちカウンタ』や『負けカウンタ』を増加させる。→kati++、make++
 (6)じゃんけんの勝負を 10 回行ったかチェックする。
 (7)10 回以下なら(1)へ戻り続ける。10 回なら終了して結果を表示。
 こんな感じでどうですか。
・テキスト・ベースのゲームですが基本はしっかりとおさえているはずです。
 ポイントはキー入力、3つの状態、乱数を使ったゲーム性、終了条件の仕組みなどです。
 前回、パズルゲームを作りたいとなっていましたが、パズルを動かすためにキー入力の
 処理は不可欠です。そして条件判断も必要です。終了条件はもっと重要です。
 C言語のテキスト本には載っていない事ばかりです。
 でもこの載っていないことを自分で考えることが重要なのです。→ゲームの『アルゴリズム』と呼ぶ。
 前回の『回答へのお礼』にアルゴリズムはどうやって勉強したらいいでしょうか。となっていましたね。
 まずは基本の if、else、switch、for、while、関数などをしっかりと理解してから、
 それらを使ってコンピュータでどのように処理すれば良いかの手順を考えます。
 最初はイメージがわかなかったり、コツがつかめないので難しく感じるでしょう。
・そこで今回はじゃんけんゲームを通してアルゴリズムを少し紹介したわけです。
 上記の(1)~(7)が『じゃんけんゲーム』のアルゴリズムという事になります。
 それでは上記の(1)~(7)を元に『じゃんけんゲーム』を作って見ましょう。→簡易ゲーム講座。
 まずゲームで必要な変数を整理します。
 (1)じゃんけんゲームの勝負回数を管理する『カウンタ変数』→count
 (2)勝負したときの『勝ちカウンタ』と『負けカウンタ』を用意→kati、make
 (3)人間のキー入力用の変数を用意→human
 (4)コンピュータ用の変数を用意→computer
 上記の4つの変数を用意すれば出来そうです。
・次の回答で『じゃんけんゲーム』のソースを載せておきます。
 いきなりすべてを理解できるとは思えませんが、次のポイントを持っている C 言語のテキストを
 読み直しながら遊んでみて下さい。
 サンプルゲームのポイントは
 (1)変数の宣言と使われ方(役割)。
 (2)for 文による勝負回数。
 (3)getche() 関数によるキー入力と do-while 文の使われ方。
 (4)switch 文の使い方と処理の記述。
 (5)結果表示の printf() 関数の使い方。
 (6)main() 関数と check() 関数に処理を分けている点。
 (7)check() 関数でグー、チョキ、パーの3つの状態を判定するアルゴリズム。
  (a)『human == computer』で引き分け。
  (b)switch 文で人間のグー、チョキ、パー状態での勝ち、負け判定。
 (8)記号定数を利用してのプログラミング。
 (9)check() 関数で使っている条件演算子。→(a ? b : c)という部分。
 以上の項目を持っているテキストなどを使って確認して置きましょう。
 紹介した『じゃんけんゲーム』は自由に改変して構いません。どうぞ。
・以上。→コンパイルして少し楽しんでみて下さい。
    • good
    • 0
この回答へのお礼

長文ありがとうございます。ifなどはちょうど勉強が終わったところです。アルゴリズムは計算とかの手順のことなのですね。それにしてもC言語ってたくさんあるんですね。

お礼日時:2007/08/26 20:07

えっ、この間「プログラミング学習シリーズ C言語1 初めてのCプログラミング」を読み始めたばかりで、そこまで進んじゃいました?


急ぐのも良いですが、C言語の基本を身につけていないと人の書いたプログラムを読みこと自体難しいですよ。
私の紹介した苦Cの練習問題で、最低でも「11.関数の作り方」までの練習問題が簡単に答えられるぐらいの知識はほしいところです。
http://homepage3.nifty.com/mmgames/c_guide/

とりあえず何点か紹介しときます。
http://www5f.biglobe.ne.jp/~ymlab/program/c/kazu …
http://www5f.biglobe.ne.jp/~ymlab/program/c/denn …
http://www5f.biglobe.ne.jp/~ymlab/program/c/blac …
http://homepage3.nifty.com/aokura/src/janken.html
http://homepage3.nifty.com/aokura/src/puzzle.html
http://www.c-production.com/contents/c/sec07.html
さらに複雑ですが、オセロゲーム。
http://www.geocities.jp/civiltool/index/osero/os …
まず見てみて理解できそうか教えてほしいです。
    • good
    • 0
この回答へのお礼

ありがとうございます。一日50ページのペースで進んでポインタでつまずきました。このポインタの先が「11.関数の作り方」みたいです。数あてゲームはだいたいわかりましたがvoidというのが本になくてわからりませんでした。

お礼日時:2007/08/26 15:53

作り方


 1)ゲームの種類を決める
 2)プレイヤーへの報酬/ペナルティを決める
 3)終了方法を決める
大雑把にこんな感じです。

簡単なゲームであれば、テーブルゲームが良いでしょう。
「1から10までの数字から一つをランダムに選び、それを当てさせる」
「1から13までの数字から一つをランダムに選び、それが 7より大きいか小さいかを当てさせる」
「二つのサイコロを振り、合計が偶数か奇数かを当てさせる」
など、実際にあるゲームを思いつくままに作成してはどうでしょう。
報酬や、終了時はその状態を記憶させるかなどは自身のセンスに任せて良いですよ。

ソースを示され、それをそのまま入力しただけではプログラムを組めるようにはなりません。
何をしたいのか、何をさせたいのかを自分で理解したうえでプログラムを組まなければ覚える事はできません。
どのようにすれば、思ったことができるのか・・・どうしても分からないときに他人に頼るようにしましょう。

まったく分からないのであれば、教本にできそうなガイドブックを一冊購入しましょう。
ひとつの例として
 Amazon.co.jp / たのしいC
 http://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81 …
などどうでしょう。
基礎から覚えようという人でも十分理解できる内容です。
    • good
    • 0
この回答へのお礼

ありがとうございます。ソースをそのまま入力するだけではだめですよね。もっと本を読んでいろいろ研究してみます。

お礼日時:2007/08/26 15:44

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC言語の使い道

現在大学でC言語を学んでいるのですが、いまいち目的が分からず
やる気が出なくて困っています。
C言語があればこんなゲームが作れる、など楽しい使い道があれば
精力的に取り掛かれると思うのですが、そのような使い道は何かないでしょうか?

Aベストアンサー

★使い道の例え。
>ただ単純にゲームが好きなので、「楽しい使い道」の例に出しただけです。
>ただC言語を使って作れるなら簡単なものでも作ってみたい、という気持ちはあります。
 ↑
 次の2つの過去質問をどうぞ。
・http://oshiete1.goo.ne.jp/qa3287734.html→『C言語で簡単なゲームを作る方法』
 ↑
 回答者 No.2 さんのリンクや回答番号 No.4 のソースを参考に。
・http://oshiete1.goo.ne.jp/qa3290894.html→『構造体メンバの個数』
 ↑
 こちらは回答番号 No.25、No.26 のソースを参考に。
・インデント部は全角の空白文字になっているのでコピー&ペーストして使うときは
 エディタなどでタブ文字に一括変換して下さい。
 コンパイルすればちょっとしたゲームが動きます。
 ※ただし『じゃんけんゲーム』は getch() 関数を利用しているので Windows 系です。
  Unix系(Linux)では getch() や <conio.h> がないのでコンパイルできないので注意。
・以上。これで少しは C 言語に対してやる気(興味)が出れば良いですね。頑張って下さい。

参考URL:http://homepage2.nifty.com/natupaji/DxLib/

★使い道の例え。
>ただ単純にゲームが好きなので、「楽しい使い道」の例に出しただけです。
>ただC言語を使って作れるなら簡単なものでも作ってみたい、という気持ちはあります。
 ↑
 次の2つの過去質問をどうぞ。
・http://oshiete1.goo.ne.jp/qa3287734.html→『C言語で簡単なゲームを作る方法』
 ↑
 回答者 No.2 さんのリンクや回答番号 No.4 のソースを参考に。
・http://oshiete1.goo.ne.jp/qa3290894.html→『構造体メンバの個数』
 ↑
 こちらは回答番号 No.25、No.26 のソースを参考に...続きを読む

QC言語でゲーム作り テトリス

 忙しい中失礼します。愚問過ぎて済みませんが・・・
 今C言語に興味が沸いて来て、ゲームを作りたい、と思っています。
 最終的にはC言語を駆使してテトリスを作りたい、と思っています。
 あの、アーケードゲームにあるやつ(ブロックの絵があり、カーソルスティック?でブロックの方向を変えて等)、そのまま作りたい、と思っています。
 可能でしょうか?やはりC++言語は必要になってくるのでしょうか?
 要はC、またはC++(←出来ればこの2言語まででテトリスゲームを作成したい)等、Cに関する言語を使って、ゲームを完成させたい、と思っているのです。
 開発環境はWindows XP Home Edition
 C言語:http://www.codegear.com/jp/downloads/free/cppbuilder
 にあります、Borland C++Compiler / Turbo Debugger
 を使っています。

 知らない言語を学ぶ場合、まずはウェブサイトを通して学びたい、と思っています。
 なので、参照となるURLがあればご提示願います。
 結局本だと相性があるので・・・。まあ、ウェブサイトもそうですが、お金がかからない・・・という時点でウェブサイトを探したい、と思っているのです。
 その後必要な本を探す、という手立てで考えています。
 宜しければ教えて下さい。お願いします。

 下記のURLを参照してからこの質問を書き込みました:
 http://oshiete1.goo.ne.jp/qa1601586.html
 http://oshiete1.goo.ne.jp/qa2586359.html


 また、最終的にテトリスゲームなので、
 ステップ1:C言語でじゃんけんゲームを作る必要有、で言語はC言語のみで十分
 ステップ2:じゃんけんゲームでグラフィックを次に付け足す、言語はC言語で作成可、Graphic?関数を使う必要有
 みたいな、手順を踏んでいこうと思っています。先ずは小さなものから・・・始めていこう、と思っています。

 忙しい中失礼します。愚問過ぎて済みませんが・・・
 今C言語に興味が沸いて来て、ゲームを作りたい、と思っています。
 最終的にはC言語を駆使してテトリスを作りたい、と思っています。
 あの、アーケードゲームにあるやつ(ブロックの絵があり、カーソルスティック?でブロックの方向を変えて等)、そのまま作りたい、と思っています。
 可能でしょうか?やはりC++言語は必要になってくるのでしょうか?
 要はC、またはC++(←出来ればこの2言語まででテトリスゲームを作成したい)等、Cに関する言語を使...続きを読む

Aベストアンサー

★テトリス情報
・まずはルール確認
 http://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AA%E3%82%B9→『テトリス』
・参考情報1
 じゃんけんゲームのソースを載せています。参考に。
 http://oshiete1.goo.ne.jp/qa3287734.html→『C言語で簡単なゲームを作る方法』
・参考情報2
 http://www.it-engineer.jp/main/programing/sample/vc23.html→『テトリスを作ろう』
 http://www.nhk.or.tv/kow/program/index.php→『テトリスの作り方』
 http://codezine.jp/a/article/aid/207.aspx→『落ち物ゲームの作り方 第1回:「TETRA」編』
 http://codezine.jp/a/article/aid/228.aspx→『落ち物ゲームの作り方 第2回:「聖夜の落とし物」編』
・C言語サイト
 http://itpro.nikkeibp.co.jp/article/COLUMN/20060929/249347/→『連載 よくわかるC言語』
 http://www9.plala.or.jp/sgwr-t/index.html→『初心者のためのポイント学習C言語』
 http://homepage3.nifty.com/mmgames/c_guide/index.html→『苦しんで覚えるC言語』
・以上。

参考URL:http://www9.plala.or.jp/sgwr-t/index.html

★テトリス情報
・まずはルール確認
 http://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AA%E3%82%B9→『テトリス』
・参考情報1
 じゃんけんゲームのソースを載せています。参考に。
 http://oshiete1.goo.ne.jp/qa3287734.html→『C言語で簡単なゲームを作る方法』
・参考情報2
 http://www.it-engineer.jp/main/programing/sample/vc23.html→『テトリスを作ろう』
 http://www.nhk.or.tv/kow/program/index.php→『テトリスの作り方』
 http://codezine.jp/a/article/aid/207.aspx→『落ち物...続きを読む

QC言語でクイズゲームを作らなければ、いけなくなりました。

C言語でクイズゲームを作らなければ、いけなくなりました。
一つのファイルに問題、選択肢、解答を書き、それを読み込むと言うものです。流れは、

(1)(初めてなら、スコアファイルを新規作成)⇒(2)前回のスコアファイルを読み込む⇒(3)問題ファイルを読み込む⇒(4)解答を入力させる⇒(5)答えが正解か判定し、スコアを更新⇒(6)今回のスコアを棒グラフで表示⇒(7)今回のスコアをスコアファイルに保存⇒(8)続けるか確認。続けない場合終了。続ける場合(2)にループ。
という流れです。また、スコアランキングの表示と問題ファイルを暗号化(メモ帳を開いても読めない)もしなければいけません。
期限が迫っているのに、全然分からないので、出来ればソースを教えて頂けないでしょうか・・・。もしくは、ヒントやアドバイスをお願いします。

Aベストアンサー

> クイズのファイルが読めこめません
kuizu.txt
これよね。

見えていないんじゃないかしら?
フルパスで指定するとか
パスに追加してみるとかしてみてはどお?

Q簡単なシューティングゲームの作り方

簡単なシューティングゲームを作りたいのですが、
方法を教えてください。

API(win32)、DirectXなどを勉強し、C言語等もある程度マスターしていなければ、簡単なやつでも作れないでしょうか?

もしおすすめのサイトや本などありましたら教えてください。
お願いします。

Aベストアンサー

ゲームメーカーを勤めているものです。

>API(win32)、DirectXなどを勉強し、C言語等もある程度マスターしていなければ、簡単なやつでも作れないでしょうか?

ファミコンにあったような簡単なシューティングを作ろうとしても、1から作るには
リソース(グラフィックやサウンド)を除いたコーディングだけでもそれなりに時間はかかります。
(他人の提供してくれているライブラリ等を使えば多少簡単に作れるようになるでしょうが、それでは
後々応用が利かなくなると思います。)
もしC/C++を使ってWindowsでゲームを作りたいのなら
「猫でもわかる」に書かれていることを一通り読んでください。
http://www.kumei.ne.jp/c_lang/
このソースが読めなければ、DirectXSDKについてくるサンプルソースはまず読めません。
ちなみに比較的新しいCPUやグラフィックカードを積んでいるなら、DirectXを使わずWin32APIのみでも
それなりに動きのあるゲームは作れます。

基礎をしっかり固める事が大事です。
書籍では「独習C」、「独習C++」「DirectX9 実践プログラミング」がお勧めです。
また、今やDirectXのサンプルソースもTutorialを除けばC++で作られた独自のフレームワーク上に
のっかっています。
Cだけでなく、C++もある程度の知識が必要です。



しかし#1さんのいわれるようにC/C++でゲームを作るには初心者には敷居は高いです。
まずC#等で作ってみるのも良いでしょう。
また最近はマイクロソフトよりXNA Game Studioという、ゲーム開発環境のβ版が無料で手に入ります。
http://www.microsoft.com/japan/xna/
http://msdn.microsoft.com/directx/xna/gamestudio/
私はMSのカンファレンスを聞いただけで実際に
使ったことないのですが、.netフレームワークを使ってかなり簡単にゲームが作れるそうです。
(なおXNAで使用する言語はC#になります。)

ゲームメーカーを勤めているものです。

>API(win32)、DirectXなどを勉強し、C言語等もある程度マスターしていなければ、簡単なやつでも作れないでしょうか?

ファミコンにあったような簡単なシューティングを作ろうとしても、1から作るには
リソース(グラフィックやサウンド)を除いたコーディングだけでもそれなりに時間はかかります。
(他人の提供してくれているライブラリ等を使えば多少簡単に作れるようになるでしょうが、それでは
後々応用が利かなくなると思います。)
もしC/C++を使ってWindowsで...続きを読む

QC++でscanfは使えない?

お盆休みを利用してC言語の勉強をしようと思っています。
さわり程度にはわかるのですが、ポインタなどを本気で理解してみようと思っています。

PCにvisual studio2013が入っているので、2013のC++のプロジェクトを使って勉強していこうと思っているのですが、下記のように入力すると、scanfでエラーが出てしまいます。

#include "stdafx.h"
#include <stdio.h>

void main()
{
int n;
scanf("%d",&n);
}

C++ではC言語の文法は全て使えると聞いていたのですが、ある程度例外もあるということなのでしょうか?それともなにか原因があるのでしょうか?

Aベストアンサー

scanfはC言語の「文法」ではありません。
「標準ライブラリ」と呼ばれる、ライブラリに含まれる関数の一つでしかありません。


あと、具体的にどんなエラーメッセージが出たのですか?
メッセージの内容を読んで理解することも、プログラミング技術向上に大事なことです。

http://ja.wikipedia.org/wiki/Scanf#scanf.E3.81.AE.E5.95.8F.E9.A1.8C.E7.82.B9.E3.81.A8.E5.9B.9E.E9.81.BF.E6.96.B9.E6.B3.95
にあるように、scanfは使い方を間違えるととても「危険」な関数です。
そこで
http://msdn.microsoft.com/ja-jp/library/9y6s16x1%28v=vs.100%29.aspx
> セキュリティに関するメモ
とあるように、Microsoftとしてはセキュリティ強化版を使うことを推奨しています。
# 根本対策にはなってないという説もありますが。

そのため、設定次第では、scanfを使っただけで警告、またはエラーになります。

scanfはC言語の「文法」ではありません。
「標準ライブラリ」と呼ばれる、ライブラリに含まれる関数の一つでしかありません。


あと、具体的にどんなエラーメッセージが出たのですか?
メッセージの内容を読んで理解することも、プログラミング技術向上に大事なことです。

http://ja.wikipedia.org/wiki/Scanf#scanf.E3.81.AE.E5.95.8F.E9.A1.8C.E7.82.B9.E3.81.A8.E5.9B.9E.E9.81.BF.E6.96.B9.E6.B3.95
にあるように、scanfは使い方を間違えるととても「危険」な関数です。
そこで
http://msdn.microsoft.com/ja...続きを読む

Qゲーム開発がしたい。学ぶべきはC++かC#か。

現在、小さな事務系ソフトウェア開発会社でプログラミングをやっている者です。

思う所あって、ゲーム系の会社への転職を考えています。
応募にあたって作品の提出が必要なことは存じていますが、
どの言語を勉強し、開発すべきかで迷っています。

開発したいゲームとしては、STGかRPGで考えています。
2Dか3Dかは特にこだわりがありません。

過去に行ったプログラミングは、ゲームの関係の薄いものばかりで、
「ゲーム開発」について本格的に学んだことはありません。
学生の頃はロボットを制御するために、C言語のプログラムを書いていました。
PCとマイコンのシリアル通信のために、C#でwindowsアプリケーションも作りました。
C++もほんの一時期だけ使っていました。
卒業してから日が浅いので、これらの知識はまだある程度あります。
会社ではaspxとJavaScriptでWebページの外面、内部の動作をVBで行なっています。

触れたことのあるプログラミング言語を理解度順に並べたら多分こんな感じです。
VB≒C#>C>JavaScript>>>C++

C#とVBは似通った言語なので、VB中心の現在でもなんとなく理解できます。
現在最もメジャーらしいC++が最も経験が少なく、自信がないです。

軽く調べた感じでは、現在のゲーム開発はC++が多いが、
今後はC#やJavaも増えるかもという感じでどちらでゲーム開発を本格的に学ぼうか迷っています。

最もメジャーなC++を改めて学ぶべきか、
それともある程度使えるC#での開発方法を学ぶか、
あるいはその他の言語か、助言をお願いします。

また、開発の参考文献なども教えていただけると幸いです。
よろしくお願いします。

現在、小さな事務系ソフトウェア開発会社でプログラミングをやっている者です。

思う所あって、ゲーム系の会社への転職を考えています。
応募にあたって作品の提出が必要なことは存じていますが、
どの言語を勉強し、開発すべきかで迷っています。

開発したいゲームとしては、STGかRPGで考えています。
2Dか3Dかは特にこだわりがありません。

過去に行ったプログラミングは、ゲームの関係の薄いものばかりで、
「ゲーム開発」について本格的に学んだことはありません。
学生の頃はロボットを制御するために、C...続きを読む

Aベストアンサー

今後の動向不明なソーシャルならPHPとかJavaScriptとかWEB系です。
家庭用ゲームのメインの開発は今後もしばらくはC++が続くと思いますが、C#もツール開発用としては導入されていますし一部のゲームはC#で開発されています。
家庭用ゲーム機なら両方共出来ないとダメじゃないかと思いますね(片一方はある程度出来る程度で良いと思いますが)。

>開発したいゲームとしては、STGかRPGで考えています。
>2Dか3Dかは特にこだわりがありません。

こちらが拘るんじゃなくて向こうの会社が拘る問題ですが、今時は家庭用ゲーム機は3Dじゃないと厳しいと思います。
あと応募作品でSTGだとすごく多いので、それだけで評価が下がります。
逆にRPGは、規模が大きくなるためプログラミングスキルが直に反映されるので応募課題としては悪くないですが市販レベルの操作性に合わせて作ること事態が大変です。
WEB系をやっていたのならオンラインゲームを作るスキルも期待されるでしょう。

とりあえず、どのぐらいのものが作れるかリアルタイム性のあるものを作るということがどういうことなのか理解するためにDXライブラリをご紹介しておきます。
これでラクラクとゲームを作れるようなら本格的にC++とDirectXやC#とXNAで応募作品を作れば良いのでは無いでしょうか?

「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/

同サイトのこっちの掲示板には業界人の回答者も出没します。
「C言語何でも質問掲示板 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewforum.php?f=3

今後の動向不明なソーシャルならPHPとかJavaScriptとかWEB系です。
家庭用ゲームのメインの開発は今後もしばらくはC++が続くと思いますが、C#もツール開発用としては導入されていますし一部のゲームはC#で開発されています。
家庭用ゲーム機なら両方共出来ないとダメじゃないかと思いますね(片一方はある程度出来る程度で良いと思いますが)。

>開発したいゲームとしては、STGかRPGで考えています。
>2Dか3Dかは特にこだわりがありません。

こちらが拘るんじゃなくて向こうの会社が拘る問題ですが、今...続きを読む

Qc言語でできること

c言語は具体的には何ができるのでしょうか
ものすごくがんばれば市販のゲームソフトなども作れるようになるのでしょうか
というのは
今、僕はc言語のプログラミングを勉強しています
コンパイルするとms-dosの黒い画面が表示されますよね。オセロなどのゲームはとても見にくいです。
あのようなゲームではなく、ちゃんと絵があるようなゲームは作れるのでしょうか??
また3Dのゲームはつくれるのでしょうか?
「c言語のゲーム」とググってもありません
c言語だけではできなくてdirectxなどがいることは知っています。
プログラミングを学ぶ上でなにか目標ができたら
それに向けてがんばれると思うので情報よろしくお願いします。
わかりにくい文章ですいません^^;

Aベストアンサー

> c言語は具体的には何ができるのでしょうか
> ものすごくがんばれば市販のゲームソフトなども作れるようになるのでしょうか

およそありとあらゆることができます。
市販のゲームの多くはCで書かれています。

Cそのものはいわば「ノコギリとカナヅチだけ入った道具箱」です。
これだけでは作れるのはせいぜい犬小屋くらいなもの。
だけどこの道具箱、ノミ/カンナをはじめブルドーザやフォークリフトまで飲み込める懐の深いもの。優れた道具と腕次第で超高層ビルだって作れます。

QEnterキーを押されたら次の処理に移るという事をしたい。

コンソールアプリケーション上で文字列を表示させた後、ユーザーがエンターキーを押したら次の文字列を表示するという仕様にしたいのですが、エンターキーだけ入力待ちにするっていうのはどのように書けばいいんでしょうか?

Aベストアンサー

#include <stdio.h>

int main(void)
{
char *str[] = {"abc", "def", "ghi", "jkl"};
int i;

for(i = 0; i < 4; i ++){
while(getchar() != '\n') ;
puts(str[i]);
}
return 0;
}

QRPG等のゲームの作り方を紹介したサイトは?

先ほどの投稿がよくなかったようですので、改めました。

C言語でRPGやシューティングゲームのようなゲームを作りたいのですが、
画像や音声を扱う扱い方がわかりません。

C言語でゲームの作り方を「わかりやすく」紹介したサイトありませんでしょうか。
よろしくお願いします。

Aベストアンサー

RPGやシューティングを作るには確かに画像や音声を扱う必要がありますね。
DXライブラリというライブラリを使うとものすごく簡単にRPGやシューティングゲームなどをC言語で作る事が出来ます。

http://l.huu.cc/g/

こちらのサイトには本当に「わかりやすく」ゲームプログラムの方法が書かれています。

一度参考にされてみてはいかがでしょうか?

参考URL:http://l.huu.cc/g/

Qsleep()関数について

"数秒おきに警報をn回鳴らすプログラム"をC言語で作成しようと
考えています。

プログラム実行環境はWindowsですが、
sleep()関数は使用できないのでしょうか??

仮に使用できない場合、この関数に代わる関数や代替方法が
あれば教えて頂けませんでしょうか? 宜しくお願いします。

Aベストアンサー

正確な動作でも構わなければ
windows.hをインクルードして
Sleep()関数を使いましょう.
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200207/02070061.txt

しかし,正確に数秒おきに動作を行いたい場合はマルチメディアタイマ等を使いましょう.
マルチメディアタイマはミリ秒間隔でコールバック関数を呼び出すことができます.
timeSetEventを用いてコールバック関数の登録を行うことができます.
timeKillEventでコールバック関数の解除を行うことができます.

多分他にも方法があると思うのですが…私はこれぐらいしか知りません^^;

参考URL:http://www.katto.comm.waseda.ac.jp/~katto/Class/GazoTokuron/code/time.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング