質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

851閲覧

C#のジャンケンゲームの作成について

saito_666

総合スコア4

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2022/12/05 03:34

前提

ここに質問の内容を詳しく書いてください。
現在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("引き分けです"); } } }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikukiku

2022/12/05 04:49

どこまで自身の思い通りに動作しているか? どこから思い通りにならないのか? 上記を明確にするために、デバックをしましょう。 明確になったら自身で解決できるかもしれませんし、 自身で解決できなかったら、そこで初めて質問すれば 回答が付くと思います。
fana

2022/12/05 05:17

とりあえず,質問のコード表示がぐちゃぐちゃになっていたら直すくらいはして欲しいな. あえてわざわざそういう状態の投稿をしているのでもないだろうから,それを見る側からしたら「これは,意図せず{何かが消えてる,前後している,etc}状態なのかもしれない」と思うわけで.
y_waiwai

2022/12/05 06:17

このままではコードが読みづらいので、質問を編集し、</>(コードの挿入)ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
guest

回答1

0

ベストアンサー

じゃんけんにまで進めない状況です。理由が分からず、どなたか教えて頂けないでしょうか?

現時点で質問文内で示されているコードをそのまま信じるとすれば,Mainメソッドの中身は以下となる.
この場合,プログラムの動作としてはこの3行分の処理を実施して終わるだけとなるのだから,「じゃんけん」なるものが勝手に動き始めるハズがない.

static void Main(string[] args) { string EnterName = Console.ReadLine(); Console.WriteLine("ユーザ名を入力してください: {0}", EnterName); Console.ReadLine(); }

投稿2022/12/06 02:05

fana

総合スコア11652

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問