第18講 テトリス開発(完成まで)
第8話 次のブロックの予告するの洗練化その1
078予告を実現するコード例(変更部分だけ記載)
void yokoku(){
  int a,i;

  for(a=0;a<4;a++){
    for(i=0;i<7;i++){
      if(iro[1]==0)DrawBox(300 + 20 * p[s[1]][k[1]][a], 60 + 20 * q[s[1]][k[1]][a], 299 + 20 * (p[s[1]][k[1]][a] + 1), 59 + 20 * (q[s[1]][k[1]][a] + 1), kiiro, true);
      if(iro[1]==1)DrawBox(300 + 20 * p[s[1]][k[1]][a], 60 + 20 * q[s[1]][k[1]][a], 299 + 20 * (p[s[1]][k[1]][a] + 1), 59 + 20 * (q[s[1]][k[1]][a] + 1), mizuiro, true);
      if(iro[1]==2)DrawBox(300 + 20 * p[s[1]][k[1]][a], 60 + 20 * q[s[1]][k[1]][a], 299 + 20 * (p[s[1]][k[1]][a] + 1), 59 + 20 * (q[s[1]][k[1]][a] + 1), aka, true);
      if(iro[1]==3)DrawBox(300 + 20 * p[s[1]][k[1]][a], 60 + 20 * q[s[1]][k[1]][a], 299 + 20 * (p[s[1]][k[1]][a] + 1), 59 + 20 * (q[s[1]][k[1]][a] + 1), ao, true);
      if(iro[1]==4)DrawBox(300 + 20 * p[s[1]][k[1]][a], 60 + 20 * q[s[1]][k[1]][a], 299 + 20 * (p[s[1]][k[1]][a] + 1), 59 + 20 * (q[s[1]][k[1]][a] + 1), siro, true);
      if(iro[1]==5)DrawBox(300 + 20 * p[s[1]][k[1]][a], 60 + 20 * q[s[1]][k[1]][a], 299 + 20 * (p[s[1]][k[1]][a] + 1), 59 + 20 * (q[s[1]][k[1]][a] + 1), midori, true);
      if(iro[1]==6)DrawBox(300 + 20 * p[s[1]][k[1]][a], 60 + 20 * q[s[1]][k[1]][a], 299 + 20 * (p[s[1]][k[1]][a] + 1), 59 + 20 * (q[s[1]][k[1]][a] + 1), murasaki, true);
    }

  }
}
コピペ用添付ファイル

これでも、まだ芸がありません。
ちょっと工夫すると、さらに8行圧縮できます。
それは、配列
int irosentaku[7]={kiiro,mizuiro,aka,ao,siro,midori,murasaki};
を定義することです。
青の部分を8行圧縮して下さい。




第7話へ  第9話へ
a

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

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ