1

游戏:我的游戏是一个简单的游戏,它从 txt 文件中获取单词列表并将它们放到网格上。然后将单词打乱(在 3*3 的网格上显示 9 个单词,其中一个被未使用的备用单词替换),然后用户必须猜测被替换的单词是什么以及替换它的单词是什么也是。如果用户是正确的,他们就会进入更难的级别,即 4*4 网格。

问题:我一直在尝试通过检查列表中的单词来验证用户的输入,方法是按已洗牌的单词的位置,所以我试图检查哪个单词在列表的第十位,因为那是单词已被替换。

代码脚本:“Global_Variables” -

> globalvar WordCount; globalvar WordColumn; globalvar WordRow;
> globalvar WordList; globalvar GridList; globalvar LineGap; globalvar
> WildCard; globalvar BoxSize; globalvar BoxIndent; globalvar BoxHeader;
> globalvar TimerIndent;

“读取文件” -

> filop = file_text_open_read(working_directory + "Words.txt");
> wordgridlist = ds_list_create(); gridcreate = ds_list_create();
> while(!file_text_eof(filop)){
>     line = string_upper(file_text_readln(filop));
>     ds_list_add(wordgridlist, line);
>     } file_text_close(filop);    wordgridlistshuffled =         
> ds_list_shuffle(wordgridlist)   "Output" - draw_set_colour(c_red)
> draw_set_font(Text_Font) Text_Grid = 0 for (X=0; X<3; X+=1){
>     for  (Y=0; Y<3; Y+=1){
>         draw_text((X*710)+250,    
> (Y*244)+300,ds_list_find_value(wordgridlist,Text_Grid));
>         Text_Grid +=1
>         
>         }
>     }

“Word_Question” -

> WordChangedEasy = get_string("What word changed?", "");
> WordChangedEasyAnswer = ds_list_shuffle(10); WordReplacedEasy =
> get_string("What word has been replaced?", "");
4

1 回答 1

1

我从 GameMaker: User Manual 获取了这个。

ds_list_find_value

查找保存在列表中给定位置的值。语法:ds_list_find_value(id, pos);

id:要使用的列表的 id。

pos:要查看的位置,其中 0 对应于列表的最开始位置,最终位置为 ds_list_size(id)-1。

您应该使用 ds_list_find_value(wordgridlist,9) 来查找第十个值。

于 2016-06-21T11:28:17.503 回答