第17講 テトリス開発(ゲームオーバー設定まで)第8話 座標xを壁に食い込まない範囲でランダムに設定
を実現するコード例(変更部分だけ記載)
void gamemain(){ //ゲーム画面
chizusakusei(); //地図作成(壁建設)
if(t==0){
s=rand()%4; //sはブロックの種類 0:長方形 1:正方形 2:L字 3:N字
k=rand()%4; //kは回転状態 0:元の状態 1:90°回転 2:180°回転 3:270°回転
if(s==0){
if(k==0)x=1+rand()%8;
if(k==1)x=1+rand()%10;
if(k==2)x=2+rand()%8;
if(k==3)x=1+rand()%10;
}
if(s==1){
if(k==0)x=1+rand()%9;
if(k==1)x=1+rand()%9;
if(k==2)x=2+rand()%9;
if(k==3)x=2+rand()%9;
}
if(s==2){
if(k==0)x=1+rand()%9;
if(k==1)x=1+rand()%8;
if(k==2)x=2+rand()%9;
if(k==3)x=3+rand()%8;
}
if(s==3){
if(k==0)x=1+rand()%9;
if(k==1)x=2+rand()%8;
if(k==2)x=2+rand()%9;
if(k==3)x=2+rand()%8;
}
t=1;
}
block(); //ブロックを描く
}
コピペ用添付ファイル
解説
うっかり勘違いしやすいので、
void gamemain(){ //ゲーム画面
chizusakusei(); //地図作成(壁建設)
if(t==0){
s=rand()%4; //sはブロックの種類 0:長方形 1:正方形 2:L字 3:N字
k=rand()%4; //kは回転状態 0:元の状態 1:90°回転 2:180°回転 3:270°回転
s=0;
k=0;
・
・
・
}
等と16通りのすべてパターンについて動作テストをする必要があります。
次の課題は、ブロックが天井に到達したら、
ゲームオーバにするということです。
今回はノーヒントにします。
賢い皆さんですから、
大丈夫ですよね。
第7話へ 第9話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ