• 締切済み

数独で9×9の枠を3次元配列で管理するにはどのようにしたらいいでしょうか??

宜しくお願い致します。 現在数独を作成しようと色々考えているのですが、フォームを作成したところで完全に止まってしまいました。 全部で81個のテキストボックスを使用することになりますが、一つ一つをコードを書き条件を入れて行き、膨大な量の行数にして仕上げることは恐らく現在のスキルから考えると可能なのですが、配列を使って条件判断させたりするとなると、素人なので見当がつかない状態です・・・ 現状としてはフォームを作った状態で止まってしまっていますので、どなたかにテキストボックスを9×9で並べたものを3次元配列で認識させる方法を教えていただけたらと思っております。 Visual Basic 2005 を使って作成してます。 宜しくお願い致します。

みんなの回答

回答No.1

9*9なら2次元配列ですよね。という前提で。 テキストボックスの名前が textbox00~textbox88として dim textboxarray(2, 2) As TextBox textboxarray(0,0)=textbox00 textboxarray(0,1)=textbox01 (省略) textboxarray(8,8)=textbox88 をPage_Loadあたりにくみこむとか。

munou1go
質問者

お礼

ありがとうございました。 基本的には9×9で2次元配列でもいいのですが、 数独は縦・横で同じ数字が並んではいけないのと同時に 3×3の中でも同じ数字があってはいけないので 3次元での管理はできないものかと思っておりました。 結局は2次元のものと同様に並べたらいいという話になりますが・・・ また何かアドバイスがあったらお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2次元配列でウォッチが出来ない

    2次元配列でウォッチが出来ない 環境 windowsXP Prp Visual Stadio2003 下記の状況で2次元配列のウォッチが出来ません。 1.Visual Stadio2003を起動 2.ファイル→新規作成→プロジェクト 3.プロジェクトの種類はVisual C++プロジェクトでテンプレートからWindowsフォームアプリケーションを選択して、 プロジェクト名に「test」と入力後OKボタン押下 4.Formの適当な位置にボタンを貼り付ける 5.貼り付けたボタンをダブルクリックしてボタンクリックイベントの中(Form1.h)に以下の処理を記述する char cWork[5][20]; memcpy(&cWork[0],"こんにちは",sizeof(cWork)); 7.memcpy(&cWork[0],"こんにちは",sizeof(cWork)); にブレイクポイントを置いて、デバッグ実行をする 8.フォームのボタンを押下してブレイクポイントで止まったら「cWork」をウォッチする 9.memcpy(&cWork[0],"こんにちは",sizeof(cWork)); をステップ実行後ウォッチで内容を確認すると以下のようになります ━cWork{Length=5}char[][][] ┣━ ┣━ ┣━ ┣━ ┗━ ウォッチは出来ませんが、cWorkの中身をテキストボックスに表示や1次元配列に格納したところ cWorkに正しく値は入っていました。 ウォッチ出来ないのはVisualStadio2003のバグなのでしょうか? お分かりになられる方いらっしゃいましたらご教授お願いいたします。

  • 二次元配列でソートがしたい

    二次元配列でソートがしたい 二次元配列でソートがしたい 開発環境:Visual Web Developer 2008 express 言語:Visual Basic 上記開発環境でWebアプリケーションを開発中です。 TextBoxを縦20行横10列の表形式に配置し、左から2番目の列に入力された数値をキーに、昇順に並べ替えができるような入力フォームを作成していますが、参考になるようなサイトが見つからなかったので、どなたか参考になるサイトやサンプルロジックを教えて頂けないでしょうか? よろしくお願いします。

  • textboxの二次元配列で質問

    textboxの二次元配列で質問 Visual Web Developer 2008を使いWebアプリケーションの入力フォームを開発中です。言語はVBです。  複数行のtextboxに入力された文字を連結する方法が分かりません。ネットでいろいろ検索して二次元配列をすれば可能なようですが、分かりやすく書いてあるサイトが見つからず、苦戦しています。列数は10列。行数は50行ぐらいあります。 ↓(サンプル)  例えば、下のような入力フォームのtextboxにあ・い・う・え・お・か・き……と入力された文字列で、buttonをクリックしたら「あいうえおかきくけこ…」と文字列の連結した実行結果を出したい場合です。       列   あ|い|う|え|お| | |   か|き|く|け|こ| | | 行 さ|し|す|せ|そ| | |   た|ち|つ|て|と| | |   な|に|ぬ|ね|の| | |    | | | | | | |    | | | | | | |    textboxが多いので、二次元配列と繰り返し処理(文字がなくなるまで繰り返す)を使って、簡単にできないでしょうか? 初心者なので分かりづらい質問で申し訳ありません。 参考になるページやコードがあったら教えて下さい。 よろしくお願いします。

  • VBのコントロール配列を二次元配列にする方法

    タイトル通りです。 テキストボックスなどをコントロール配列で持つときに二次元配列で持つ方法はないでしょうか? ご回答の方、宜しくお願いします。

  • テキストファイルを二次元配列に

    お世話になります。 テキストファイルを1行ずつ読み込んで二次元配列に格納するプログラムですが、 //最大行数 #define LINE_MAX 10 //行内最大文字数 #define INPUT_MAX 128 char str[LINE_MAX][INPUT_MAX]; というようにして実現しています。 これを行数が分からないテキストファイルでも大丈夫なようメモリを動的に確保したいと考えています。 二つの次元の内、一つを動的に確保するにはどのようにしたら良いでしょうか。

  • 多次元配列の工夫

    現在、あるプログラミングを作成しています。 そこで4次元配列を使用することが必要になってきました。 ---------------------------------------------- 4次元空間 for(a=・・・a++){ for(b=・・・b++){ for(c=・・・c++){ for(d=・・・d++){ if(ある条件が揃った場合) jouken[a][b][c][d]++; }}}} ---------------------------------------------- 以上のようなことをやりたいのですが、 a~cの値は3桁オーダーなので、メモリを食いすぎ、 処理が桁違いに遅くなり(ページング発生?)、 困っています。 これの解決方法としてはどのようなものがありますかね?たとえば、2次元配列を複数個使うなど。 よろしくお願いします。

  • 二次元配列のアルゴリズム

    いま研修でアルゴリズムの基礎を勉強しています。あるテキストで「品目ごとの合計金額と総合計を表示するアルゴリズムを作成せよ」というお題がでたのですが、二次元配列が絡んでくると、どうも分かりません。誰か似たような問題をご存知でしたら、教えて頂けませんか?お願いします。

  • ユーザーフォームのリストボックスの設定を標準モジュール内で取得した配列

    ユーザーフォームのリストボックスの設定を標準モジュール内で取得した配列にしたい。 題名のままの説明ですが、ユーザーフォームのリストボックス値を配列にして動的に動作させるようにしたいのですが、標準モジュールでPublicで配列を宣言しているのですが、うまくユーザーフォームモジュールに渡っていないというか、その配列変数をユーザーフォームモジュール内に書くと配列が存在しません。 というエラーが出てしまいます。 かといってユーザーフォームでPublicで配列を宣言することもできないのでどうやってリストボックスに 配列を設定すればいいのかわかりません。 配列は2次元配列で視覚的に説明するとは列数が3行、行数は標準モジュール内でRedimにより可変します。この配列をそのままレコードセットみたいにリストボックスに設定したのですが、 なにか良い方法はありますでしょうか?

  • VB2005でのTabPageとコントロール配列について

    今テキストボックスをコントロール配列にするために動的に作成しまして、実行時にTabPage上に表示させたいのですが、どのようにすれば表示させる事ができるでしょうか?TabPage上ではなくフォーム上になら表示させることはできました。よろしくお願い致します。

  • C# 配列の配列(多次元配列?)

    C#において、配列の配列中に格納した値を、検索することを 行いたいのですが、格納した値そのものを見ることができません。 まだ、C#を始めて間もないので、配列に格納する時点で、 不備があるかも知れませんが、お願いします。 やりたいこと ・テキストファイル内にある値を、2次元配列または、多次元配列に格納 ・配列に格納した値で、データチェックなどを行う予定  テキストファイル内のデータは、下記内容となり要素数も固定ではなく変動する   A=1,2,3・・・   B=11,22,33・・・ 実際のソースは、 //配列 ArrayList list = new ArrayList(); //配列格納 1レコード毎用 ArrayList listtmp = new ArrayList(); while ((strGenderTextLine = objReader.ReadLine()) != null) {  string strBuffer;  //「=」前の値格納用変数  string[] strBuffer2; //「=」後の値格納用配列  listtmp=null;  //strtmpに「=」前の値を格納  strtmp = TextLine.Split('=').GetValue(0).ToString();  //strtmp2に「=」後の値を格納(配列)  strtmp2 = TextLine.Split('=').GetValue(1).ToString().Split(',');  for (int i = 0; i <= strtmp2.Length - 1; i ++)  {   //[i,0]に、「=」前の値を代入   if (i == 0)   {   listtmp.Add(strtmp);   }   else   {   listtmp.Add(strtmp2[i].ToString());   }  }  //list配列にlistTmp配列を格納(配列の配列)  list.Add(listtmp);  intT = intT + strtmp2.Length;  //行数カウント  intTLine = intTLine + 1;  } ここから、配列「list」内に入っている値を閲覧することができる方法を教えていただければと思います。 宜しくお願いいたします。

このQ&Aのポイント
  • 所有地の排水溝に自作の油水分離器を取り付けようと思っています。
  • ここで水に浮いた油膜を回収しようと思いますが水洗いで繰り返し使える吸着シートは有りませんか?
  • 地方故に通販での入手ができれば助かります。
回答を見る

専門家に質問してみよう