119 FOR TI=1 TO 1000:NEXT TI :CLS:PRINT "時盡",POINT:END
120 I$=INKEY$:IF I$=CHR$(23) THEN LOCATE 3,9 :PRINT "?": GOTO 140
121 IF I$=CHR$(22) AND TT=2 THEN POINT=POINT+1 : GOTO 150
122 IF I$=CHR$(22) AND TT<>2 THEN GOTO 180
123 IF I$=CHR$(22) AND TT=3 THEN POINT=POINT+1 : GOTO 150
124 IF I$=CHR$(22) AND TT<>3 THEN GOTO 180
130 IF I$=CHR$(27) THEN CLS:PRINT "881":END
140 IF TT=1 THEN POINT=POINT+1 ELSE GOTO 180
150 OPEN "POINT" FOR OUTPUT AS #2
160 WRITE #2,POINT :CLOSE #2
170 GOTO 71
180 PRINT "...",POINT
190 POINT=0
200 OPEN "POINT" FOR OUTPUT AS #1
210 WRITE #1,POINT
220 END
這個裡面
一開頭的for的功能跟inkey$要怎麼同時使用
誰能告訴我阿
[問題]請問會的大大
版主: 總版面管理員
[問題]請問會的大大
- 附加檔案
-
- Treeb.bas
- 做到一半
誰能幫我想想阿 - (1.03 KiB) 已下載 774 次
GVBASIC的判讀INKEY$值會使程式停下
不然一般的BASIC當你沒按鍵時只會視INKEY$值為""
用PEEK吧
不然一般的BASIC當你沒按鍵時只會視INKEY$值為""
用PEEK吧
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
- helldeathscyt
- 二級會員
- 文章: 383
- 註冊時間: 2003-07-17 8:35 PM
- 來自: 深淵地獄
- 聯繫:
當BASIC讀到INKEY$時
它就會停下來等待使用者回應
也就是說,這會使得你原本想執行的動作停下來等待回應
而PEEK是哈電族用來查詢記憶體位置的語法
也就是說你不需要按下任何鍵PEEK已經有數字存在了
而你可以找到對應的PEEK當作讀鍵値使用
這樣你就可以一邊判斷一邊執行你想要的動作了
舉例來說,在NC3000裡
打:
IF PEEK (198)=223 THEN PRINT "A":10 ELSE PRINT "B":10
或著打:
IF INKEY$="a" THEN PRINT "A":10 ELSE PRINT "B":10
這兩個的效果都差不多
但是第一種當你不按著"A"時他會顯示"B"
而第二種當你不按"A"程式也不會有任何動作
這樣你了解了嗎?
它就會停下來等待使用者回應
也就是說,這會使得你原本想執行的動作停下來等待回應
而PEEK是哈電族用來查詢記憶體位置的語法
也就是說你不需要按下任何鍵PEEK已經有數字存在了
而你可以找到對應的PEEK當作讀鍵値使用
這樣你就可以一邊判斷一邊執行你想要的動作了
舉例來說,在NC3000裡
打:
IF PEEK (198)=223 THEN PRINT "A":10 ELSE PRINT "B":10
或著打:
IF INKEY$="a" THEN PRINT "A":10 ELSE PRINT "B":10
這兩個的效果都差不多
但是第一種當你不按著"A"時他會顯示"B"
而第二種當你不按"A"程式也不會有任何動作
這樣你了解了嗎?
吾乃地獄之王,是為散播毀滅的種子,掃除所有塵世汙穢,平息痛苦之哀號
~地獄死神
白目橫行的時代...orz
網路真奇妙,
處處白目擾,
趕也趕不走,
白目死不了.
~地獄死神
白目橫行的時代...orz
網路真奇妙,
處處白目擾,
趕也趕不走,
白目死不了.
全部的程式碼是這樣
10 LOCATE 3,9
15 A$="伐木"
20 FOR I=1 TO LEN(A$):PRINT MID$(A$,I,1);:NEXT I :INKEY$
30 CLS:GRAPH:PRINT "選單","1.開始","2.高分榜","3.結束(不要啊~)","4.求助";:K$=INKEY$
40 IF K$=CHR$(98) THEN GOTO 70
50 IF K$=CHR$(110) THEN GOTO 80
51 IF K$=CHR$(103) THEN GOTO
60 IF K$=CHR$(109) THEN CLS:PRINT "881":END ELSE GOTO 30
70 CLS:PRINT "STAR":INKEY$
71 CLEAR:A=INT(RND(1)*10):
72 IF A<8 THEN TT$="?":TT=1
73 IF A=8 THEN TT$=" ":TT=2
74 IF A>8 THEN TT$="?":TT=3
75 OPEN "POINT" FOR INPUT AS #1
76 INPUT #1,POINT :CLOSE #1
80 CLS:ELLIPSE 38,28,4,4,0,1 :LINE 38,33,38,47,1 :LINE 39,39,50,30,1 :LINE 50,30,52,34,1:
90 LINE 52,34,53,32,1 :LINE 53,31,51,29,1 :BOX 50,30,57,16,1,1 :LINE 38,48,35,57,1:
100 LINE 38,49,41,58,1:LOCATE 3,9 :PRINT TT$ :ELLIPSE 83,28,4,4,0,1 :LINE 83,47,83,33,1 :
110 LINE 83,48,81,58,1 :LINE 86,58,84,49,1 :LINE 82,38,74,38,1 :LINE 74,37,84,37,1 :
119 FOR TI=1 TO 1000:NEXT TI :CLS:PRINT "時盡",POINT:END
120 I$=INKEY$:IF I$=CHR$(23) THEN LOCATE 3,9 :PRINT "?": GOTO 140
121 IF I$=CHR$(22) AND TT=2 THEN POINT=POINT+1 : GOTO 150
122 IF I$=CHR$(22) AND TT<>2 THEN GOTO 180
123 IF I$=CHR$(22) AND TT=3 THEN POINT=POINT+1 : GOTO 150
124 IF I$=CHR$(22) AND TT<>3 THEN GOTO 180
130 IF I$=CHR$(27) THEN CLS:PRINT "881":END
140 IF TT=1 THEN POINT=POINT+1 ELSE GOTO 180
150 OPEN "POINT" FOR OUTPUT AS #2
160 WRITE #2,POINT :CLOSE #2
170 GOTO 71
180 PRINT "...",POINT
190 POINT=0
200 OPEN "POINT" FOR OUTPUT AS #1
210 WRITE #1,POINT
220 END
有一些會變成表情符號
抱歉嚕
and有些語句寫一半
10 LOCATE 3,9
15 A$="伐木"
20 FOR I=1 TO LEN(A$):PRINT MID$(A$,I,1);:NEXT I :INKEY$
30 CLS:GRAPH:PRINT "選單","1.開始","2.高分榜","3.結束(不要啊~)","4.求助";:K$=INKEY$
40 IF K$=CHR$(98) THEN GOTO 70
50 IF K$=CHR$(110) THEN GOTO 80
51 IF K$=CHR$(103) THEN GOTO
60 IF K$=CHR$(109) THEN CLS:PRINT "881":END ELSE GOTO 30
70 CLS:PRINT "STAR":INKEY$
71 CLEAR:A=INT(RND(1)*10):
72 IF A<8 THEN TT$="?":TT=1
73 IF A=8 THEN TT$=" ":TT=2
74 IF A>8 THEN TT$="?":TT=3
75 OPEN "POINT" FOR INPUT AS #1
76 INPUT #1,POINT :CLOSE #1
80 CLS:ELLIPSE 38,28,4,4,0,1 :LINE 38,33,38,47,1 :LINE 39,39,50,30,1 :LINE 50,30,52,34,1:
90 LINE 52,34,53,32,1 :LINE 53,31,51,29,1 :BOX 50,30,57,16,1,1 :LINE 38,48,35,57,1:
100 LINE 38,49,41,58,1:LOCATE 3,9 :PRINT TT$ :ELLIPSE 83,28,4,4,0,1 :LINE 83,47,83,33,1 :
110 LINE 83,48,81,58,1 :LINE 86,58,84,49,1 :LINE 82,38,74,38,1 :LINE 74,37,84,37,1 :
119 FOR TI=1 TO 1000:NEXT TI :CLS:PRINT "時盡",POINT:END
120 I$=INKEY$:IF I$=CHR$(23) THEN LOCATE 3,9 :PRINT "?": GOTO 140
121 IF I$=CHR$(22) AND TT=2 THEN POINT=POINT+1 : GOTO 150
122 IF I$=CHR$(22) AND TT<>2 THEN GOTO 180
123 IF I$=CHR$(22) AND TT=3 THEN POINT=POINT+1 : GOTO 150
124 IF I$=CHR$(22) AND TT<>3 THEN GOTO 180
130 IF I$=CHR$(27) THEN CLS:PRINT "881":END
140 IF TT=1 THEN POINT=POINT+1 ELSE GOTO 180
150 OPEN "POINT" FOR OUTPUT AS #2
160 WRITE #2,POINT :CLOSE #2
170 GOTO 71
180 PRINT "...",POINT
190 POINT=0
200 OPEN "POINT" FOR OUTPUT AS #1
210 WRITE #1,POINT
220 END
有一些會變成表情符號
抱歉嚕
and有些語句寫一半
- helldeathscyt
- 二級會員
- 文章: 383
- 註冊時間: 2003-07-17 8:35 PM
- 來自: 深淵地獄
- 聯繫:
在if...then...裡的then之後直接打上數字ahk12345 寫:有〝一點〞懂
但你的IF PEEK (198)=223 THEN PRINT "A":10 ELSE PRINT "B":10裡面的helldeathscythe地獄死神 寫: IF PEEK (198)=223 THEN PRINT "A":10 ELSE PRINT "B":10
IF INKEY$="a" THEN PRINT "A":10 ELSE PRINT "B":10
:10是啥意思阿
使指goto的意思,這樣可以節省多餘的行號
所以:10就是goto 10
無線循環的意思
peek左邊數字是橫排為單位
右邊是直排為單位
也就是說Q,A,Z,[求助]的左邊都是198
但是右邊都不一樣
而A那一排的右邊數字都是223
在你沒有動作時,他們全部都是255(2的8次方減1)
只有最右邊那8個按鍵不一樣
全部都是8個一組
你可以去爬文有詳細說明
用尋找文章尋找比較快
吾乃地獄之王,是為散播毀滅的種子,掃除所有塵世汙穢,平息痛苦之哀號
~地獄死神
白目橫行的時代...orz
網路真奇妙,
處處白目擾,
趕也趕不走,
白目死不了.
~地獄死神
白目橫行的時代...orz
網路真奇妙,
處處白目擾,
趕也趕不走,
白目死不了.
我用peek寫了一下
但只有第一次給我反應
真是有夠給我ooxx的
程式碼:
10 LOCATE 3,9
15 A$="伐木"
20 FOR I=1 TO LEN(A$):PRINT MID$(A$,I,1);:NEXT I :INKEY$
30 CLS:GRAPH:PRINT "選單","1.開始","2.高分榜","3.結束(不要啊~)","4.求助";:K$=INKEY$
40 IF K$=CHR$(98) THEN GOTO 70
50 IF K$=CHR$(110) THEN GOTO 80
51 IF K$=CHR$(103) THEN GOTO
60 IF K$=CHR$(109) THEN CLS:PRINT "881":END ELSE GOTO 30
70 CLS:PRINT "STAR":INKEY$
71 CLEAR:A=INT(RND(1)*10):
72 IF A<8 THEN TT$="?":TT=1
73 IF A=8 THEN TT$=" ":TT=2
74 IF A>8 THEN TT$="?":TT=3
75 OPEN "POINT" FOR INPUT AS #1
76 INPUT #1,POINT :CLOSE #1
80 CLS:ELLIPSE 38,28,4,4,0,1 :LINE 38,33,38,47,1 :LINE 39,39,50,30,1 :LINE 50,30,52,34,1:
90 LINE 52,34,53,32,1 :LINE 53,31,51,29,1 :BOX 50,30,57,16,1,1 :LINE 38,48,35,57,1:
100 LINE 38,49,41,58,1:LOCATE 3,9 :PRINT TT$ :ELLIPSE 83,28,4,4,0,1 :LINE 83,47,83,33,1 :
110 LINE 83,48,81,58,1 :LINE 86,58,84,49,1 :LINE 82,38,74,38,1 :LINE 74,37,84,37,1 :
111 IF POINT=0 THEN LV=1
112 IF POINT=5 THEN LV=2
113 IF POINT=10 THEN LV=3
114 IF POINT=15 THEN LV=4
115 IF POINT=20 THEN LV=5
116 IF POINT=25 THEN LV=6
117 IF POINT=30 THEN LV=7
118 IF POINT>30 THEN CLS:PRINT "破關嚕": GOTO
119 IF TI=100 THEN CLS:PRINT "TIME'S UP!",POINT :END ELSE GOTO 120
120 IF PEEK (191)=127 THEN LOCATE 3,9 :PRINT "?": GOTO 123
121 IF PEEK (191)=247 AND TT=2 THEN POINT=POINT+1 : GOTO 150
122 IF PEEK (191)=247 AND TT=3 THEN POINT=POINT+1 : GOTO 71 ELSE TI=TI+LV : GOTO 119
123 IF TT=1 THEN POINT=POINT+1 : GOTO 150
124 IF TT=2 THEN GOTO 180
125 IF TT=3 THEN GOTO 180
150 OPEN "POINT" FOR OUTPUT AS #2
160 WRITE #2,POINT :CLOSE #2
170 GOTO 71
180 PRINT "...",POINT
190 POINT=0
200 OPEN "POINT" FOR OUTPUT AS #1
210 WRITE #1,POINT
220 END
但只有第一次給我反應
真是有夠給我ooxx的
程式碼:
10 LOCATE 3,9
15 A$="伐木"
20 FOR I=1 TO LEN(A$):PRINT MID$(A$,I,1);:NEXT I :INKEY$
30 CLS:GRAPH:PRINT "選單","1.開始","2.高分榜","3.結束(不要啊~)","4.求助";:K$=INKEY$
40 IF K$=CHR$(98) THEN GOTO 70
50 IF K$=CHR$(110) THEN GOTO 80
51 IF K$=CHR$(103) THEN GOTO
60 IF K$=CHR$(109) THEN CLS:PRINT "881":END ELSE GOTO 30
70 CLS:PRINT "STAR":INKEY$
71 CLEAR:A=INT(RND(1)*10):
72 IF A<8 THEN TT$="?":TT=1
73 IF A=8 THEN TT$=" ":TT=2
74 IF A>8 THEN TT$="?":TT=3
75 OPEN "POINT" FOR INPUT AS #1
76 INPUT #1,POINT :CLOSE #1
80 CLS:ELLIPSE 38,28,4,4,0,1 :LINE 38,33,38,47,1 :LINE 39,39,50,30,1 :LINE 50,30,52,34,1:
90 LINE 52,34,53,32,1 :LINE 53,31,51,29,1 :BOX 50,30,57,16,1,1 :LINE 38,48,35,57,1:
100 LINE 38,49,41,58,1:LOCATE 3,9 :PRINT TT$ :ELLIPSE 83,28,4,4,0,1 :LINE 83,47,83,33,1 :
110 LINE 83,48,81,58,1 :LINE 86,58,84,49,1 :LINE 82,38,74,38,1 :LINE 74,37,84,37,1 :
111 IF POINT=0 THEN LV=1
112 IF POINT=5 THEN LV=2
113 IF POINT=10 THEN LV=3
114 IF POINT=15 THEN LV=4
115 IF POINT=20 THEN LV=5
116 IF POINT=25 THEN LV=6
117 IF POINT=30 THEN LV=7
118 IF POINT>30 THEN CLS:PRINT "破關嚕": GOTO
119 IF TI=100 THEN CLS:PRINT "TIME'S UP!",POINT :END ELSE GOTO 120
120 IF PEEK (191)=127 THEN LOCATE 3,9 :PRINT "?": GOTO 123
121 IF PEEK (191)=247 AND TT=2 THEN POINT=POINT+1 : GOTO 150
122 IF PEEK (191)=247 AND TT=3 THEN POINT=POINT+1 : GOTO 71 ELSE TI=TI+LV : GOTO 119
123 IF TT=1 THEN POINT=POINT+1 : GOTO 150
124 IF TT=2 THEN GOTO 180
125 IF TT=3 THEN GOTO 180
150 OPEN "POINT" FOR OUTPUT AS #2
160 WRITE #2,POINT :CLOSE #2
170 GOTO 71
180 PRINT "...",POINT
190 POINT=0
200 OPEN "POINT" FOR OUTPUT AS #1
210 WRITE #1,POINT
220 END
- 附加檔案
-
- Treebb.bas
- 用peek寫的
- (1.18 KiB) 已下載 745 次