- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Qbasic 中制作一个迷宫,但是当指针触及迷宫线时,程序并未结束。我希望当圆圈(即指针)接触迷宫的末端时,程序应该结束。程序是这样的:-
cls
screen 12
DIM p AS STRING
DIM A1 AS STRING
15 print"What do you want to do?"
print"A:Draw AN IMAGE"," B:PLAY A MAZE GAME";
PRINT
PRINT"TYPE 'A' OR 'B'IN CAPITAL FORM"
GOTO 102
99 print "rules to play the maze game:"
print
print "1 use 'W' to move the ball foward"
print "2 use 'S' to move the ball backward"
print "3 use 'A' to move the ball leftward"
print "4 use 'D' to move the ball rightward"
INPUT A1
CLS
goto 10
102 INPUT P
if p="A"then
cls
goto 20
elseif p="B" then
cls
goto 99
elseif p<>"A" AND p<>"B" then
print "Choose between A and B"
GOTO 70
end if
10 pset(120,120)
draw "r100"
pset (120,140)
draw"r80"
pset (200,140)
draw "d100"
pset (220,120)
draw"d140"
pset (220,260)
draw "l90"
pset (200,240)
draw "l50"
pset (130,260)
draw"u50l120u90r60u40l50u60r300d90l35d260l60d30l80
h20l20h20u30r40u5l70d60f40r250u90h40u45r40u40r50u130h40r225d65l50d60l15
d130l40d50l20d15r45d40r20u45r10u10r10u90r100"
pset(150,240)
draw"u50l120u50r60u80l50u20r260d50l35d260l60d30l40h20l20h10r
40u50l120d98f50r290u115h40u20r40u40r50u160h10r140d20l50d60l15
d130h40d90l20d60r45d45r70u45r10u10r10u90r75"
20 dim k as string
x = 110
y = 105
do
k = ucase$(inkey$)
if k="W"then
y = y - 2
elseif k= "S" then
y = y + 8
elseif k="A"then
x = x - 8
elseif k="D" then
x = x + 5
end if
circle (x,y),7,10
loop until k ="Q"
GOTO 45
70 CLS
GOTO 15
if x=120 and y=120 then goto 45
40 cls
45 END
请帮忙
提前致谢......
最佳答案
好吧,让我们来看看下面呈现的游戏循环的峰值,并重新设计一下以提高可读性:
do
k = ucase$(inkey$)
if k="W"then
y = y - 2
elseif k= "S" then
y = y + 8
elseif k="A"then
x = x - 8
elseif k="D" then
x = x + 5
end if
circle (x,y),7,10
loop until k ="Q"
您的胜利案例(如果 x=120 且 y=120 则转到 45)实际上并不发生在循环内,而是发生在循环外。
与 do loops ,只有 do 和循环语句之间的代码才会执行,除非“until”语句返回 true。简而言之:
do
'This code will execute
loop until k = "Q"
'This code will only execute after k=Q
将 win 案例放入 do 循环中,它应该可以工作。
如果我没记错的话,QBasic 允许在行的开头出现空格。我建议使用空白来直观地组织代码,以便您可以看到发生了什么。看看我是如何格式化你的主循环的。 do 循环控制的所有内容都位于 do 和循环语句的右侧。这样你就可以很容易地看到 do 循环正在做什么。由于类似的原因,if 语句中的所有内容都会得到相同的处理。
如果您养成了缩进代码的习惯,您就可以开始清楚地看到代码的逻辑。
编辑:看来您是编程新手。如果你喜欢它,我建议通过 codecademy 而不是 QBasic 来学习 Python。 QBasic 鼓励一些非常坏的习惯,例如 goto 语句。
关于qbasic - Qbasic中如何让圆接触线并结束程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21593471/
我一直在做一个项目,在这个项目中,我使用了一个旧程序并创建了一个新版本......问题是它是用 Quick Basic 编写的,它有一行我不明白的代码 ON FLAG% GOTO 1730, 1900
我有一本关于学习 BASIC 编程的旧书。它写得很好,很有趣,并且在教授计算机编程的第一步方面做得很好。这也是我的第一本关于编程的书,它为我开启了这一切。 :) 现在又有一个人想学习编程,并且(因为我
在这里输入代码`作为一个蹩脚的程序员,我有轻微的阅读障碍,我 需要以如此愚蠢的方式编写所有基于代码的东西,即使是 child 可以理解。我试着了解如何让输入层进入 输出层使用前馈但在线教程需要很多 教
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 8年前关闭。 Improve t
我正在尝试在 Qbasic 中制作一个迷宫,但是当指针触及迷宫线时,程序并未结束。我希望当圆圈(即指针)接触迷宫的末端时,程序应该结束。程序是这样的:- cls screen 12 DIM p AS
我在QBasic中制作了两个不同的程序,它们都保存在不同的.bas文件中,即一个是1.bas,另一个是2.bas。 当我在程序2.bas中时,如何打开程序1.bas,而不关闭它? 程序 1 应该在程序
我正在研究一些旧的 qbasic 代码。所有 Goto 语句都一团糟。我是否正确地认为以下行总是会返回? IF FLAG = 0 THEN TARGET = X: GOSUB 55000: TEMP
我想知道如何获取QBasic中最后打印的文本。就像如果程序打印了几行,那么如何打印最后一行。 像这样- Print "aaaaaaa" Print "bbbbbbb" 然后程序将获得最后打印的行,即b
出于怀旧的原因回到了良好的旧 qbasic 并且以前从未在 qbasic 中使用过类型和函数,因为那时我还很年轻。 TYPE Vector2 x AS SINGLE y AS SING
在 GW-BASIC 和 QuickBASIC 中,语句都传递参数,其中一些是可选的,可以根据语句省略: REM Move the text cursor to the specified colum
我的作业需要一些帮助。 问题定义 There is a rabbit 100 meters away from its hole and a fox 100 meters away from the
如何将 deck(52) 数组从 Newgame 函数传递到 deckshuffle 函数 FUNCTION newgame 'New game RANDOMIZE TIMER CA
我很久以前就制作了这个菜单,但我在大约 2 天前找到了这个文件,我想让它工作 CLS FOR k = 10 TO 65 LOCATE 2, k: PRINT CHR$(222) LOC
我在 QBASIC 中有一个 IF 语句......是的...... QBASIC...... 我一直在教某人编程(我认为这会很好而且很容易看到 语法如何工作)。 ...无论如何,我有这个代码: CL
我试图找到一个现代环境,类似于我发现 QBasic 的优点,但要弥补缺陷。这样做的目的是和我 6 岁的儿子一起编码。 我正在寻找一种 IDE,它使用现代语言,能够绘制图形和播放音频,并且不会强制用户在
我的 QB 应用程序中有这样的播放命令: PLAY "MSe8f#4f#8f#8g8a8b4.a4.g4.f#4.o0b8o1e8e8e4d8e2." 我想以某种方式将这些转换为现代应用程序可以使用的
我有以下公式: F = X / 1+4+9+16+....+n^2 如何在 QBasic 中编写一个程序来找到 F 的结果? 谢谢。 最佳答案 来自 this useful page ,前n个自然数
我有以下公式: F = X / 1+4+9+16+....+n^2 如何在 QBasic 中编写一个程序来找到 F 的结果? 谢谢。 最佳答案 来自 this useful page ,前n个自然数
我正在尝试将一些旧的 qbasic(旧的 dos basic)代码转换为 python。我了解 python,但不太了解 qbasic(除了猜测语法的含义)。这是qbasic代码 1020 DIM X
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是
我是一名优秀的程序员,十分优秀!