๐ Front-end/Java Script
๐ค ํ์ดํ ํจ์ ES6์์ ์๋ก ์ถ๊ฐ๋์๋ค. ํจ์ ํํ์์ ๋นํด ์งง์ ๋ฌธ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค. ์ฌ์ ์ ์ผ๋ก this ๊ฐ์ ๋ฌถ๋๋ค. ์ต๋ช
ํจ์๋ก, ์ด๋ฆ์ด ์๋ ํจ์, ์ฆ์ ์คํ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ํจ์์ด๋ค. ์ผ๋ฐํจ์, ํ์ดํ ํจ์์ ๋น๊ต function fun() { // ์ผ๋ฐํจ์ ... } const arrFun = () => { // ํ์ดํ ํจ์ ... }; ํ์ดํ ํจ์ ์ฌ์ฉ ์์ var a = [ "Hydrogen", "Helium", "Lithium", "Beryllium" ]; var a2 = a.map(function(s){ return s.length }); console.log(a2); // logs [8, 6, 7, 9] // ํ์ดํ ํจ์ ์ฌ์ฉ var a3 = a.map( s => s.le..
๐ Front-end/Java Script
๐ ํจ๊ณผ ๋ฐ์ ์ค ์นด๋ ํด๋ฆญ ๋ง๊ธฐ ๊ตฌํ ์ค ์๊ธด ๋ฒ๊ทธ๋ฅผ ์ก์. 1. ์นด๋๋ฅผ ํด๋ฆญํ๋ฉด ์นด๋๊ฐ ๋ค์งํ๋ค. 2. ์ด๋ฏธ ์ง์ด ๋ง์ถฐ์ง ์นด๋๋ฅผ ํด๋ฆญํด๋ ์นด๋๊ฐ ๋ค์งํ๋ค. 3. ์๋ก ๋ค๋ฅธ 4๊ฐ์ง ์์ ์นด๋๋ฅผ ์ฐ๋ฌ์ ํด๋ฆญํ๋ฉด ๋ง์ง๋ง ๋ ์นด๋๊ฐ ์๋ฉด์ ๋ณด์ธ ์ฑ ๋จ์ ์๋ค. 4. ํ ์นด๋๋ฅผ ์ฐ์ด์ด ํด๋ฆญํ๋ฉด '์ถํํฉ๋๋ค!' ํ์ ์ฐฝ์ด ๋ฌ๋ค. ํด๊ฒฐํ๋ ค๋ฉด ์นด๋๋ฅผ ํด๋ฆญํ ์ ์๋ ์ํฉ / ํด๋ฆญํ ์ ์๋ ์ํฉ์ ๊ตฌ๋ถํด์ผ ํ๋ค. ์ด๋ฅผ ์ํ ์๋ก์ด ๋ณ์๊ฐ ํ์ํ๋ค. ์ฒ์์ ์นด๋๋ฅผ ์ ๊น ๋ณด์ฌ ์คฌ๋ค๊ฐ ๋ค์ ๋ค์ง์ ๋๊น์ง๋ ํด๋ฆญํ ์ ์๊ฒ ํ๋ค. ๋ํ, ํด๋ฆญํ ์นด๋๊ฐ ์ด๋ฏธ ์ง์ด ๋ง์ถฐ์ง ์นด๋์ด๊ฑฐ๋ ์กฐ๊ธ ์ ์ ๋ค์ง์ ์นด๋์ธ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ onClickCard ํจ์์์ ๊ฑธ๋ฌ๋ธ๋ค. ์ ์๋ก ๋ค๋ฅธ ์์์ 4๊ฐ์ง ์นด๋๋ฅผ ์ฐ์ด์ด ํด๋ฆญํ๋ฉด ๋ง์ง๋ง ๋ ์ฅ..
๐ Front-end/Java Script
๋ค์ด๊ฐ๊ธฐ ์ง ๋ง์ถ๊ธฐ๋ฅผ ํด๋ณด์. ์ง ๋ง์ถ๊ธฐ ๊ฒ์์ ๋ค์๊ณผ ๊ฐ๋ค. 12์ฅ์ ์นด๋๊ฐ ์๊ณ , ๋ ์ฅ์ฉ ์๋ก ์์ด ๊ฐ๋ค. ๋ชจ๋ ์นด๋์ ์์ ๋ณด์ฌ ์ฃผ๋ฉฐ ์ ๊น ๋์ ์นด๋ ์ง์ ์ธ์ธ ์ ์๋ ์๊ฐ์ ์ฃผ๊ณ ๋์, ์นด๋๋ฅผ ๋ค์ ์ ๋ถ ๋ค์ง์ ๋ค ์ง์ ๋ง์ถ๊ฒ ํ๋ค. ๋ง์ ์นด๋๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ค์ง๊ธฐ ๋๋ฌธ์, ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋์๊ฐ๋ ์์๋ฅผ ์ ํํ๊ฒ ์์์ผ ํ๋ค. ๐ ์์๋ ๊ทธ๋ฆฌ๊ธฐ 2์ฅ์ฉ ์นด๋๋ฅผ ๋ค์ง์ด 2์ฅ์ ์นด๋ ์์ด ๊ฐ์ผ๋ฉด ์๋ฃ ๋ชฉ๋ก์ ๋ฃ๊ณ , ๋ค๋ฅด๋ฉด ๋ค์ ๋ค์ง๋๋ค. 12์ฅ์ ์นด๋๋ฅผ ๋ชจ๋ ๋ง์ถ๋ฉด ์ฑ๊ณต์ด๋ค. ์์ ์์๋๋ฅผ ๋ณด๋ฉด ์๋ก ๊ด๋ จ ์๋ ์ ์ฐจ๋ ํ๋์ ์ ์ฐจ๋ก ๋ฌถ๊ณ , ๋ณต์กํ ๋น๋๊ธฐ ์ ์ฐจ๋ ์กฐ๊ฑด๋ฌธ ์ ์ฐจ์์๋ง ์์๋๋ฅผ ๋ถ๋ฆฌํ๋ค. Note! ๋น๋๊ธฐ๊ฐ ๋ญ์์ง? ๋น๋๊ธฐ๋ ๋๊ธฐ์ ๋ฐ๋๋ง๋ก, ์ค์ ์ฝ๋ฉํ ์์์ ๋ค๋ฅด๊ฒ ๋์ํ๋ ์ฝ๋๋ฅผ ๋น๋๊ธฐ..
๐ Front-end/Java Script
๐ map ( ) ํจ์ map ( ) ํจ์๋ ์๋ก์ด ์๋ฃ๊ตฌ์กฐ ํน์ ๊ฐ์ฒด๋ฅผ ์ ์ํ ๋ ์ฌ์ฉํ๋ ํจ์์ด๋ค. ์์๋๊ธฐ ๊ฐ์ฒด๋ณด๋ค๋ ์ฃผ๋ก ์๋ก์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์๋ก ํ๋ ๊ฒฝ์ฐ์ ๋ง์ด ์ฌ์ฉํ๋ค. ์ดํด๊ฐ ์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฑ๊ณผ ์ด๋ฆ์ผ๋ก ๋๋์ด์ง ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์ ๋ ์ฑ๊ณผ ์ด๋ฆ์ ํฉ์น ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค. ์ด๋ map ( ) ์ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ ๊ฒ ๋ณด๋ฉด map ( ) ์ ์ฃผ์ด์ง ๊ฐ์ ์๋ก์ด ๊ฐ์ผ๋ก ๊ตฌ์ฑํ๋ ํจ์๋ผ๊ณ ๋ ํ ์ ์๋ค. const users = [ { firstName: 'a', lastName: 'A' }, { firstName: 'b', lastName: 'B' }, { firstName: 'c', lastName: 'C' }, { firstName: 'd..
๐ Front-end/Java Script
๐ ๋งค๊ฐ๋ณ์( Parameter ) ์ ์ ๋ฌ์ธ์ ( Argument ) ๋? function test(a,b) { return a + b } test(2,3); //์๋ณธ ์ฝ๋ ์ถ์ฒ. //https://cocobi.tistory.com/82 ์ ์ฝ๋์์ ํจ์๋ฅผ ์ ์ธํ ๋ ( a,b ) ์ a,b ๊ฐ ๋งค๊ฐ๋ณ์ ( parameter ) ์ด๋ค. ๋งค๊ฐ๋ณ์๋ ๋ง ๊ทธ๋๋ก ๋ณ์๋ผ๋ ๋ป์ด๋ค. ๋ํ, ํจ์๋ฅผ ํธ์ถํ ๋ (2,3) ์ด ๋ณ์์ ๋ค์ด๊ฐ๋ ๊ฐ์ด๋ฉฐ ์ธ์ ( argument ) ๋ผ๊ณ ํ๋ค. ์ ๋ฆฌ ์ ์ด๋ฏธ์ง์์ x ์ y ๋ ๋งค๊ฐ๋ณ์ ( Parameter, ์ธ์ ) ์ ํด๋นํ๋ฉฐ ํจ์์ ์ ์์์ ์ฌ์ฉ๋๋ ๋ณ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ add( 2,5) ์์ 2 ์ 5 ๋ฅผ ์ ๋ฌ์ธ์ ( Argument, ์ธ์ ) ๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ํ๋ผ๋ฏธํฐ์..
๐ Front-end/Java Script
๐ ํจ์ ์ ์ธ์ - Function Declarations ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์์ ํจ์ ์ ์ธ๊ณผ ๋น์ทํ ํ์์ด๋ค. function ํจ์๋ช
() { ๊ตฌํ ๋ก์ง } // ์์ function funcDeclarations() { return 'A function declaration'; } funcDeclarations(); // 'A function declaration' //์ฝ๋ ์ถ์ฒ. //https://joshua1988.github.io/web-development/javascript/function-expressions-vs-declarations/ ํด๋น ํ์ผ, ํน์ ์ฃผ๋ณ์ ์ฝ๋๊ฐ ์คํ๋๋ฉด ๋ฐ๋ก ์ ์๋๋ค. โ ์ฝ๋ ์์ functionOne(); //"Hello World!" function f..
๐ Front-end/Java Script
๐ ์ ํฌ ๊ฒฐ๊ณผ ๊ตฌํํ๊ธฐ ๊ณต๊ฒฉ์ ๋๋ฅด๋ฉด ์๋ก ๊ณต๊ฒฉํ๊ฒ ํด์, ๋ ์ค์ ๋จผ์ ์ฒด๋ ฅ์ด 0์ด ๋๋ ์ชฝ์ด ๋์ค๋ฉด ์น๋ถ๊ฐ ๊ฐ๋ ค์ง๋ค. ์ฃผ์ธ๊ณต์ ์ฒด๋ ฅ์ด 0์ด ๋๋ฉด ๊ฒ์ ์ค๋ฒ / ๋ชฌ์คํฐ์ ์ฒด๋ ฅ์ด 0์ด ๋๋ฉด ์ฃผ์ธ๊ณต์ ๊ฒฝํ์น๋ฅผ ์ป๋๋ค. ๊ฒฝํ์น๊ฐ ์ฃผ์ธ๊ณต ๋ ๋ฒจ x 15 ๋ณด๋ค ๋์ผ๋ฉด ์ฃผ์ธ๊ณต์ ๋ ๋ฒจ์
์ ํ๋ค. ๋ ๋ฒจ์
์ ํ๋ฉด ์ฃผ์ธ๊ณต์ ์ฒด๋ ฅ์ ๋ชจ๋ ํ๋ณตํ๊ณ , ์ต๋ ์ฒด๋ ฅ๊ณผ ๊ณต๊ฒฉ๋ ฅ์ด 5์ฉ ์ฆ๊ฐํ๋ค. ๊ทธ๋ฐ๋ฐ Hero / Monster ํด๋์ค์ ๊ณตํต๋๋ ๋ถ๋ถ์ด ์๋ค. ์ด๋ฆ, ์ฒด๋ ฅ, ๊ณต๊ฒฉ๋ ฅ, ๊ฒฝํ์น ๊ฐ์ ๊ณตํต ์์ฑ์ด ์๊ณ , attack ๊ฐ์ ๊ณตํต ๋ฉ์๋๊ฐ ์๋ค. ์ด๋ฐ ์ค๋ณต์ ์ ๊ฑฐํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค. โจ ํด๋์ค์ ์์ ์ฌ๊ธฐ์ ํด๋์ค์ ์์์ด๋ผ๋ ๊ฐ๋
์ด ๋ฑ์ฅํ๋ค. Hero ์ Monster ํด๋์ค์์ ๊ณตํต๋๋ ๋ถ๋ถ๋ง ์ถ๋ ค ์๋ก์ด ํด๋์ค๋ก ๋ง๋ค๊ณ ,..
๐ Front-end/Java Script
๐ ํด๋์ค ๊ฐ์ ์ํธ ์์ฉํ๊ธฐ start ๋ฉ์๋์์๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ฐ๊ฒฐ๊ณผ ํ๋ฉด ์ ํ ์ธ์ ์ด๋ค ๊ฒ์ ํด์ผํ ๊น? ์ฃผ์ธ๊ณต์ ๋ง๋ค์ด์ผ ํ๋ค. ์ด๋ constructor ์์ ๋ฐ์ ์ฃผ์ธ๊ณต์ ์ด๋ฆ์ start ๋ฉ์๋๋ฅผ ๊ฑฐ์ณ Hero ํด๋์ค์ ์ ๋ฌํ๋ค. class Game { constructor (name){ this.monster = null; this.hero = null; this.monsterList = [ {name: '์ฌ๋ผ์',hp:25,att:10,xp:10}, {name: '์ค์ผ๋ ํค',hp:50,att:15,xp:20}, {name: '๋ง์',hp:150,att:35,xp:50}, ]; this.start(name); } start(name){ $gameMenu.addEventListener('s..
๐ Front-end/Java Script
๋ค์ด๊ฐ๊ธฐ ํ
์คํธ RPG ๋ฅผ ๋ง๋ค๋ฉด์ ํด๋์ค ๋ฌธ๋ฒ์ ๋ฐฐ์ฐ์. ํ
์คํธ๋ก๋ง ์งํํ๋ RPG์ด๋ค. ์ฃผ์ธ๊ณต,๋ชฌ์คํฐ,๋ณด์ค๊ฐ ์๋
ธ๊ณ ๋ ๋ฒจ์
๋ ํ๋ค. ๐ ์์๋ ๊ฒ์์๋ ํฌ๊ฒ 2๊ฐ์ง ๋ชจ๋๊ฐ ์๋ค. 1. ์ผ๋ฐ ๋ชจ๋ : ๋ชจํ, ํด์, ์ข
๋ฃ ์ค์์ ์ ํํ๋ ์ผ๋ฐ ๋ชจ๋ 2. ์ ํฌ ๋ชจ๋ : ์ ์ ๊ณต๊ฒฉ or ์ฒด๋ ฅ์ ํ๋ณต or ๋๋ง ๋ด์ฉ์ ๋ง์ถฐ์ ์์๋๋ฅผ ๊ทธ๋ ค๋ณด์. ๐ ์ฒซ ํ๋ฉด ๋ง๋ค๊ธฐ ์ฃผ์ธ๊ณต ์ด๋ฆ์ ์
๋ ฅ๋ฐ๋ ์ฒซ ํ๋ฉด์ ๋ง๋ค์. ์์ 1.๋ชจํ 2.ํด์ 3.์ข
๋ฃ ์
๋ ฅ 1.๊ณต๊ฒฉ 2.ํ๋ณต 3.๋๋ง ์
๋ ฅ ์ฌ์ฉ์๊ฐ ์ฃผ์ธ๊ณต ์ด๋ฆ์ ์
๋ ฅํ๊ณ ์์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ด๊ธฐ ํ๋ฉด์ ์ผ๋ฐ ๋ฉ๋ด๋ก ํ๋ฉด ์ ํํ๋ค. ๐ ์ฃผ์ธ๊ณต๊ณผ ๋ชฌ์คํฐ ๋ง๋ค๊ธฐ ์์ง ์ฃผ์ธ๊ณต์ ์ด๋ฆ๋ง ์
๋ ฅํ๋ค. ์ด์ ์ฃผ์ธ๊ณต์ ์ ๋ณด, ๋ชฌ์คํฐ๋ค์ ์ ๋ณด๋ฅผ ์
๋ ฅํ์. ๊ฐ์ฒด ๋ฆฌํฐ๋ด๋ก ์ฃผ์ธ๊ณต์ ๋ง๋ค์๋ค. ..
๐ Front-end/Java Script
๐ ์ฐจ๋ก ์ ํํ๊ธฐ ํด๋ฆญํ ์นธ์ O๋ฅผ ์
๋ ฅํ๊ฒ ํ๋ ค๋ฉด td ํ๋์ ํด๋ฆญ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ถ์ฌ์ผ ํ๋ค. ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ td ํ๊ทธ๋ฅผ ์์ฑํ ๋ ๋ฐ๋ก ๋ถ์ธ๋ค. ์ค์ ํ๋ฉด์ ํ๊ทธ๊ฐ ํ์๋๊ธฐ ์ ์ด๋ผ๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฏธ๋ฆฌ ๋ถ์ผ ์ ์๋ค. ํ๋ฒ O์ ๋ฃ์ ์นธ์ด๋ฉด ๋ค์ ๋ฃ์ง ์๋๋ก ์ ๊ฒํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ , ์
๋ ฅ ๋ชจ์์ด O ์๋๋ฉด X ์ด๋ฏ๋ก ๋๊ตฌ์ ์ฐจ๋ก ( turn ) ์ธ์ง๋ O ๋๋ X๋ก ๊ตฌ๋ถํ๋ค. ๊ทธ๋ฆฌ๊ณ , callback ํจ์ ๋ง์ง๋ง์์ turn ์ด O์ด๋ฉด X๋ก, X๋ฉด O๋ก ๋ฐ๊พผ๋ค. //์กฐ๊ฑด๋ถ ์ฐ์ฐ์ ์ฌ์ฉ. //turn ์ด O์ด๋ฉด X๋ก, X๋ฉด O์ผ๋ก ๋ฐ๊พผ๋ค. turn = turn ==='X' ? 'O' : 'X'; //์ฝ๋์ถ์ฒ (๋์) Let's Get IT ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ ์กฐ๊ฑด๋ถ ์ฐ์ฐ์๊ฐ ํท๊ฐ๋ฆฐ๋ค๋ฉด if..
๐ Front-end/Java Script
๋ค์ด๊ฐ๊ธฐ ํฑํํ ๊ฒ์์ ์ค๋ชฉ์ ์ถ์ํ์ธ ์ผ๋ชฉ์ด๋ค. ์ผ๋ชฉ์ ๋ฐ๋ํ์ด ์๋๋ผ 3 x 3 ํ ์์์ ์งํํ๋ค. ์ผ๋ชฉ ๋ฐ์ดํฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ด์ฐจ์ ๋ฐฐ์ด๋ก ํํํ๋ค. ํฑํํ ๋ฅผ ๋ง๋ค๋ฉด์ ์ด์ฐจ์ ๋ฐฐ์ด๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ , ๋ฐฐ์ด ๋ฐ์ดํฐ๋ฅผ HTML ํ๋ฉด์ ํ์ํ๋ ์์
์ ๋ฐฐ์ ๋ณด์. ๐ ์์๋ ๊ทธ๋ฆฌ๊ธฐ ๋ฐ๋์ ๊ฒ์ ๋, ํฐ ๋์ด ์๋ฏ์ด ํฑํํ ์๋ O ์ X ๊ฐ ์๋ค. ๋จผ์ ํผ์ ๋ฒ๊ฐ์ ๊ฐ๋ฉด O ์ X ๋ฅผ ๋ฃ๊ณ ๋ง์ง๋ง์ ์ปดํจํฐ์ ๊ฒ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ถ๊ฐํ๊ฒ ๋ค. ๐ ์ฒซ ์ฝ๋ ์ด๋ฒ์๋ HTML ๊น์ง ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑํ๋ฏ๋ก body ํ๊ทธ ๋ด๋ถ์ script ํ๊ทธ๋ฅผ ์ ์ธํ ๋ค๋ฅธ ํ๊ทธ๋ฅผ ๋ฃ์ง ์๋๋ค. ๐ ์ด์ฐจ์ ๋ฐฐ์ด ๋ค๋ฃจ๊ธฐ โจ ์ด์ฐจ์ ๋ฐฐ์ด ํฑํํ ๋ ์ด์ฐจ์ ๋ฐฐ์ด์ ์ฌ์ฉํด์ผ ํ๋ค. ์ ํ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ์ํด๋ณด์. [ [null..
๐ Front-end/Java Script
๐ ํ๊ท ๋ฐ์์๋ ๊ตฌํ๊ธฐ ํ
์คํธ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ํํด์ ํ๊ท ๋ฐ์์๋๋ฅผ ๊ตฌํ์. ํ๊ท ๋ฐ์์๋๋ฅผ ๊ตฌํ๋ ค๋ฉด ๊ธฐ์กด ๋ฐ์์๋๋ฅผ ๋ชจ๋ ๊ธฐ๋กํด์ผ ํ๋ค. ์ด๋์๋ค๊ฐ ๊ธฐ๋กํด๋์๊น? ๋๋ณด๊ธฐ ๋ฐฐ์ด์ ๋ง๋ ๋ค. records ๋ผ๋ ** ์ ๋ง๋ค์ด ๋ฐ์์๋๋ฅผ ๊ธฐ๋กํ๋ค. ํด๋ฆญํด์ ์์ํ์ธ์ ๋ฐ๋ณตํด์ ์ธก์ ํด์ผ ํ๋ฏ๋ก ์ธก์ ์ด ๋๋ ๋๋ง๋ค startTime ๊ณผ endTime ์ null ๋ก ๋น์ด๋ค. ํ๊ท ๋ฐ์์๋๋ฅผ ์ธก์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์จ๋ค. ๐ซ ๋ฐฐ์ด์ ๋ฉ์๋ reduce ์๋๋ ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ๋ค์ ํ๊ท ์ ๊ตฌํ๋ ์ฝ๋์ด๋ค. ํ๊ท ์ ๊ตฌํ๋ ค๋ฉด ๋ชจ๋ ๊ฐ์ ๋ํ ํ ์ ์ฒด ๊ฐ์๋ก ๋๋๋ฉด ๋๋ค. ๋ชจ๋ ๊ฐ์ ํฉ์ ๊ตฌํ ๋ reduce ๋ผ๋ ๋ฐฐ์ด์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. const average = records.reduce((a,c) => a +..