• 締切済み

テトリスを作りたいんですげど・・・・・

sankaku197の回答

回答No.5

・テトリスのブロックをランダムで出力する方法 C言語の標準関数でよければ、rand()というものがあります。 例えばブロックが5種類の場合、各ブロックに番号を割り当てておきます。 int num = rand()%5; とすれば0~4の値が返ってくるので、次に出すブロックが決まります。 ・ブロックを下に落とす方法と左右に動かす方法 http://www.geocities.jp/ky_webid/win32c/025.html キーを押した時、離した時を検知してくれるようです。 例えばWM_KEYDOWNしたら落ちる速度があがる、WM_KEYUPしたら元に戻る。 とすれば押しっぱなしも表現できます。

関連するQ&A

  • テトリスの回転方法

    ブロックの回転方法がセガのアーケード版テトリス、アリカのテトリス・ザ・グランドマスターと同じで家庭用(PCソフト含む)のソフトを探しています。 以前、スーパーファミコンのテトリスをしましたが 回転方法が異なっていました。(BPSという会社名だったと思います。)

  • テトリスの作り方について質問します。

    テトリスの作り方について質問します。 ゲームプログラミングの勉強をしています。 今のお題はテトリスなのですが、少々行き詰ってしまいました。 今の進行状況ですが、 落下ブロックの生成 ↓ 自動落下処理 ↓ キー判定でブロック移動処理 ↓ 徐々にブロックが落ちてきて、一番下のラインまで落ちる までいったのですが、その次のブロックの着地処理といいますか、落下ブロックが下まで落ちた時に積み上がる処理のイメージが湧かずに困っています。 まだ、『積み上がったブロックが揃っている段があるか』まで実装するつもりはありませんので、まず『積み上がるブロックの表現』について悩んでいます。 例えば、積み上がるブロック用のPictureBoxを用意して、落下ブロックをコピーして描画していく、とか、背景になっている親コントロールに直接描画してしまう、とか。 いずれにしても、後々、『積み上がったブロックに揃っている段があり、そのラインが消えて、そこから上のブロックがダンッ!と落ちる』処理がやり易くなる方法を探しています。 何かアドバイスをください。

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

     忙しい中失礼します。愚問過ぎて済みませんが・・・  今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++初心者がテトリスもどきを作ろうと思っているのですが、 mainで上からブロックを落としながら、画面の下の方でそのブロックを置く場所を移動できるようにしたいのですが、ブロックをランダムに落とすことができません。。 しかもブロックが下りてきている間は移動操作ができません。。 移動する関数を作ってよびだしても、移動する操作を無限ループにしているので、今度はブロックが落ちてきません。。 解決策はありますか?説明がわかりにくくて申し訳ないです。

  • ■質問事項

    ■質問事項  C言語にて、txtファイルを読み込んで検索した文字列が存在した場合、  その行の1行下の行を出力する方法について ■背景  事務系の仕事で、余計なデータが多く含まれるtxtファイルがあります。  そこで、必要なデータだけ出力できるように、C言語にてプログラミング  してみました。  しかし、検索した文字列の存在する行を出力することはできるのですが、  必要なデータは検索した文字列のひとつ下の行にあります。  ポインタに関してはまだ勉強不足な点もあり、  なかなかうまく動作してくれません。  ご教授いただければ幸いです。

  • ヒープソート

    c言語 でランダムに文字を出力し、 それをヒープソートして昇順し、ならべかえる簡単なプログラムを教えていただけませんか?

  • 乱数生成について

    c言語のプログラムで、1と-1をランダムにn個出力するプログラムを書きたいと思っています。どのようにすればいいでしょうか。

  • ゲーム作成のプラットフォーム

    テトリスのようなアイデア次第のゲームって色々ありますが、初心者にも作りやすいゲームのプラットフォームにはどういったものがあるのでしょう? もちろん、PSなどは知ってますがFLASHやJAVAとかいう環境でもありとのこと。C言語など全く分かりませんがこういったプラットフォームだと何か違うのでしょうか? また、こういった専門的なプログラミング技術に不慣れでも比較的入りやすいプラットフォームってあるのか知りたいです。作成するゲームのイメージはブロック崩し、倉庫番、テトリスのようなものです。

  • 完全な乱数を生成する方法

    C言語で乱数を生成するときに、今まで srand(time(NULL)); を使用していたのですが、それだと1秒以内に複数の処理を行った際に、 同一の乱数が生成されてしまいます。 時間にとらわれずに完全にランダムな数字を出現させるにはどのような方法を取るのが簡単なのでしょうか? よろしくお願いします。

  • 7行テトリスコードで分からない所があります

    某所の以下のテトリスのコードなのですが、何点かわからない点があります。初歩的な質問も混ざっているかもしれません。理解できるというお方おりましたらご教授いただけると幸いです。 下記の左の数字は行番号で、ソースを読む際の目安にしていただければと思います(大体の番号です;) ソース http://zapanet.info/blog/item/1125 7      d=K-37?1:-1 // d:x方向の差分 ★d=K-37がtrueなら1、falseなら-1を返すと私は読んだのですが、d=K-37がtrueというのはどういう意味か分かりません。どういう意味なのでしょうか? 10        f+=Z[h+E[i]+d]==S; // 移動先が空白かどうか ★fに配列Zの添字h+配列Eの添字i+dを足したものをfに代入。までは多分あっていると思うのですが、次の==Sの意味がわかりません。どうよめばよいのでしょうか? 17        v=Math.round(p/12); // 回転先の x 座標 18        w=p-v*12; // 回転先の y 座標 19        C[i]=w*12-v; // 回転先の座標計算 ★なぜpを12で割って丸めているのでしょうか?17、18、19とどういう計算をしているのでしょうか? 24      t*!f?E=B[t]=C:0; // すべて空白なので回転決定 ★t*fの否定がtrueならばEにB[t]を代入するのは分かりますが、Cはどこにはいるのでしょうか?=が2つ続いたときどう読めば良いでしょうか? 40    for(j=11;--j&&Z[i*12+j]==S;); // そろったラインを検索 ★j=11から、1減らしたjかつ配列Z添字i*12+jがSになるまで・・・3つめの;の後ろがありませんが、これはどういう意味でしょうか? そして、for()の後ろに;がありますが、それはどういう意味でしょうか? 43      for(j=++i*12;j>2*12;)Z[j]=Z[j---12] // 全体を一段下げる ★Z[j]=Z[j---12]の---12の意味は、12を2減らしたのを・・・であっていますか? 51  Z[5]!=S?setTimeout(Y,99):0; // 入り口にブロックがあったら終了 ★配列Z添字5がSじゃなければset~、Sなら0を返すで読みはあっていますか? 59 for(K=t=P=i=0;i<240;){ ★K、t、P、iに0をセット、iが240以下になるまで・・・これも2つめの;の後がないのですがどうなっているのでしょうか? 61  Z[240+i]=Z[i]=++i%12<2||i>228?S="□":" "; // 床と壁の設定、番兵にもなる ★Z[240+i]、Z[i]に++i%12を代入したものが2以下または、i>228がtrueなら"□"、falseなら" "を返す。で読みはあっていますか?