22.07.21-|| | , && &, 간단 게임 만들기
|| 와 | && 와 &
|| → 앞에만 true만 뒤에는 검사를 안함
|→ 앞 뒤 검사를 진행
⇒ 검사 횟수의 차이
TEST
package com.lsc.jul21_test;
import java.util.Random;
import java.util.Scanner;
/*
* 가위바위보 게임을 만들려고합니다.
* 숫자를 입력해서
* 콘솔창에 1.가위 2.바위 3.보
* 1~3까지 숫자를 입력하면
* 컴퓨터도 가위바위보 중 랜덤으로 하나 나오게 하고
* 거기에 이겼는지 졌는지에대한 결과가 콘솔창에 나오게
*/
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub\
Random r = new Random();
int ran = r.nextInt(3)+1;
System.out.println("==========================");
System.out.println("1.가위 2.바위 3.보");
System.out.println("==========================");
Scanner input =new Scanner(System.in);
int i = input.nextInt();
System.out.println("computer");
print(ran);
System.out.println("you");
print(i);
if(i==ran) {
System.out.println("비겼습니다.");
}else if((i-ran)==2 || (ran-i)==2 || (ran-i)==1) {
System.out.println("졌습니다.");
}else {
System.out.println("이겼습니다.");
}
}
static void print(int in) {
if(in==1) {
System.out.println("가위");
}else if(in==2) {
System.out.println("바위");
}else if(in==3) {
System.out.println("보");
}
}
}
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub\
Random r = new Random();
int ran = r.nextInt(3)+1;
String com = ran==1? "가위" : ran==2? "바위" : "보";
System.out.println("==========================");
System.out.println("1.가위 2.바위 3.보");
System.out.println("==========================");
Scanner input =new Scanner(System.in);
int i = input.nextInt();
//삼항연사자 사용
String you = i==1? "가위" : ran==2? "바위" : "보";
System.out.println(com);
System.out.println(you);
//3-1 ->v 2-1
if(i==ran) {
System.out.println("비겼습니다.");
}else if((i-ran)==2 || (ran-i)==2 || (ran-i)==1) {
System.out.println("졌습니다.");
}else if((ran-i)==2) {
System.out.println("이겼습니다.");
}
}
package com.lsc.jul21_test;
import java.util.Random;
import java.util.Scanner;
/*
* 가위바위보 게임을 만들려고합니다.
* 숫자를 입력해서
* 콘솔창에 1.가위 2.바위 3.보
* 1~3까지 숫자를 입력하면
* 컴퓨터도 가위바위보 중 랜덤으로 하나 나오게 하고
* 거기에 이겼는지 졌는지에대한 결과가 콘솔창에 나오게
*/
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub\
Random r = new Random();
String list[] = {"가위","바위","보"};
int ran = r.nextInt(3)+1;
System.out.println("==========================");
System.out.println("1.가위 2.바위 3.보");
System.out.println("==========================");
Scanner input =new Scanner(System.in);
int i = input.nextInt();
System.out.println(list[ran-1]);
System.out.println(list[i-1]);
//3-1 ->v 2-1 1,3->l 2-3 -v
int chk = ran-i;
if(i==ran) {
System.out.println("비겼습니다.");
}else if(chk==1 || chk==-2) {
System.out.println("졌습니다.");
}else if(chk==2 || chk==-1) {
System.out.println("이겼습니다.");
}
}
}
BaseBall Game
package com.lsc.jul21_test;
import java.util.Random;
import java.util.Scanner;
/*
* 숫자야구 게임
* 랜덤으로 3자리를 뽑고
* 스트라이크, 볼을 구현
*/
public class Test1 {
static int ran[]= {0,0,0};
static int strike = 0;
static int ball=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
compick();
System.out.println("랜덤값 생성");
System.out.printf("%d%d%d",ran[0],ran[1],ran[2]);
Scanner input = new Scanner(System.in);
while(true) {
pick(input.nextInt());
if(strike==3) {
break;
}
}
}
//랜덤으로 3자리 숫가자 나오는 메소드 중복 없게
static void compick() {
Random random = new Random();
int temp;
for(int i =0; i<3; i++) {
ran[i] = random.nextInt(9);
}
while(true) {
if(chkran()) {
break;
}
}
}
static boolean chkran() {
Random random = new Random();
if(ran[0]==ran[1]) {
ran[1]=random.nextInt(9);
return false;
}else if(ran[1]==ran[2]) {
ran[2]=random.nextInt(9);
return false;
}else if(ran[2]==ran[0]) {
ran[0]=random.nextInt(9);
return false;
}
return true;
}
//선택
static void pick(int input) {
int hund = input/100;
int ten = input%100/10;
int one = input%10;
jude(hund,ten,one);
System.out.printf("%d s %d ball",strike,ball);
}
//판단
static void jude(int hund,int ten, int one) {
strike=0;
ball=0;
if(ran[0]==hund) {
strike+=1;
}else if(ran[0]==ten | ran[0]==one) {
ball+=1;
}
if(ran[1]==ten) {
strike+=1;
}else if(ran[1]==hund | ran[1]==one) {
ball+=1;
}
if(ran[2]==one) {
strike+=1;
}else if(ran[2]==ten | ran[2]==hund) {
ball+=1;
}
}
}
디버깅
String you = i==1? "가위" : ran==2? "바위" : "보";
//삼항 연산자 비교문 여러개
if((i-ran)==2 || (ran-i)==2 || (ran-i)==1) -> 계속 값을 연산하고 비교하는게 성능에 안좋다
//따로 연산한 값은 빼주고 그 변수로 비교
int chk = ran-i;
if(i==ran) {
System.out.println("비겼습니다.");
}else if(chk==1 || chk==-2) {
System.out.println("졌습니다.");
}else if(chk==2 || chk==-1) {
System.out.println("이겼습니다.");
}