落ちものゲーム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kenji3448

落ちものゲーム

#1

投稿記事 by kenji3448 » 8年前

こんばんは
cの問題を解いていて、コンパイルはできたのですが、ランタイムエラーとなってしまい困っています。
自分で調べてみて何となく文字列のところがまずいと思うのですが直し方がわかりません。
どなたか助けていただけると嬉しいです。
コード内の間違ってそうなところに★をつけます

問題
自作の落ちものゲームを開発することにしました。 ゲームの仕様は次のようになっています。

・ゲームは縦幅 H、横幅 W の長方形のフィールドで行われます。
・ゲームが始まると、様々なサイズの長方形がフィールドの上方から一つずつ順番に落ちてきます。
・落ちてくる長方形の直下に他の長方形もしくはフィールドの底辺がある場合、接触したとみなして長方形の位置は固定されます。
手始めに、上記の仕様に従って落ちてくる長方形の動きをシミュレーションしましょう。
N 個の長方形が落ちてきた後のフィールドの状態を表示するプログラムを書いてください。

入力される値
H W N
h_1 w_1 x_1
h_2 w_2 x_2
...
h_N w_N x_N
・1 行目には 3 つの整数 H, W, N がこの順に半角スペース区切りで与えられます。
 H はフィールドの縦幅を、W はフィールドの横幅を、 N は落ちてくる長方形の個数を表します。
・続く N 行のうち i 行目 (1 ≦ i ≦ N) には i 番目に落ちてくる長方形のサイズと落ちてくる位置の情報が入力されます。
 ここではこの長方形の縦幅 h_i、横幅 w_i、長方形の左端とフィールドの左端の距離 x_i がこの順に半角スペース区切りで与えられます (問題文中の図を参照)。
・入力は合計で N + 1 行であり、入力最終行の最後に改行が 1 つ入ります。

エラー
Runtime error(Exit status:139(Invalid memory reference))

コード:

#include <stdio.h>
int main(void) {
//数値の読み取り 
	int tate,yoko,kosuu,buro[40][3],q=0,s; 
	char mozi[40][40];
	scanf("%d",&tate);
	scanf("%d",&yoko);
	scanf("%d",&kosuu);
	for(int i=0;i<kosuu;i++){
		for(int j=0;j<3;j++){
			scanf("%d",&buro[i][j]);
		}
	}

//全部ブロックがない状態にする
	for(int i=0;i<tate;i++){
        mozi[i][yoko]='\0';//★★★★
		for(int j=0;j<yoko;j++){
		mozi[i][j]='.';//★★★★
	}}

//ブロックを置く場所を調べる
	for(int i=0;i<kosuu;i++){
		q=0;
		for(int j=tate-1;j>=0;j--){
			for(int k=buro[i][2];k<buro[i][2]+buro[i][1];k++){
				if(mozi[j][k]=='#'){
					q=1;
					s=j;
					break;
				}
			}
			if(q==1)break;
		}

//ブロックを置いていく
				for(int m=(s+q);m<(buro[i][0]+s+q);m++){
			for(int n=buro[i][2];n<(buro[i][1]+buro[i][2]);n++){
				mozi[m][n]='#';//★★★★
			}
		}
	}

//解答の出力
	for(int i=tate-1;i>=0;i--){
		for(int j=0;j<yoko;j++){
		printf("%c",mozi[i][j]);
	}
	printf("\n");
	}	
	return 0;
}

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 落ちものゲーム

#2

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

もしかして、これはpaizaの問題ではないでしょうか? (勘違いならごめんなさい)
paizaの問題やそれの解答を不特定多数が閲覧可能な場所に掲載することは、paizaの利用規約で禁止されています。
第3章 paiza

(中略)

第11条(禁止行為)

利用者等はpaizaの利用にあたり、以下の各号のいずれかに該当する行為または該当すると当社が判断する行為をしてはなりません。

(中略)

(3)ブログ・SNS等の各種媒体(インターネット媒体に限られず、不特定多数が閲覧可能なものを全て含む。)上において、当社がpaizaで出題した問題の内容、当該問題に対する解答、解答へのヒント等の示唆およびカンニング等の不正を助長する内容等を掲載する行為。
オフトピック
ビームが反射する箱も、怪しいと思いながらつい勢いで答えてしまいました。
私のミスです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る