現在,我正在研究一個側項目,我試圖隨機分配一個字符串到16/16表中(對於這個例子,我使用第一行蓋茨堡地址)。這個想法是它會以相反的順序顯示單詞(即單詞只能反向顯示在四個方向上:對角線向上,對角線向下,從下向上和從右向左,因此某些內容是「四個」成爲「ROUF」是允許的)。到目前爲止,我已經創建了表,並使用string.split方法將我的字符串轉換爲數組,但我堅持得到反轉順序和隨機分佈部分。任何關於如何實現這一點的建議都是值得讚賞的。在表格中隨機分配一個字符串
到目前爲止的代碼:
wind.globals.tRows = 16;
wind.globals.tCols = 16;
wind.globals.wordTable = OS.gui.add_table(view, wind.globals.tRows, wind.globals.tCols);
wind.globals.wordTable.border = '2';
wind.globals.wordTable.frame = 'box';
wind.globals.wordTable.style.position = 'absolute';
wind.globals.wordTable.style.left = '50px';
wind.globals.wordTable.style.top = '50px';
wind.globals.wordTable.style.width = '400px';
wind.globals.wordTable.style.height = '400px';
wind.globals.wordTable.style.textAlign = 'center';
wind.globals.string = "Four Score and Seven Years Ago";
//var tempVar = wind.globals.tString.split('').reverse().join('');
var tempVar = wind.globals.string.split('');
var t = Math.floor(Math.random()*tempVar.length);
for(x = 0; x < wind.globals.tRows; x++){
for(y = 0; y < wind.globals.tCols; y++){
for(i = 0; i < tempVar.length; i++){
wind.globals.wordTable.td[x][y].width = '20';
wind.globals.wordTable.td[x][y].innerHTML = tempVar[y].toUpperCase();
if(tempVar[y] == "," || tempVar[y] == "." || tempVar[y] == " "){
wind.globals.wordTable.td[x][y].innerHTML = "";
}
}
}
}
注:我也忘了這部分,信可以相交和共享(即s時,可以用於連接的話「分數」信和「7」
UPDATE:那麼遠也找過一些筆記我做了一段時間後,我想我已經拿出來達到什麼我需要做的方法,該方法進去4個部分
。 1)從1到4獲得一個隨機數。這將決定它是否是水平的,垂直的,positi正斜率或負斜率。 2)獲取另一個隨機數字,以決定是否嘗試將其與現有單詞相交。 3)獲取單詞開頭的隨機x,y座標。考慮到這個詞的長度。 4)檢查數組是否有衝突的交點。如果發生衝突,請轉到上一步並重試。 否則,填寫數組。
儘管我有這個想法,但我仍然遇到編碼問題,因爲我還沒有那麼多編程經驗。如果任何人都可以舉一些例子來解決問題,我想它會讓我走向正確的方向。謝謝!