我正在試圖創建一個80x20的二維數組,創建6個數組的周邊上的兩個點之間隨機連接的線。我想像它會看起來像只在一些地方框起來的圖片。我的問題是,我不知道如何選擇並鏈接陣列外圍的兩個隨機點並顯示它們。我做了一個代碼選擇完全隨機點,但似乎無法解決這個任務。有人能指引我朝着正確的方向嗎?二維數組,計算並存儲6個隨機連接點
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
const int rows = 80; //declares the amount of rows in the 2d array
const int cols = 20; //declares the amount of columns in the 2d array
char sky[rows][cols];
fill_n(&sky[0][0], 100, '-');
fill_n(&sky[0][0] + 100, rows*cols - 100, ' ');
random_shuffle(&sky[0][0], &sky[0][0] + rows*cols);
for(int r = 0; r < rows; ++r)
{
for(int c = 0; c < cols; ++c)
cout << sky[r][c];
cout << " ";
}
return 0;
}
連字符和空格的意義是什麼('' - ''和' ''')在'天空'?另外,你是否打算在同一行上打印所有行? – jerry 2013-04-23 19:40:45
此代碼最初用於製作隨機放置星星的二維數組。所有其他空間都是空白的。 – Trollslayer 2013-04-23 19:55:13
我明白了,所以連字符代表明星。您是否試圖擴展此代碼以包含所描述的功能或僅將其作爲您知道如何執行的示例發佈?根據你的描述,這聽起來像整條線必須在外圍(而不僅僅是端點)。它是否正確?如果是這樣,一條「線」是否可以穿過一個角落,或者它是否完全位於一側? – jerry 2013-04-23 20:23:02