第13講 3次魔方陣の自動生成 
第9話 セルa[1][0]a[1][1]a[1][2]へ

              for(i4=1;i4<10;i4++){
                a[1][0]=i4;
                if(a[1][0]!=a[0][0] && a[1][0]!=a[0][1] && a[1][0]!=a[0][2]){
                  for(i5=1;i5<10;i5++){
                    a[1][1]=i5;
                    if(a[1][1]!=a[0][0] && a[1][1]!=a[0][1] && a[1][1]!=a[0][2] && a[1][1]!=a[1][0]){
                      for(i6=1;i6<10;i6++){
                        a[1][2]=i6;
                        if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){
                          if(a[1][0]+a[1][1]+a[1][2]==15){

を解説します。

重複検査if(a[1][0]!=a[0][0] && a[1][0]!=a[0][1] && a[1][0]!=a[0][2]){ に抵触

重複検査if(a[1][0]!=a[0][0] && a[1][0]!=a[0][1] && a[1][0]!=a[0][2]){ をパスし、
                  for(i5=1;i5<10;i5++){
                    a[1][1]=i5;
                    if(a[1][1]!=a[0][0] && a[1][1]!=a[0][1] && a[1][1]!=a[0][2] && a[1][1]!=a[1][0]){
へ。

重複検査if(a[1][1]!=a[0][0] && a[1][1]!=a[0][1] && a[1][1]!=a[0][2] && a[1][1]!=a[1][0]){ に抵触

重複検査if(a[1][1]!=a[0][0] && a[1][1]!=a[0][1] && a[1][1]!=a[0][2] && a[1][1]!=a[1][0]){ に抵触

重複検査if(a[1][1]!=a[0][0] && a[1][1]!=a[0][1] && a[1][1]!=a[0][2] && a[1][1]!=a[1][0]){ に合格し、
                      for(i6=1;i6<10;i6++){
                        a[1][2]=i6;
                        if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){
                          if(a[1][0]+a[1][1]+a[1][2]==15){

へ進む。

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に抵触

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に抵触

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に抵触

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に合格しますが、
合計検査if(a[1][0]+a[1][1]+a[1][2]==15){に不合格
以下、

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に抵触

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に合格しますが、
合計検査if(a[1][0]+a[1][1]+a[1][2]==15){に不合格

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に合格しますが、
合計検査if(a[1][0]+a[1][1]+a[1][2]==15){に不合格

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に合格しますが、
合計検査if(a[1][0]+a[1][1]+a[1][2]==15){に不合格

重複検査if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){ に抵触。

こうして、ループ
                      for(i6=1;i6<10;i6++){
                        a[1][2]=i6;
                        if(a[1][2]!=a[0][0] && a[1][2]!=a[0][1] && a[1][2]!=a[0][2] && a[1][2]!=a[1][0] && a[1][2]!=a[1][1]){
                          if(a[1][0]+a[1][1]+a[1][2]==15){
                                ・
                                ・
                                ・
                        }
                      }

の1度目の挑戦は善戦むなしく終わりを告げるのです。








第8話へ 第10話へ

戻る

C言語講義第1部へ
VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)