あああああああああああああああああああああああああああああああああああああああああ
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
乱暴な実装で良いなら、Form1側でPlayer1,Player2,boardの各変数をプロパティとして定義し、game側のメソッドの引数のForm1を渡すようにすれば参照させることができます。
c#
1// Form1側の実装例 2public class Form1{ 3 // publicなプロパティを定義 4 public int Player1{ get; set; } 5 public int Player2{ get; set; } 6 public int[][] borad { get; set; } 7//以下略
c#
1// gameの各staticメソッドはこのように実装する 2 private static int Reverse(Form1 form1, int y, int x, int m_y, int m_x) 3 { 4 int stone = CountStone(y, x, m_y, m_x); 5 for (int i = 1; i <= stone; i++) 6 { 7 form1.board[y + m_y * i, x + m_x * i] = form1.Player1;
投稿2020/07/02 06:52
総合スコア4447
0
Form1クラスからGameクラスは参照可能なのでしょうか?
あと、Gameクラスのinternalメソッドを実行できればいいのでしょうか?
本当は、もっとクラス設計を考えた方がよいと思うのですが、手っ取り早く動かしたいのであれば、以下の方法で行うことが可能です。
・internalメソッドの引数にboard[,]配列とPlayer1変数,Player2変数を渡す。
・internalメソッドより呼び出されるprivateメソッドにも、必要に応じ、受け取ったboard[,]配列とPlayer1変数,Player2変数を渡す。
ただ、これなら、わざわざGameクラスを作る必要はなく、Form1クラス内で行った方がよっぽど良いように思います。
各メソッドがstaticでしかないということは、いわゆる関数ライブラリでしかないのです。
Gameクラスに何をやらせたいのかよく分かりませんが、「もっとクラス設計を考えた方がよい」と思ったのは、そんなところからです。
投稿2020/07/02 06:43
総合スコア772
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。