第10講 テトリス開発(完成まで)
第1話 ←・→キーでブロックを左右に動かす
←・→キーでブロックを左右に動かすを実現するコード例(変更部分だけ記載)
void block(){
  int i,j,l;
  y=(GetNowCount()-hajimenojikoku)/200;
  char h;
  if (jyu(KEY_INPUT_LEFT) != 0){
    h=1;
    for(i=0;i<4;i++){
      if(chizumodosu[x+p[s][k][i]-1][y+q[s][k][i]]==0){
        h=0;
        break;
      }
    }
    if(h==1)x--;
  }
  
  if (jyu(KEY_INPUT_RIGHT) != 0){
    h=1;
    for(i=0;i<4;i++){
      if(chizumodosu[x+p[s][k][i]+1][y+q[s][k][i]]==0){
        h=0;
        break;
      }
    }
    if(h==1)x++;
  }

  
  for(i=0;i<4;i++){
    //sはブロックの種類 0:長方形 1:正方形 2:L字 3:N字
    //kは回転状態 0:元の状態 1:90°回転 2:180°回転 3:270°回転
    if(chizumodosu[x+p[s][k][i]][y+q[s][k][i]]==1){
      if(y+q[s][k][i]>0)chizu[x+p[s][k][i]][y+q[s][k][i]] = 2 + s;
    }
  }
  for(i=0;i<4;i++){
    for (j = 0; j < 12; j++) {
      for (l = 0; l < 27; l++) {
        if (chizu[j][l] == 2 + i) {
          if(i==0)  DrawBox(20 * j, 20 * l, 20 * (j + 1) - 1, 20 * (l + 1) - 1, kiiro, true);
          if(i==1)  DrawBox(20 * j, 20 * l, 20 * (j + 1) - 1, 20 * (l + 1) - 1, mizuiro, true);
          if(i==2)  DrawBox(20 * j, 20 * l, 20 * (j + 1) - 1, 20 * (l + 1) - 1, aka, true);
          if(i==3)  DrawBox(20 * j, 20 * l, 20 * (j + 1) - 1, 20 * (l + 1) - 1, ao, true);
        }
      }
    }
  }
  
  
h=1; //char h=1;から変更
  for(i=0;i<4;i++){
    if(y+q[s][k][i]+1>0 && chizumodosu[x+p[s][k][i]][y+q[s][k][i]+1]==0){
      h=0;
      break;
    }
  }
  if(h==0){
    for(i=0;i<4;i++)chizumodosu[x+p[s][k][i]][y+q[s][k][i]]=0;
    t=0; //0:作動 1:作動停止
    hajimenojikoku=GetNowCount();
  }
  for(i=0;i<4;i++){
    if(y+q[s][k][i]==1 && chizumodosu[x+p[s][k][i]][y+q[s][k][i]]==0){
      m=2;
    }
  }
}
コピペ用添付ファイル

次の課題は、スペースキーで時計方向に90°回転させるです。
ただし、回転した結果が壁に食い込む場合には、回転させないとします。
結果という言葉を入れているのは、物理的にはこの状態で90°回転させると
角がぶつかってしまいますが、
そこには目をつぶり、回転できることにするからです。
今回はかなりむずかしいと思いますので、
ヒントを入れておきます。
      
if(chizumodosu[x+p[s][(k+1)%4][i]][y+q[s][(k+1)%4][i]]==0){
                  ・



第9講第9話へ   第2話へ

002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
ecliqse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
ecliqse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ