テトリスを作りたい

アバター
hakka
記事: 0
登録日時: 14年前
住所: 福岡県

テトリスを作りたい

投稿記事 by hakka » 14年前

テトリスを作る前の四角を画面いっぱいに表示させるのだが、既に⑨な自分にとって難解であるorz

CODE:

#include //おまじないみたいなものだろう

int main()//メインループが始まることを意味してる
{
	int stage[21][12] = {0};//疑問①
	int i, j;//整数型の変数iとjを用意してるのかな?

	for(i = 0; i<21; i++)//iに初期値0を入れて21以下だったら+1して{}中を実行すると言う意味なのかなぁ・・・
	{
		for(j = 0; j<12; j++)//やってることは上と一緒
		{

			if(stage[i][j] == 0)//疑問②
			{
				printf("□");
			}

		}
	printf("\n");//改行する
	}

return 0;//おまじない?
}
疑問①:int stage[21][12] = {0};
な・・・なんぞこれ・・・配列を作ってることは分かるんだけど、2個作るの?座標みたいに2個作ってるのかなぁ・・・
よし、2個作ると仮定しよう。あれ、{0}を代入・・・?1個じゃねーか!
ううむ・・分からん


疑問②:if(stage[j] == 0)
例えばi=2 j=3のときはどうなるんだろう・・・{2,3}=0ならばっていってるようにしか見えない・・・ううん・・・@д@


そもそも、いまいちfor内で何をしているか分からないのであった・・・!だめだこの⑨早く何とかしないと・・・

アバター
パコネコ
記事: 139
登録日時: 15年前

Re: テトリスを作りたい

投稿記事 by パコネコ » 14年前

1:全部に0を代入だったかな?
人が使ってたからそうだと思ってたです。
(2次配列かな?マップみたいな感じ)
2:1ですべてに0を代入してたら解決ですよね。

forの意味はすべてのブロックを確認しているんですにゃ。
そして中身が0ならこれを描写とか1ならこれを描写ってやってブロックを表現します。

returnは関数(main)から抜け出すって意味ですニャ。
関数について勉強するときが来ると意味がわかるにゃ。

===
2について
i=2,j=3のとき
とかって考え方はあってるにゃ。
座標みたいなものにゃ。
数学や算数でグラフや表を書くことってあるにゃ?
その表とかで座標を指定することってないかにゃ?
x=2,y=3のとき
座標(2,3)みたいな感じに?
それと同じで[2][3]は横に2番目、縦に3番目の値を知りたいという意味にゃ。
(まぁ人によって縦と横が反対だったりもするがニャ・・・)

Rom
記事: 25
登録日時: 15年前

Re: テトリスを作りたい

投稿記事 by Rom » 14年前

int stage[21][12]は
横に12列、縦に21列あるってことだと思う
  1,2,3,4,5,6,7,8,9....11,12
1{0,0,0,0,0,0,0,0,0....0,0}
2{0,0,0,0,0,0,0,0,0....0,0}
3{0,0,0,0,0,0,0,0,0....0,0}
~~~~~~~~~~~~~~~~~~~~~~~~~
21{0,0,0,0,0,0,0,0,0....0,0}

こんな感じのグラフってか表みたいな感じ

stage[2][3]なら
  1,2,3,4,5,6,7,8,9....11,12
1{0,0,0,0,0,0,0,0,0....0,0}
2{0,0,0,0,0,0,0,0,0....0,0}
3{0,0,0,0,0,0,0,0,0....0,0}
~~~~~~~~~~~~~~~~~~~~~~~~~
21{0,0,0,0,0,0,0,0,0....0,0}

赤いところをさしてる
つまりfor文ではすべてに0をだいにゅうしてるってこと

アバター
へろりくしょん
記事: 92
登録日時: 15年前

Re: テトリスを作りたい

投稿記事 by へろりくしょん » 14年前

テトリスよりぷよぷよの方が好きだったりする私が通りますよっと。

テトリスってアレですよね。 手とリス。 手乗りリスですか? 手取酢だったら、手に取ったお酢って事でしょうか。 よく分かりません。

疑問(1)ですが、sttage[10] だと、縦あるいは横に1列並んだという状態しか表現出来ません。
stage[21][12] だと、縦と横つまり、方眼用紙のような状態を表現可能ですね。

stage[21][12] = {0}; は、stage[0][0] に 0 を代入してます。 残りは省略しているだけですね。
配列の初期化指定子が省略された場合、残りの要素は0でクリアされる事が規格により保証されています。


疑問(2)はその通りの解釈で問題ありません。
stage[j] の値が 0 だったら、"□" を表示しなさい。 ただそれだけの意味です。


ところで、(9)ってなんですか?

アバター
みけCAT
記事: 6734
登録日時: 14年前

Re: テトリスを作りたい

投稿記事 by みけCAT » 14年前

へろり さんが書きました:ところで、(9)ってなんですか?
「(9)」(まるきゅー)とは、「馬鹿」のことです。
詳しくは、「チルノ」「東方花映塚」などでググってみてください。

アバター
hakka
記事: 0
登録日時: 14年前
住所: 福岡県

Re: テトリスを作りたい

投稿記事 by hakka » 14年前

うおぉ、いつのまにかコメントついてた!みなさん、ありがとうございます。
なるほど、
int stage[21][12] = {0};
は12:21の全部0がついてる方眼紙を作ってるイメージですね。
それで
if(stage[j] == 0)
でi:jの座標を0かどうか確認してるわけですね!
みなさん、分かりやすい解説ありがとうございました。

アバター
へろりくしょん
記事: 92
登録日時: 15年前

Re: テトリスを作りたい

投稿記事 by へろりくしょん » 14年前

みけCAT さんが書きました:「(9)」(まるきゅー)とは、「馬鹿」のことです。
詳しくは、「チルノ」「東方花映塚」などでググってみてください。

なるほど。

マルキューチルノは美味しそうだけどー かなこーの粥で我慢しとこ太らせて食べるのだぁ! の歌詞の意味がようやく理解できました。