2016-04-27 32 views
1

Qbasicを学び始めました。初心者の練習では、簡単なテキストゲームを使い始めました。山は「北」にあり、「北」と入力すると、を入力した後に「山」が表示されます。と入力します。ただし、「北」と入力してと入力した場合は、コードが実行されていません。これは初心者の間違いですか? と異なるものを押してください。と入力してください。Qbasicで入力が機能しない

ここでは、コードです:

CLS 
PRINT "There is a mountain to the North" 
PRINT "There is a cactus to the East" 
PRINT "There is a river to the South" 
PRINT "There is a shack to the East" 
PRINT " " 
INPUT "Type a direction:", direction$ 
IF direction$ = "north" THEN PRINT "Mountain" 

そしてrepl.itからの出力:

QBasic (qb.js) 
Copyright (c) 2010 Steve Hanov 
: 
There is a mountain to the North 
There is a cactus to the East 
There is a river to the South 
There is a shack to the East 
: 
Type a direction: north 
: 
+0

LEFT $(方向$、5)= "北" IF THEN PRINT "Mountain" – eoredson

答えて

4

あなたのコードはQBasicを実行するときDOSBoxをしてうまく動作しますが、repl.itで使用される明らかにQB JavaScriptライブラリQBasicと全く同じように動作しません。 を入力するを入力すると入力が終了し、行末シーケンスは保存されません(または自動的に削除する必要があります)。残念ながら、行末シーケンスはJavaScriptライブラリによって削除されませんでした。私はCHR$(10)の問題を考え出し前に、実際には

IF direction$ = "north" + CHR$(10) THEN PRINT "Mountain" 

、私は通訳をテストするための簡単な代替手段を追加し、パースエラーを受け取った:結果は、それがQBasicをでは動作しません、次の作品は、ということです

この問題に基づいて
IF direction$ = "north" THEN PRINT "Mountain" ELSE PRINT "Not Mountain" 

しかし、私は(DOSBoxのようなDOSエミュレータで)本物を使用してプログラムを実行することをお勧めたり、QBasicをに基づいており、同じ構文を保持しているどちらもFreeBASICまたはQB64のようなもの、私はQB64がおそらくオリジナルと少し互換性があると思う。あなたはまた、末尾のASCII文字を取り除くことができ

+1

私は参照してください。ありがとう! (編集もありがとう) – SteamPanda

1

INPUT X$ 
IF INSTR(X$, CHR$(10)) THEN 
    X$ = LEFT$(X$, INSTR(X$, CHR$(10)) - 1) ' trim string 
END IF 
X$ = LCASE$(X$) ' and force case 

X $は唯一の '北' を含んでいますその方法を...

関連する問題