実現したいこと
- 三次元配列の中にデータを格納した後に、ユーザーが望むと配列が初期化する動作にしたい。
x,y,zと三次元に変換したい。
前提
C#で3マス×3マスの盤面の配列に〇と×の情報を記録したい。
ここに質問の内容を詳しく書いてください。
C#を使い、○×ゲームを作っています。
//○×ゲーム中に記録する配列
public byte[,,] BoardPlace;
//初期化関数
public void InitializationMethod()
{
//現在は無いが、ほかの初期化したい変数があったらここに書く。
//アンサー初期化
BoardPlace.Initialize();
}
発生している問題・エラーメッセージ
エラーメッセージはありません。
該当のソースコード
C#
1usingSystem; 2usingSystem.Collections.Generic; 3usingSystem.Linq; 4usingSystem.Text; 5usingSystem.Threading.Tasks; 6 7namespaceHit_And_Blow 8{ 9 publicclassVariablStorage 10 { 11 //解答用を記録する配列 12 public byte[,,] answer; 13 //2025/05/28 文法の間違いがあり、上記の「public byte[,,] answer;」が正しい表記です。TakaiYさん、ご指摘ありがとうございます。気づけませんでした。 14 //publicbyte[,,]answer; 15 16 //初期化関数 17 publicvoidInitializationMethod() 18 { 19 for(inti=0;i<9;i++) 20 { 21 for(intj=0;j<3;j++) 22 { 23 for(bytek=0;k<3;k++) 24 { 25 Console.WriteLine(i.ToString()+""+j.ToString()+""+k.ToString()+":"+answer[i,j,k]); 26 //ここで変数が使われたことにする。 27 answer[i,j,k]=1; 28 } 29 } 30 } 31 32 //アンサー初期化 33 answer.Initialize(); 34 35 for(inti=0;i<9;i++) 36 { 37 for(intj=0;j<3;j++) 38 { 39 for(bytek=0;k<3;k++) 40 { 41 Console.WriteLine(i.ToString()+""+j.ToString()+""+k.ToString()+":"+answer[i,j,k]); 42 } 43 } 44 } 45 } 46 } 47} 48
試したこと
使用前
「0 0 0:0 ~ 8 2 2:0」
盤面使用後&初期化のためのanswer.Initialize();使用後
「0 0 0:1 ~ 8 2 2:1」
補足情報(FW/ツールのバージョンなど)
Windows11
Microsoft visual studio 2022(バージョン 17.14.2)
デバイス名 DESKTOP-CDQ748B
プロセッサ Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz 2.40 GHz
実装 RAM 8.00 GB
システムの種類 64 ビット オペレーティング システム、x64 ベース プロセッサ
ペンとタッチ このディスプレイでは、ペン入力とタッチ入力は利用できません
###その他
ビジュアルスタジオでのC#が初めてのプログラミングなので分かってない所があります。何卒優しい目で見てください。問題解決に協力をよろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー