// 붙혀 넣기후에 Ctrl + i 로 자동 코드 정리 해주세요 


int bonusNum = 0;
int count = 0;
boolean bonusCK = false;
int[] userLotto = new int[6];
int[] comLotto = new int[6];
Scanner sc = new Scanner(System.in);
int[] panel = new int[45];
ArrayList<Integer> eqNumbers = new ArrayList<Integer>();
ArrayList<Integer> eqbonusNums = new ArrayList<Integer>();
for(int i =0; i<panel.length; i++) {
panel[i] = i+1;
}
// 유저 넘버입력
int userNum;
for(int i = 0; i<userLotto.length; i++) {
do {
System.out.println("※※※※※로또 번호를 입력하세용. 번호는 1~45 번까지 입니다.※※※※※");
userNum = sc.nextInt();
if(userNum < 1 || userNum>45) {
System.out.println("▲▲▲▲▲1~45 범위의 로또 번호를 입력해주세요!▲▲▲▲▲\n");
}else if(panel[userNum-1] == -1){
System.out.println("▲▲▲▲▲중복된 로또 번호를 입력했습니다. 다시 입력해주세요 !▲▲▲▲▲\n");
}
}while ( (userNum < 1 || userNum>45) || panel[userNum-1] == -1 ); //userNum 에 50 입력하면 panel[50-1] 가 실행안됨 why? 논리 순서상
userLotto[i] = userNum;
panel[userNum-1] = -1;
}
// 유저 버블정렬
int temp;
for(int i =0; i<userLotto.length-1; i++) {
for(int j=0; j< userLotto.length-1-i; j++) {
if(userLotto[j]>userLotto[j+1] ) {
temp = userLotto[j];
userLotto[j]=userLotto[j+1];
userLotto[j+1] = temp;
}
}
}
// 패널 값 다시 초기화
for(int i =0; i<panel.length; i++) {
panel[i] = i+1;
}
int randomNum;
// 컴퓨터 번호 랜덤출력
for(int i = 0; i<comLotto.length+1; i++) {
do {
randomNum = (int)(Math.random()*8)+1;// 45
}while ( panel[randomNum-1] == -1 );
if(i == comLotto.length){
bonusNum = randomNum;
}else {
comLotto[i] = randomNum;
}
panel[randomNum-1] = -1;
}
// 버블 컴퓨터 정렬
for(int i =0; i<comLotto.length-1; i++) {
for(int j=0; j< comLotto.length-1-i; j++) {
if(comLotto[j]>comLotto[j+1] ) {
temp = comLotto[j];
comLotto[j]=comLotto[j+1];
comLotto[j+1] = temp;
}
}
}

//맞는거 번호 비교
for(int i=0; i < userLotto.length; i++) {
for(int j=0; j < userLotto.length; j++) {
if(comLotto[i] == userLotto[j]) {
count++;
break;
}
}
}
// 유저 넘버 출력
System.out.println("==================================================");
System.out.print("입력한 번호는 : ");
for(int i=0; i< userLotto.length; i++) {
System.out.print(userLotto[i]+" ");
}
System.out.println();
System.out.println("==================================================");
System.out.print("당첨번호 는 : ");
// 컴퓨터 번호출력
for(int i=0; i< comLotto.length; i++) {
System.out.print(comLotto[i]+" ");
}
System.out.println();
System.out.println("==================================================");
// 보너스 번호출력
System.out.println("보너스 번호 : " + bonusNum);
System.out.println("==================================================");
// 맞는거 번호출력.
for(int i=0; i < userLotto.length; i++) {
for(int j=0; j < userLotto.length; j++) {
if(comLotto[i] == userLotto[j]) {
eqNumbers.add(comLotto[i]);
}
}
if(userLotto[i] == bonusNum) {
eqbonusNums.add(bonusNum);
}
}
System.out.println("맞은번호는 ? ");
for(int i=0; i < eqNumbers.size(); i++) {
System.out.print(eqNumbers.get(i)+" ");
}
System.out.print("\t "+eqNumbers.size()+"개 맞았습니다.\n");
// 보너스 번호 맞춤
for(int i=0; i < eqbonusNums.size(); i++) {
System.out.print(eqbonusNums.get(i)+" ");
}
System.out.print("\t 보너스 번호 "+eqbonusNums.size()+"개 맞았습니다.\n");
for(int i=0; i < userLotto.length; i++) {
if(bonusNum == userLotto[i]) {
bonusCK = true;
break;
}
}
if(count == 6) {
System.out.println("축하합니다. 1등입니다. 사표 던지세요.");
}else if(count==5 && bonusCK == true) {
System.out.println("축하합니다. 2등입니다.");
}else if(count==5 && bonusCK == false) {
System.out.println("축하합니다. 3등입니다.");
}else if(count==4) {
System.out.println("축하합니다. 4등입니다.");
}else if(count==3) {
System.out.println("축하합니다. 5등입니다.");
}else {
System.out.println("꽝 다음기회에");
}

'웹 프로그래밍 > JAVA' 카테고리의 다른 글

JAVA - Text 파일 한줄씩 읽기 테스트  (0) 2018.07.17
ArrayList 출력 테스트  (0) 2018.07.17
JAVA 업다운 게임 소스  (0) 2018.07.17
JAVA 야구프로그램 소스  (0) 2018.07.17
JAVA - 1. 로또 프로그램 정답본  (0) 2018.07.17
JAVA - 간단한 업다운 게임  (0) 2018.07.13
블로그 이미지

잡코드맨

댓글을 달아 주세요

이클립스로 작업했습니다.


코드는 다른곳에서 작업하고 들여쓰기가 안되어있네요... ㅠㅠ


// 붙혀넣기후 Ctrl + i 눌러주세요
// 업다운 게임 입니다!
System.out.println("=================== 업다운 게임! 횟수 20번안에 ! ===================");
System.out.println("범위는 1~100까지 입니다 숫자를 입력해주세요.");
int ans = 0;
int hint = 20;
int des = (int) (Math.random() * 100) + 1; //1~100 까지 랜덤 값
Scanner input = new Scanner(System.in);
//System.out.println(des);
while (true) {
ans = input.nextInt();
hint--;
System.out.println("남은횟수 "+hint+" 회");
if(ans < des) {
System.out.println("입력한 값은 " + ans + "입니다. 정답보다 값이 낮습니다!" );
}else if(ans > des) {
System.out.println("입력한 값은 " + ans + "입니다. 정답보다 값이 높습니다!" );
}else if(hint==0){
System.out.println("남은 기회를 모두 사용하셨습니다. 게임오버~");
break;
}else {
System.out.println("축하합니다. 정답입니다!" );
break;
}
}
input.close();

'웹 프로그래밍 > JAVA' 카테고리의 다른 글

JAVA - Text 파일 한줄씩 읽기 테스트  (0) 2018.07.17
ArrayList 출력 테스트  (0) 2018.07.17
JAVA 업다운 게임 소스  (0) 2018.07.17
JAVA 야구프로그램 소스  (0) 2018.07.17
JAVA - 1. 로또 프로그램 정답본  (0) 2018.07.17
JAVA - 간단한 업다운 게임  (0) 2018.07.13
블로그 이미지

잡코드맨

댓글을 달아 주세요

 boolean 자료형

//참과 거짓을 표현하는 자료형으로 true 혹은 false 값을 갖습니다. JavaScript에서 true는 1과, false는 0과 같다고 표현되기도 합니다.


alert(); >> 경고창으로 띄어줍니다,.

/*

alert(30<20);//false

alert(30>20);//true

alert(30==20);//false

alert(30>=30);//true

*/

alert(30<20 && 20>10); 

// 30<20 -> false=0 

// 20>10 -> true =1

// 0 && 1 ==> 0  and 는 논리 곱 1*0=0(false)


alert(30<20 || 20>10); 

// 30<20 -> false=0 

// 20>10 -> true =1

// 0 || 1 ==> 0  or 은 논리 합 1+0=1(false)



블로그 이미지

잡코드맨

댓글을 달아 주세요

이전에 하드코딩으로 만든 table을 TCPDF 를 이용하여 웹에다 뿌릴때


무한루프 infinity loop 를 경험한적이 있다.


무한루프가 걸리면 크롬 브라우저가 정상적으로 작동하지않고


APM setup 종료및 다시 시작시에도 엄청난 메모리를 잡아먹으면서 늦춰지는경우가 있다.


** 하지만 실제로  작업관리자 (Ctrl+Shift+ESC) 를 켜서 확인해도 메모리 사용량이 표시되지않는다.


이러한 증상을 겪었다면 


본인의 PC가 SSD 디스크를 사용하고 있으면 재시작시 문제가 안되겠지만


HDD 를 사용할경우 부팅도 느려죽겠는데 언제 재시작 해서 언제 또 테스트를 하냐..


엄청 답답하고 힘들다.


이문제를 해결하려면 


여러 문제가 있겠지만


느려진 상태에서 브라우저를 킨후에 쿠키및 사용정보 삭제를 하고나서 APM SETUP을 중지하고 

다시키는수밖에 없다,


SET TIME 30초에 걸려서 그런지 아닌지는 아직 의문이다...


이 버그를 안내려면 어쩔수없이 자신의코딩을 한줄이던 태그별로 묶어서 주석으로 묶어서 컴파일 해보는수밖에없다,.


$html='

<table>

...........

...........

..........

</table>

<!--<table>

...........

...........

..........

</table>

<table>

...........

...........

..........

</table>-->

';


이런식으로 말이다..


좀더 편한 라이브러리가 있을수도 있고 버그가 적은 라이브러리가 있을지모르지만


TCPDF 사용자라면 이런경험을 가진사람이 적지않을거라본다...



인터넷을 찾아봐도 근데 해결법은 많지않다..






----------------스타일 전체 안먹는 현상 아시는분 제보 부탁드립니다. --------------

<style>

/* 아이디를 주고 #a111 {------} 이런식으로 해도 안먹음;;;*/


</style>



블로그 이미지

잡코드맨

댓글을 달아 주세요

안녕하세요 초보개발자 냑쥐입니다;


어제 저희 회사에서 서비스중인  웹페이지에서 특정문자열 잘라서 표시해달라는 요청이있어서...



자료 기록겸 포스팅합니다..ㅎㅎ



저희 회사 상황에서는 ...


어떠한 값을 외부에서 서버 데이터베이스에 인써트 시켜주면 


어떠한 수치값들이 저장이 됩니다


클라이언트가 저희 엔지니어와 컨텍하여 이항목은 소수점 몇자리 까지 잘라주시고..


아니면 전체적인 기준이 내려오면 


웹엔지니어들은 그 틀에 맞춰 코딩을 합니다.



어떠한 프로그램에서 값들을 받을때 그 형식은 저희가 예를들어 118.15425_ml 이런형식으로 받습니다.


그럼 그것을 웹페이지에 뿌려줄땐 



SELECT 해서  row로 각각의 필드들을 받아오죠...



만약 실 데이터베이스의 값이 a005라는 필드에 값이 118.15425_ml 라 치면


$insert1 = $row[a005];


이런식으로 받겠지요...


그럼 insert1 변수에는  118.15425_ml 값이 저장됩니다.


웹에서 뿌려줄때


<input value ="<?=$insert1?>">

이런식으로 통상적으로 뿌려주게 됩니다.

(인풋태그 말고도 사용할수 있음.)



값이 너무 길죠..?


그래서 전체적인 기준점이 내려오면 참편합니다.. 함수화시켜서 저장하면 끝인데 

만약 폼마다가  다르다면... 그냥 하나씩 일일이 싸줄수밖에요...



일단 118.15425 이렇게만 출력해보겠습니다.


그코딩은


$insert1 = explode("_",$row[a005]);


<input value ="<?=$insert1[0]?>"> 찍으면


118.15425 이런식으로 나옵니다.



************************부연설명 **************************



$insert1 = explode("_",$row[a005]);

 저장할변수명   explode("_")

    함수명   특정문자,자를값


118.15425_ml 


                 특정문자 기준으로  배열로 나눈다.


$insert1[0] = 118.15425    $insert1[1]="ml"


이렇게 나눠집니다.


***********************************************************


이걸또 substr로 자르던... 또 묶어서 사용하시던 아니면 바로 보여지는 태그의 value  값으로 

한꺼번에 쓰시던... 그건 자유입니다



즐프 하시길 바랍니다 수고들 하세요~~~~






블로그 이미지

잡코드맨

댓글을 달아 주세요