2017-09-20 3 views
0

私はこのスクリプトのクラスのためにこの.BATプロジェクトに取り組んでいます。私はこれまでにロックやペーパーバットファイルが閉じます。私もこの問題について私の教授に尋ねてきましたが、解決策を見つけるためにそれに取り組んでいます。可能であれば、その解決策を最初に見つけたいと思います。あなただけのすべての人が持っている場合には、スクリプト全体このプロジェクト名はrps.bat呼ばれ https://github.com/CyborgVillager/Rock-Paper-Scissors/issues/1.BATは答えが入力されたときに閉鎖し続ける

、それは任意の鐘を鳴らす場合イムわからないを見ることができるように

は私もgithubのリンクを作ってきましたハハの前にこれをしました。とにかく、これに対する解決策を見つけようとしているうちに、あなたの助けが大いに評価されます。

REM Ask the player to make their choice 
    SET /p answer= Type either rock, paper, or scissors: 

    GOTO :EOF 

    REM This procedure randomly determines the computer's choice 

    :GetComputerChoice 

    REM Get a random Number 
+0

私は/ペーストをコピーし、GitHubのコードを実行する場合、私は質問に答えるとき、私はエラーを取得します。 '指定されたバッチラベルが見つかりません - Continue'と'コマンドの構文が間違っています。 ' –

+0

これも... GOTO:Continue'が見つかりましたが、これを 'Contunue'と宣言しました。明らかに... ...:Contunue'!= ':Continue' –

+1

質問からスニペットについて(ちょうど_GitHub_で同じことに気づいた):あなたの' SET/p'コマンドの後(ユーザ入力を読み込んで 'answer ')、あなたは' GOTO:EOF'を持っています。これはprogram_の_endと似ているので、指示通りに動作します。 – CristiFati

答えて

0

2の端にあるもの... ...私はそれを残しておきますので、GOTO :MyEndingGOTO :EOFを変更すると、影響を与えることはありません...

私はあなたのコードで2の問題を発見しました。

...あなたは:Contunueをラベルとして宣言しましたが、あなたはGOTO :Continueを行っています。 :Contunue!= :Continue以降の問題です。

その後、この1 ... はあなたのコードのこの部分があるが、ラベルCompareChoicesに、あなたはその1つの以下の他のif文を包んだかのルックスによって)

IF /I %answer% == rock (
IF %CardImage% == rock (
SET results="You Tie" 
SET /a NoTies = NoTies +1 
) 

が不足しています。 ..私はこの

IF /I %answer% == rock (
IF %CardImage% == rock (
SET results="You Tie" 
SET /a NoTies = NoTies +1 
) 

IF %CardImage% == scissors (
SET results ="You Win" 
SET /a NOWins = NoWins +1 
) 

IF %CardImage% == paper (
SET results ="You Lose" 
SET /a NOLosses = NoLosses +1 
) 
からここ

行方不明)行く推測しています0

これに。最後の行に)を追加しました。

IF /I %answer% == rock (
IF %CardImage% == rock (
SET results="You Tie" 
SET /a NoTies = NoTies +1 
) 

IF %CardImage% == scissors (
SET results ="You Win" 
SET /a NOWins = NoWins +1 
) 

IF %CardImage% == paper (
SET results ="You Lose" 
SET /a NOLosses = NoLosses +1 
)) 

結局のところ...ゲームの結果は間違っていますが、少なくともプログラムが実行されています。結果を把握するまであなたに);またはそれについて新しい質問をする?

ラベル名を固定するとThe system cannot find the batch label specified - Continueが修正され、不足しているものを修正すると)にはThe syntax of the command is incorrectが修正されます。

アドバイスありがとうございました...あなたが積極的にbatファイルを作成してトラブルシューティングを行っている場合は、ファイルをダブルクリックしないでください。代わりに、CMDを実行し、その中からbatファイルを実行します。違いは、既存のCMDインスタンスからダブルクリックするのではなく、実行中にCMDプロンプトが画面に表示されることです。したがって、あなたがスクロールアップした場合に行ったことを確認することができます。

Batファイルをダブルクリックすると、プログラムの実行が終了するとすぐにCMDプロンプトが消えます(スクリプトの最後に一時停止またはタイムアウトがない限り)。

+0

フィードバックありがとう!これは本当にたくさんの笑を助け、他の人たちにも協力してくれてありがとう! – CyborgVillager

0

GOTO :EOFは特別なコマンドです。あなたのコードが「正しく」動作するように、ファイルの最後に移動します。

https://technet.microsoft.com/en-us/library/bb490914.aspx

+0

例としては表示されていませんが、 'GOTO:LabelName'も同様です(デフォルトで_extensions_が有効になっている可能性があります)。 – CristiFati

+0

どちらの方法でも、GOTO:EOFはファイルの終わりです...すぐに終了します。 –

+0

ありがとう私はatmスクリプトを修正しようとしています! – CyborgVillager

関連する問題