やりたいこと
・8×8の五目並べを作る
・プレイヤーは入力した場所に白い石〇を置く
・敵は空いているマスにランダムに黒い石●を置く
コード↓
class Program { static void Main(string[] args) { Gomoku gomoku = new Gomoku(); gomoku.Start(); } } class Gomoku { const int rowMax = 8, colMax = 8;//縦、横 Stone[,] board = new Stone[rowMax, colMax]; enum Stone { None, White, Black } public void Start() { const string endKeyword = "end"; string str; int row, col; Gomoku mc = new Gomoku(); Console.WriteLine("-------------------------"); for (int i = 0; i < board.GetLength(0); i++) { Console.Write("|"); for (int m = 0; m < board.GetLength(1); m++) { Console.Write(" |"); } Console.WriteLine(""); Console.WriteLine("-------------------------"); } while (true) { //プレイヤーのターン Console.WriteLine("\nboard[縦][横]のどこに石を置きますか。(endを入力すると終了します)"); Console.Write("縦[1-8]="); str = Console.ReadLine(); if (str == endKeyword) { break; } if (!int.TryParse(str, out row)) { continue; } row--; if (!(0 <= row && row < board.GetLength(0))) { continue; } Console.Write("横[1-8]="); str = Console.ReadLine(); if (!int.TryParse(str, out col)) { continue; } col--; if (!(0 <= col && col < board.GetLength(1))) { continue; } Console.WriteLine("-------------------------"); board[row, col] = Stone.White; for (int i = 0; i < board.GetLength(0); i++) { Console.Write("|"); for (int m = 0; m < board.GetLength(1); m++) { if (board[i, m] == Stone.White) { Console.Write("〇|"); } else { Console.Write(" |"); } } Console.WriteLine(""); Console.WriteLine("-------------------------"); } ArrayList al = new ArrayList(); Random r1 = new Random(); for (int array = 0; array < 64; array++) { al.Add(array); } //敵のターン for (int i = 0; i < al.Count; i++) { Console.WriteLine("-------------------------"); for (int m = 0; m < al.Count; m++) { Console.Write("●|"); } Console.Write("|"); } } Console.WriteLine(""); Console.WriteLine("-------------------------"); Console.WriteLine("push any key"); Console.ReadLine();//入力待ち } }
できていること
・プレイヤーの石を入力した盤面のマスに配置すること
わからないこと
・敵の石を空いているマスにランダムに置きたいが、現在のコードでは●がものすごい数(多分64個を沢山置いてしまっている?)表示されてしまうこと
質問者さんはこの五目並べプログラムをご自身で考えてコードを書きたいのでしょうか。それとも完成した答えが知りたいのでしょうか。
できれば完成した物を見たいです。そこから自分が間違っていた部分や勘違いしていた部分を考えたいです。
そうであれば「C# 五目並べ」などでググッて検索した方が早いですね。ただ、他人のコードを読んで理解するのもそれ相応の力が必要です。
「質問と回答」という形式では得られませんね。
まずは自身の書いたコードと意図を説明できるようになるところからがスタートになります。
> 質問者さんはこの五目並べプログラムをご自身で考えてコードを書きたいのでしょうか
これに回答してない時点でどっかの自力じゃない事がわかる。
学校の課題とかじゃないのかという疑念も拭えない。
https://teratail.com/help/avoid-asking
何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。
> 現在のコードでは●がものすごい数(多分64個を沢山置いてしまっている?)表示されてしまう
その●を表示しているコードは少なくともあなたが正しいと考えて組んだものであれば、意図せず動いている箇所がどこだと思って何を調べ、どうわからなかったのかを説明しよう。
回答2件
あなたの回答
tips
プレビュー