HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0119
黄緑草猫タイピング12解決


黄緑草猫

リンク

2008/1/19(Sat) 10:15:43|NO.13141

to=0 ;スコア
*a
x=0
o=1000
repeat
cls
o-1
mes o
getkey g,65
mes "Aを打て"
if o=x : goto,*gf
if g=1 : goto,*gg
await 1
loop

*gg
     o=to
cls
mes "OK"
wait 300
goto ,*b

*gf
cls
mes "NO"
wait 300
end

とまで自力で行きました
ABCDEFGのすべてを*aで処理したいのですが
どのようなスクリプトになりますか?



この記事に返信する


黄緑草猫

リンク

2008/1/19(Sat) 10:19:12|NO.13142

説明不足でした
上に載っているのはAですよね

あれをA~Gまで*a~*dまであったとして、
それを*aだけで処理する方法を教えて欲しいのです



KENTA

リンク

2008/1/19(Sat) 11:53:53|NO.13144

onkey命令でキーが打たれたら、割り込んで判定していくという方法で
やったほうが簡単だと思います。
↓タイピングの参考スクリプト

randomize score=0 //スコア char="A","B","C","D","E","F","G" //A~G mozi="" //入力する文字が代入される count=0 c=0 time=1000 gosub *set_mozi //入力するの設定 onkey gosub *keyget //キー割り込みを有効にする *main redraw 0 color 255,255,255 :boxf color pos 0,0 mes ""+time cx=ginfo_cx cy=ginfo_cy mes ""+mozi+"を打て" color 255 pos cx,cy mes ""+strmid(mozi,0,count) //打った文字を赤く表示 redraw 1 time-- if time<=0 :goto *GAMEOVER wait 1 goto *main *keyget iprm=iparam if peek(mozi,count)=iparam { count++ //次の文字に移す } if count>=strlen(mozi) { //入力する文字と入力された文字が同じであれば次 color 255,255,255 boxf:color pos 0,0 mes "OK" wait 300 gosub *set_mozi } return *set_mozi time+=100 //タイムに100追加する count=0 mozi=char(rnd(length(char))) //乱数で入力する文字設定 //mozi=char(c) //A→B→Cといって、最後にクリアならこの3行をコメントアウト //c++ //if c>=length(char) :goto *GAMECLEAR return *GAMECLEAR dialog "GAMECLEAR" end *GAMEOVER dialog "GAMEOVER" end



黄緑草猫

リンク

2008/1/19(Sat) 13:39:37|NO.13145

説明不足でした^^;
1回でA,B、C・・・

こう出るようにしたいのです↓
もしもうABCを打っていたら
Dを打て
ABCDEFG

ABCが赤くなり他は黒のままと



naznyark

リンク

2008/1/20(Sun) 01:27:58|NO.13169

技巧に走らず愚直に行くならこんな感じでよいでしょう。

to=0 ;スコア char = 0 *a x=0 o=1000 repeat cls o -= 17 : if ( o < 0 ) { o = 0 } mes o g = 0 if ( char == 0 ) { getkey g, 65 : mes "Aを打て" } if ( char == 1 ) { getkey g, 66 : mes "Bを打て" } if o=x : goto,*gf if g=1 : goto,*gg await 17 loop *gg o=to char += 1 cls mes "OK" wait 300 goto *a *gf cls mes "NO" wait 300 end



黄緑草猫

リンク

2008/1/20(Sun) 11:34:50|NO.13171

なんて言ったらいいんだろう・・・

画面
(ABC)DEFG;()の所は赤い文字
Dを打て
 打った
(ABCD)EFG
Eを打て

となるようにしたいのです



Megane

リンク

2008/1/20(Sun) 12:13:05|NO.13172

ここから繰り返し↓

画面を消す

既に打った文字を赤で表示する
その右にまだ打ってない文字を黒で表示する
「?を打て」を表示する

残り時間を減らして表示
キーをチェック。押すべきキーが押されていたらそれ相応の処理をする

ここまで繰り返し↑


さて、問題は一つ一つの内容をどうスクリプトで表現するか、ですね。



黄緑草猫

リンク

2008/1/20(Sun) 12:17:59|NO.13173

残り時間を減らして表示
キーをチェック。押すべきキーが押されていたらそれ相応の処理をする
問題はここなんですよね

既に打った文字を赤で表示する
その右にまだ打ってない文字を黒で表示する
「?を打て」を表示する
ここは例えば
if ok=1 : mes "--"

でいいと思うのですが キーチェックはどのように行えばいいかわからないです。



Tao

リンク

2008/1/20(Sun) 16:06:55|NO.13175

"HSP3.0タイピングソフト作成講座"

で検索すると勉強になると思います。



KENTA

リンク

2008/1/21(Mon) 22:27:38|NO.13213

黄緑草猫さんが言っていることはこういうことですか?

//タイピング参考スクリプト その2 randomize score=0 //スコア char="ABCDEFG","HIJKLMN","OPQRSTU","VWXYZ" // A~G H~N O~U V~Z mozi="" //入力する文字が代入される count=0 c=0 time=1000 gosub *set_mozi //入力するの設定 onkey gosub *keyget //キー割り込みを有効にする *main redraw 0 color 255,255,255 :boxf color pos 0,0 mes ""+time cx=ginfo_cx cy=ginfo_cy mes mozi color 255 pos cx,cy mes ""+strmid(mozi,0,count) //打った文字を赤く表示 color //次 何を打てばいいか表示 mes strmid(mozi,count,1)+"を打て" redraw 1 time-- if time<=0 :goto *GAMEOVER wait 1 goto *main *keyget iprm=iparam if peek(mozi,count)=iparam { count++ //次の文字に移す } if count>=strlen(mozi) { //入力する文字と入力された文字が同じであれば次 color 255,255,255 boxf:color pos 0,0 mes "OK" wait 300 gosub *set_mozi } return *set_mozi time+=100 //タイムに100追加する count=0 mozi=char(rnd(length(char))) //乱数で入力する文字設定 //mozi=char(c) //A→B→Cといって、最後にクリアならこの3行をコメントアウト //c++ //if c>=length(char) :goto *GAMECLEAR return *GAMECLEAR dialog "GAMECLEAR" end *GAMEOVER dialog "GAMEOVER" end



黄緑草猫

リンク

2008/1/22(Tue) 16:31:06|NO.13215

そうです!
ありがとうございます

あと、別のなのですけど↓
メモ帳にABCと書いてあってそれを
ロードして先ほどのようにして実行すると
エラーはおきますか?



a

リンク

2008/1/22(Tue) 18:27:11|NO.13216


char="ABCDEFG","HIJKLMN","OPQRSTU","VWXYZ" // A~G H~N O~U V~Z
の行を

notesel buf noteload "data.txt" repeat notemax noteget char(cnt), cnt loop
に変更して、data.txtに

ABCDEFG HIJKLMN OPQRSTU VWXYZ
みたいに書いておけばOK



黄緑草猫

リンク

2008/1/26(Sat) 20:25:07|NO.13287

いままで教えてくれていただいた皆様感謝しています
ありがとうございました



ONION software Copyright 1997-2023(c) All rights reserved.