고급 데이터 유형
12573 단어 javascript
행렬, 행렬은 행과 열을 사용하여 표현되는 2차원 배열입니다.
이 데이터 유형은 통계, 3D 렌더링 등을 사용하여 그리드를 나타낼 때 일반적으로 사용됩니다.
이 데이터 유형을 사용하여 1인용 전함을 생성합니다.
행렬은 "board"를 사용하여 생성되고 null을 사용하면 빈 사각형이 생성되고 배에 대한 ""가 생성됩니다.
let board = [
[null, null, "s"]
["s", null, null]
[null, "s", null]
];
행에 액세스하는 방법
행에 할당된 숫자는 0에서 시작하여 행당 하나씩 증가합니다. 콘솔에 기록하려면 행에 변수를 할당해야 합니다.
let firstRow = board[0]
let secondRow = board[1]
let thirdRow = board[2]
console.log(`The Board contains ${firstRow }, ${secondRow } and ${thirdRow`};
열에 액세스하는 방법
행에 변수가 할당되면 그 안의 단일 요소에 액세스할 수 있습니다. 유사한 표기법을 사용하여 하나의 배열에서 하나의 요소를 추출할 수 있습니다.
console.log(`first ship is board[1][2]`)
// using the second brackets is how you access the columns in the row you identify
// "firstRow1" is accesing the first element in the first array
행렬 반복
행렬의 각 요소는 배열이므로 루프를 사용하여 각 행을 반복해야 합니다.
for (let i = 0, i < board.length; i++){
// a single row
let row = board[i];
// loop over each element
for( let = j, j < row.length; j++){
let column = row[j];
if (column === "s"){
console.log(`Ship is located at ${row} row and ${column} column`);}
}
// i used "i" and "j" to assign coordinates when the ship is located
회전
회전을 생성하려면 10번 반복되는 루프를 생성합니다.
for(let i = 0; i < 10; i++){}
무작위화
Randon Index, 임의의 제곱을 선택하기 위해 Math.random 함수를 사용할 수 있습니다.
for(let i = 0; i < 10; i++){}
function getRandomNum(){
return Math.floor(Math.random() * board.length);
// using "board.length creates the max number the generator can use
}
// Math.random will return a random number between 0 and 1 so we use" * 5 " to make it a whole number we can use
console.log(getRandomNum());
console.log(getRandomNum());
console.log(getRandomNum());
console.log(getRandomNum());
임의의 정사각형 선택하기
동일한 Math.random 함수를 사용하여 특정 사각형의 좌표를 표시하는 코드를 생성합니다.
for(let i = 0; i < 10; i++(){
let row = getRandomNum();
let column = getRandomNum();
console.log(`The box can be found at ${} row and ${} column`);
let randomSquare = board[row][column];
console.log(randomSquare);}
function getRandomNum(){
return Math.floor(Math.random() * 5)
}
보드 업데이트
명중하면 해당 사각형이 null이 되거나 빈 사각형이 됩니다.
for (var i = 0; i < 10; i++){
var row = getRandomNum();
var column = getRandomNum();
var randomSquare = board[row][column];
if (randomSquare === "S"){
console.log(`Hit on ${row} row and ${column} column);
board[row][column] = null;
}
}
function getRandomNum(){
return Math.floor(Math.random() * 5);
}
결론
이제 행렬을 만들고 행이나 열에 액세스하는 방법을 알게 되었습니다. Battleship 게임은 매트릭스의 빠르고 간단한 demnstratin입니다
출처
Iron Hack 문서 "고급 데이터 유형"
Reference
이 문제에 관하여(고급 데이터 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/danielvalle23403/advanced-data-types-312l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)