Javascript 함수
기본 구성 요소 중 하나로 실행할 코드들을 필요할 때마다 호출해서 사용할 수 있다.
반복 사용 되는 기능들을 함수로 작성하여 사용 할 수 있으며 코드를 여러번 쓸 필요 없이 함수를 가져다 쓰면 되기 때문에 코드가 간결 해지며 관리하기가 편하다.
javascript 함수 실행식
기본적인 함수 실행식은 다음과 같다.
# 함수 생성
function hi() {
console.log("안녕하세요");
}
# 함수 호출
hi();
let temp = "전역변수";
function test() {
console.log(temp); # temp는 전역 변수이기 때문에 temp의 값인 "전역변수" 가 출력된다.
}
test();
매개변수를 활용한 함수 사용
함수를 호출 할때 데이터를 받는 변수로 매개변수의 타입을 따로 명시하지 않아도 된다.
let num1 = 1;
let num2 = 2;
let num3 = 3;
function test1(a, b, c) { # 매개변수의 타입을 명시 하지 않아도 된다.
console.log(a + b + c);
}
test1(num1, num2, num3); # 매개변수와 변수의 이름을 맞춰주지 않아도 된다.
- 변수를 따로 작성하지 않고 함수 호출시 값을 직접 입력해 줄 수 있다.
function test2(a) {
console.log(`${a}`); # 백틱을 활용해서 매개변수 출력
}
test2("사과"); # 변수를 따로 만들지 않고 직접 값을 넘겨 줄 수 있다.
test2("나무");
- return을 활용하여 값을 반환해 줄 수 있다.
function test3() {
return "test3 반환됨"; # return 을 사용하여 값을 반환
console.log("아아아아아아아아아"); # 함수는 return에서 끝내고 값을 반환하기 때문에 return 아래 코드는 실행 하지 않음
}
let num4 = test3();
console.log(num4);
함수를 사용한 구구단 만들기
function gugudan(num) {
for (let i = 1; i < 10; i++) {
console.log(`${num}단 ${num} x ${i} = ${num * i}`);
}
}
gugudan(3);
함수를 사용한 묵찌빠 만들기
- 묵찌빠 게임은 총 20판 가능 하며 가위바위보에서 이기면 묵찌빠를 진행하는 형식
- 한판 할때마다 배팅 할 수 있으며 최소 금액은 2,000원이고 기본 소지금은 20,000원이다.
- 가위바위보에서 무승부가 되면 다음 게임으로 넘어가게 된다.
- 게임에서 사용자가 승리할 시 배팅 금액의 2배를 가져가게 되며 지게 되면 2배를 잃는다.
- 소지금액을 전부 소모하거나 20판이 넘어가면 게임은 종료
// 묵찌빠 게임(함수)
let comArr = ["가위", "바위", "보", "묵", "찌", "빠"];
let com1 = comArr[parseInt(Math.random() * 3)];
let com2;
let user1 = "";
let user2 = "";
let pp = true;
let chk = true;
let lsptxt = "";
let userWin = 0;
let comWin = 0;
let smsm = 0;
let wintxt = "";
let cnt = true;
let userCnt = 0;
let comCnt = 0;
let maxCnt = 0;
let money = 0;
let maxmoney = 20000;
// 가위바위보 함수
function lsp(a, b) {
if (`${a}` == `${b}`) {
console.log(`${maxCnt + 1} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 무승부 승`);
smsm++;
}
if (a == "가위") {
if (a == "가위" && b == "바위") {
console.log(
`${maxCnt + 1} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 가위바위보 컴퓨터 승`
);
comWin++;
} else if (a == "가위" && b == "보") {
console.log(
`${maxCnt + 1} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 가위바위보 사용자 승`
);
userWin++;
}
}
if (a == "바위") {
if (a == "바위" && b == "가위") {
console.log(
`${maxCnt + 1} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 가위바위보 사용자 승`
);
userWin++;
} else if (a == "바위" && b == "보") {
console.log(
`${maxCnt + 1} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 가위바위보 컴퓨터 승`
);
comWin++;
}
}
if (a == "보") {
if (a == "보" && b == "가위") {
console.log(
`${maxCnt + 1} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 가위바위보 컴퓨터 승`
);
comWin++;
} else if (a == "보" && b == "바위") {
console.log(
`${maxCnt + 1} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 가위바위보 사용자 승`
);
userWin++;
}
}
if (userWin > 0) {
wintxt = `${
maxCnt + 1
} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 가위바위보 사용자 승`;
}
if (comWin > 0) {
wintxt = `${
maxCnt + 1
} 회차 사용자 : ${a}, 컴퓨터 : ${b} > 가위바위보 컴퓨터 승`;
}
}
// 묵찌빠 함수
function mjb() {
// 가위바위보에서 유저가 이겼을때
if (user1 != com1) {
while (cnt) {
if (userWin == 1) {
user2check();
com2 = comArr[parseInt(Math.random() * 3 + 3)];
if (`${user2}` == `${com2}`) {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 사용자 승`
);
userWin = 0;
comWin = 0;
userCnt++;
maxmoney = maxmoney + money * 2;
cnt = false;
} else if (user2 == "묵" && com2 == "찌") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 사용자 승리 다시 묵찌빠 입력`
);
} else if (user2 == "찌" && com2 == "빠") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 사용자 승리 다시 묵찌빠 입력`
);
} else if (user2 == "빠" && com2 == "묵") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 사용자 승리 다시 묵찌빠 입력`
);
} else if (user2 == "묵" && com2 == "빠") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 컴퓨터 승리 공수전환 묵찌빠 입력`
);
uesrWin = 0;
comWin++;
} else if (user2 == "찌" && com2 == "묵") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 컴퓨터 승리 공수전환 묵찌빠 입력`
);
uesrWin = 0;
comWin++;
} else if (user2 == "빠" && com2 == "찌") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 컴퓨터 승리 공수전환 묵찌빠 입력`
);
uesrWin = 0;
comWin++;
}
}
// 가위바위보에서 컴퓨터가 이겼을떄
if (comWin == 1) {
user2check();
com2 = comArr[parseInt(Math.random() * 3 + 3)];
if (`${user2}` == `${com2}`) {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 컴퓨터 승`
);
comWin = 0;
userWin = 0;
comCnt++;
maxmoney = maxmoney - money * 2;
cnt = false;
} else if (user2 == "묵" && com2 == "빠") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 컴퓨터 승리 다시 묵찌빠 입력`
);
} else if (user2 == "찌" && com2 == "묵") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 컴퓨터 승리 다시 묵찌빠 입력`
);
} else if (user2 == "빠" && com2 == "찌") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 컴퓨터 승리 다시 묵찌빠 입력`
);
} else if (user2 == "묵" && com2 == "찌") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 사용자 승리 공수전환 묵찌빠 입력`
);
comWin = 0;
userWin++;
} else if (user2 == "찌" && com2 == "묵") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 사용자 승리 공수전환 묵찌빠 입력`
);
comWin = 0;
userWin++;
} else if (user2 == "빠" && com2 == "찌") {
console.log(
`${
maxCnt + 1
} 회차 사용자 : ${user2}, 컴퓨터 : ${com2} > 묵찌빠 가위바위보 사용자 승리 공수전환 묵찌빠 입력`
);
comWin = 0;
userWin++;
}
}
}
cnt = true;
}
}
function don() {
money = parseInt(prompt(`배팅 금액 입력 최소 : 2000 최대 : ${maxmoney}`));
if (money > `${maxmoney}` || money < 2000) {
while (cnt) {
if (money > `${maxmoney}`) {
money = parseInt(
prompt(
`배팅 최대 금액은 ${maxmoney} 입니다.\n배팅 금액 입력 최소 : 2000 최대 : ${maxmoney}`
)
);
} else if (money < 2000) {
money = parseInt(
prompt(
`배팅 최소 금액은 2000 입니다.\n배팅 금액 입력 최소 : 2000 최대 : ${maxmoney}`
)
);
} else if (money <= `${maxmoney}` && money >= 2000) {
cnt = false;
}
}
}
cnt = true;
}
function endgame() {
if (maxCnt >= 20) {
pp = false;
}
if (maxmoney <= 0) {
pp = false;
}
}
function user1check() {
user1 = prompt("가위 바위 보 입력 ");
if (user1 !== "가위" && user1 !== "바위" && user1 !== "보") {
while (chk) {
user1 = prompt(`잘못입력하셧습니다.\n가위 바위 보 입력 `);
if (user1 == "가위" || user1 == "바위" || user1 == "보") {
chk = false;
}
}
}
chk = true;
}
function user2check() {
user2 = prompt(`${wintxt}\n묵 찌 빠 입력`);
if (user2 !== "묵" && user2 !== "찌" && user2 !== "빠") {
while (chk) {
user2 = prompt(`잘못입력하셧습니다.\n${wintxt}\n묵 찌 빠 입력`);
if (user2 == "묵" || user1 == "찌" || user1 == "빠") {
chk = false;
}
}
}
chk = true;
}
// 메인
while (pp) {
don();
user1check();
lsp(user1, com1);
mjb();
maxCnt++;
endgame();
}
console.log(
`${maxCnt}번 진행 \n 무승부 : ${smsm}번 \n 사용자 승 : ${userCnt}번 \n 컴퓨터 승 : ${comCnt}번\n 남은 금액 : ${maxmoney}`
);
728x90
'JavaScript' 카테고리의 다른 글
[Javascript] 생성자 함수와 자주쓰는 DOM, BOM 메소드 (0) | 2023.03.21 |
---|---|
[Javascript] callback 함수를 활용한 일반 함수와 화살표 함수 사용 및 this의 차이점 알아보기 (0) | 2023.03.16 |
[Javascript] 배열 함수를 활용한 로또 번호 생성기 만들기 (2) | 2023.03.15 |
[Javascript] for문 활용하기 (0) | 2023.03.10 |
[Javascript] 자바스크립트 이해하기 (0) | 2023.03.10 |