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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0320
makeサンプルのタイピングについて2解決


make

リンク

2008/3/20(Thu) 01:22:38|NO.14440

HSP3のタイピングゲームをメモ帳からよみこむようにしたいです
問題出題の際、メモ帳における1行目は日本語文、2行目は英語文、3行目は空白のセットで
次の4行目は日本語文、5行目は英語文、6行目は空白・・・
という風に以下+3ずつ問題文がたくさんあったとして
問題を表示する際にはランダム(13、14行目をだしたり25、26行目をだしたり)
という風にしたいのですが、どうすればいいのでしょうか?


randomize *start ; ゲーム開始 score=0 *greset ; 問題の準備 notesel notebuf ;英語文バッファ確保 noteload "test01.txt" ; XX? よみだす行数、2、5行目〜(+3ずつ)にしたい noteget notebuf,rnd(noteinfo(0)) ;よみだした行数の英語文ランダム表示 ; notesel? 日本語文のバッファ確保? ; noteget? 日本語文のよみだす行数? 1、4行目〜(+3)ずつにしたい ; XX? 日本語文ランダム表示? ; XX? 1、2、3行目〜(+3ずつ)をセットにする? cursor=0 timer=250 typemode=0 m=rnd(noteinfo(0)) if m=0 : mondai=notebuf : mondai2="XX" ;m=0? XX=日本語行数よみこみ変数 onkey gosub *typein *main ; ゲームメイン redraw 0 color 192,192,192:boxf font msgothic,16 color 0,0,0 pos 80,20:mes "残り時間:"+timer pos 80,40:mes "スコア:"+score font msgothic,30,1 color 0,120,160 pos 170,198:mes mondai2 pos 170,238:mes mondai pos 170,238:color 255,0,0:mes strmid(mondai,0,cursor) redraw 1 await 50 if typemode>0 : onkey 0 : goto *greset if timer<=0 : onkey 0 : goto *gameover timer=timer-1 goto *main *gameover onkey 0 dialog "ゲームオーバー" end *typein ; キーを押した時の処理 a=peek(mondai,cursor) if a!=iparam : goto *typemiss len=strlen(mondai) cursor=cursor+1:if cursor<len : return goto *win *typemiss ; ミスタッチをした時 return *win ; タイピング成功 typemode=1 score+=10 return



この記事に返信する


uhouho

リンク

2008/3/20(Thu) 03:43:55|NO.14444

notegetの使い方が違っているみたい…

ヘルプより…

noteget p1,p2
p1=変数 : 読み出し先の変数名
p2=0〜(0) : 読み出すインデックス

・インデックスは0から始まるので注意してください。

とある点に注意し、サンプルを改造すると…


; ; タイピングゲーム サンプル ; title "タイピングゲーム" randomize *start ; ゲーム開始 score=0 *greset ; 問題の準備 cursor=0 timer=250 typemode=0 ;m=rnd(3) ;if m=0 : mondai="HOTSOUPPROCESSOR":mondai2="ホットスーププロセッサ" ;if m=1 : mondai="HSPSCRIPTEDITOR":mondai2="HSPスクリプトエディタ" ;if m=2 : mondai="HSPTVDEASOBOU":mondai2="HSPTVで遊ぼう" notesel notebuf ;英語文バッファ確保 noteload "test01.txt" ; r=rnd(noteinfo(0))/3*3 noteget mondai,r+1 noteget mondai2,r ; onkey gosub *typein *main ; ゲームメイン redraw 0 color 192,192,192:boxf font msgothic,16 color 0,0,0 pos 80,20:mes "残り時間:"+timer pos 80,40:mes "スコア:"+score font msgothic,30,1 color 0,120,160 pos 170,198:mes mondai2 pos 170,238:mes mondai pos 170,238:color 255,0,0:mes strmid(mondai,0,cursor) redraw 1 await 50 if typemode>0 : onkey 0 : goto *greset if timer<=0 : onkey 0 : goto *gameover timer=timer-1 goto *main *gameover onkey 0 dialog "ゲームオーバー" end *typein ; キーを押した時の処理 a=peek(mondai,cursor) if a!=iparam : goto *typemiss len=strlen(mondai) cursor=cursor+1:if cursor<len : return goto *win *typemiss ; ミスタッチをした時 return *win ; タイピング成功 typemode=1 score+=10 return

こんな感じで、とりあえず動きました。


ためしに使ったtest01.txtの内容:

テスト1 TEST1 テスト2 TEST2 テスト3 TEST3 テスト4 TEST4 テスト5 TEST5



make

リンク

2008/3/20(Thu) 03:59:12|NO.14445

解決しました、ありがとうございました
感謝感謝です



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