Turbo Pascal高手請入!!(共4條問題-20點)

2011-12-06 10:56 pm
如果text file入面有20個生字
(1)如何係program到random(吾重覆)咁抽20個生字,一個一個抽出黎問

每次:
(2)如何只顯示頭同尾既字,中間個d係另一行random咁顯示出黎
跟住比玩家輸入
(3)如何知道佢入既野又要match番text file 入面個生字..
(4)如何計番玩家match左幾多題

回答 (2)

2011-12-07 4:40 am
✔ 最佳答案
『如果text file入面有20個生字』
設定有個 Var Questions: Array[1..20] of string;
TotalQustion := 20;
一開始先讀入。Open File, For I:= 1 to TotalQuestion, readln(), close file;

『如何係program到random(吾重覆)咁抽20個生字,一個一個抽出黎問』
ThisQuestionNumber := Random(TotalQuestion)+1 可以抽出一題。
跟手 ThisQuestion := Question[ThisQuestionNumber] ; 拎左條題目出黎。
跟住從Question 移走,如 For J:= ThisQusetionNumber+1 to TotalQuestion-1 do
Questions[J-1] := Questions[J] ;
TotalQuestion 要減一,下一次抽ramdom會小一題

『如何只顯示頭同尾既字,中間個d係另一行random咁顯示出黎』
Scramble := Copy(ThisQuestion,2, Length(ThisQuestion)-2) ;
可以抽出中間字母,把 ThisQuestion 中間轉成?
For J:= 2 to Length(ThisQuestion)-1 do ThisQuestion[J] := '?'
Scramble字字母可以ramdon咁抽,跟住互換位置
如 For J:= 1 to length (Scramble) do
begin RR:= Random(Length(Scramble)) +1;
Scamble[J] 同 Scramble[RR] 對調
end;
再重覆10次8 次

『(3)如何知道佢入既野又要match番text file 入面個生字..』
只要readln(answer); 如果 answer=ThisQuestion咪得分,then Inc(Score);
註;記得要做 uppercase()

『(4)如何計番玩家match左幾多題』
剛才INC(Score)已經計左分
2011-12-07 12:15 am
你要好熟randomize,string,array,fopen,fcolse,getkey之類的運用


收錄日期: 2021-04-26 00:08:01
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20111206000051KK00461

檢視 Wayback Machine 備份