前提
ここに質問の内容を詳しく書いてください。
現在C# で5回勝負のじゃんけんゲームの作成に取り組んでいるのですが、作ったコードに対して実行をしてもユーザー名の入力の箇所で止まってしまい、じゃんけんにまで進めない状況です。
理由が分からず、どなたか教えて頂けないでしょうか?
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ▲▲機能を動作するようにする
発生している問題・エラーメッセージ
ユーザー名の入力の後が実行されない。
### 該当のソースコード ```C# ソースコード
using System;
namespace Ensyuu007
{
static class Program
{
static int CntWin = 0; //勝利回数
static int CntLose = 0; //敗北回数
static int CntDraw = 0; //引分回数
//ユーザー名の入力
static void Main(string[] args)
{
string EnterName = Console.ReadLine();
Console.WriteLine("ユーザ名を入力してください: {0}", EnterName);
Console.ReadLine(); } //じゃんけんを開始するメソッド。 static void Start() { for (int GameCnt = 0; GameCnt <= 5; GameCnt++) { Console.WriteLine("手を入力してください(グー1、チョキ2、パー3):"); //自分の出す手を入力します。 string Myhand = Console.ReadLine(); //正しく入力されたかチェックします。 Check(ref Myhand); //コンピューターとじゃんけんさせます。 Janken(ref Myhand); } } //正しく入力されたかチェックを行うメソッド。 static string Check(ref string Myhand) { Console.WriteLine("手を入力してください(グー1、チョキ2、パー3):{0}", Myhand); //正しく入力されたかチェックします。 Check(ref Myhand); //0,1,2が入力された場合 if (Myhand.Equals("1") || Myhand.Equals("2") || Myhand.Equals("3")) { //入力した数字をそのまま返します。 return Myhand; } //1,2,3以外が入力された場合 else { Console.WriteLine("LOSE(反則負け)"); CntLose++; //敗北回数に加算 return Myhand; } } //コンピュータと自分の入力した手を判別するメソッド static void Janken(ref string Myhand) { // Random クラスの新しいインスタンスを生成する Random ran = new System.Random(); //コンピュータの出す手を1以上3以下に設定する。 string[] com = new string[] { "1", "2", "3" }; string con = ran.Next(3).ToString(); //配列型、変数teに出す名前を設定 string[] te = { "グー", "チョキ", "パー" }; //コンピュータが勝利した場合 if (((Myhand == "1") && (con == "3")) || ((Myhand == "2") && (con == "1")) || ((Myhand == "3") && (con == "0"))) { Console.WriteLine("あなた:" + te.GetValue(int.Parse(Myhand))); Console.WriteLine("コンピュータ:" + te.GetValue(int.Parse(con))); Console.WriteLine("LOSE"); CntLose++; //敗北回数に加算 } //自分が勝利した場合 else if (((Myhand == "1") && (con == "2")) || ((Myhand == "2") && (con == "3")) || ((Myhand == "3") && (con == "1"))) { Console.WriteLine("あなた:" + te.GetValue(int.Parse(Myhand))); Console.WriteLine("コンピュータ:" + te.GetValue(int.Parse(con))); Console.WriteLine("WIN"); CntWin++; //勝利回数に加算 } //あいこだった場合 else { Console.WriteLine("あなた:" + te.GetValue(int.Parse(Myhand))); Console.WriteLine("コンピュータ:" + te.GetValue(int.Parse(con))); Console.WriteLine("DRAW"); CntDraw++; //引分回数に加算 } } static void Resurut() { if (CntWin > CntLose) { Console.WriteLine("総合勝利です"); } else if (CntLose < CntWin) { Console.WriteLine("CPUの総合勝利です"); } else if (CntWin == CntLose) { Console.WriteLine("引き分けです"); } } }
}
https://teratail.com/help/avoid-asking
https://teratail.com/help/question-tips
どこまで自身の思い通りに動作しているか?
どこから思い通りにならないのか?
上記を明確にするために、デバックをしましょう。
明確になったら自身で解決できるかもしれませんし、
自身で解決できなかったら、そこで初めて質問すれば
回答が付くと思います。
とりあえず,質問のコード表示がぐちゃぐちゃになっていたら直すくらいはして欲しいな.
あえてわざわざそういう状態の投稿をしているのでもないだろうから,それを見る側からしたら「これは,意図せず{何かが消えてる,前後している,etc}状態なのかもしれない」と思うわけで.
このままではコードが読みづらいので、質問を編集し、</>(コードの挿入)ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
回答1件
あなたの回答
tips
プレビュー