분류 전체보기 19

Java 응용 (10. GUI기반 자바 타자 연습 게임)

“성적이나 결과는 행동이 아니라 습관입니다.”  아리스토텔레스 자바 SWING을 이용하여 이전의 타자 연습게임을 GUI와 함께 보완import java.awt.*;import java.awt.event.*;import java.util.Random;import javax.swing.*;import javax.swing.text.*;class TypingGameGUI extends JFrame { private String[] sentences; private Random random; private JTextPane textPane; private JLabel promptLabel; private JLabel timeLabel; private JLabel accuracyL..

Java 응용 2024.06.15

Java 응용 (9. Echo Server / Client)

1. 클라이언트가 서버로 메시지를 보낼 수 있는 환경을 구축 2. 포트번호는 개인의 환경에 맞추어 바꾸어 주면 됨 3. Server Code와 Client Code를 같은 패키지 안에 넣어주는 것을 권장 Server Code package server_test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class EchoServer { private final ServerSocket serverSocket; public Ec..

Java 응용 2024.04.12

Java 응용 (8. 끝말잇기 게임)

n명의 플레이어가 끝말잇기 게임에 참여한다. 참가자 이름은 사용자가 설정 할 수 있게 한다. 첫 번째 단어는 아버지로 고정한다. 틀리는 사람이 나올 경우 게임을 종료한다. 누가 틀렸는지 출력한다. Code1 import java.util.Scanner; public class EndGame { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("참가자 수를 입력하세요: "); int n = sc.nextInt(); String[] names = new String[n]; for (int i = 0; i < n; i++) { System.out.print((i + 1) + "번째 참가자 ..

Java 응용 2024.04.11

Java 응용 (7. Thread를 이용한 경마 게임)

“탁월함은 기술이 아니다. 태도입니다.” – 랄프 마스턴 사용자로부터 경주마 개수를 입력받고 입력받은 개수만큼 독립적으로 경주마는 움직인다. 각 경주마는 경기장을 10바퀴 도는데 한번 돌때마다 10m씩 이동한다. 한번 돌때마다 이동한 거리 출력해야하며, 100m가 되었을 때 결승선이 통과된다. 1. 사용자의 입력으로 경주마의 마릿수를 받고 2. 입력 받은 마릿수만큼 스레드를 생성하고 3. 생성된 스레드의 RUN 블럭에 반복분(10번)을 수행 Code 1 import java.util.Scanner; public class HorseRun extends Thread { private int horseId; public HorseRun(int horseId) { this.horseId = horseId; }..

Java 응용 2024.04.08

Java 응용 (6. 랜덤한 숫자 맞추기)

“진짜 어려움은 극복할 수 있습니다. 정복할 수 없는 것은 상상 속의 것들뿐이다.” – 시어도어 N. 베일 랜덤한 숫자 하나를 맞추는 게임을 제작 1~100까지의 범위 중 하나의 랜덤한 숫자가 생성된다. 만약 입력한 숫자가 랜덤한 숫자보다 작으면 "더 큰 숫자를 입력해주세요" 라고 출력, 입력한 숫자가 랜덤한 숫자보다 크면 "더 작은 숫자를 입력해주세요"를 출력 10번의 시도를 준다 게임이 종료되고 계속하고 싶으면 y, 종료하고 싶으면 n 을 입력하게 한다. Code import java.util.Random; import java.util.Scanner; public class RandomNumberGame { public static void main(String[] args) { Random ran..

Java 응용 2024.04.08

주피터 노트북(jupyter notebook) 파일 pdf 변환 하는 법

주피터 노트북의 기본 PDF 변환은 여러과정이 있어 까다로운 경우가 있다. 주피터 노트북에서 PDF로 변환 하기 위해서는 여러가지 방법이 있는데 그 중 하나인 HTML을 이용해서 PDF로 변환 하는 법을 알려드리겠습니다. 위 사진 처럼 FILE > Download as > HTML 을 순차적으로 클릭하시면 HTML파일이 다운로드가 됩니다. 다운로드된 HTML 파일을 열어 주시면 위와 같은 화면이 나오는데 오른쪽 위에 Chrome 맞춤설정 및 제어로 들어가시면 인쇄가 있습니다. 인쇄를 클릭해주시면 위와 같은 창이 뜨는데 대상에서 PDF로 저장을 눌러주시면 PDF로 저장이 됩니다 ㅎㅎ 글쓴이는 맥북 에어 m2에서 변환하였으나 윈도우에서도 가능합니다.

Tips 2024.03.14

Java 응용 (5. 이메일 검색 서비스)

“훌륭한 사람은 레이저 같은 집중력을 가진 평범한 사람입니다.” – 브루스 리 검색 서비스를 구현해보자 사용자로부터 email을 입력받으면 서비스를 통해 사용자를 검색하고 입력된 사용자의 정보를 출력해보는 프로그램 사용자 정보는 이름과 이메일을 포함하고, 필수적인 정보는 이메일이다. 이름이 없는 경우 no name으로 표기된다. 사용자 정보는 기존 db에 5건이 저장되어 있으며, 추가 사용자를 등록시 중복된 이메일이 온다면 db에 저장되지 않는다. Customer import java.util.Objects; public class Customer { String name; String email; public Customer(String name, String email){ this.email = em..

Java 응용 2024.03.14

Java 기초 (5. Hashcode 와 생성자 함수)

“더 이상 상황을 바꿀 수 없을 때 우리는 스스로를 변화시켜야 합니다.” – 빅터 프랭클 Hashcode 자바에서는 객체의 주소값을 이용해서 해싱(Hashing) 기법을 통해 코드를 만든 후 변환 hashcode는 주소값이 아니고 주고값을 만든 고유한 숫자값 example import java.util.HashSet; import java.util.Objects; import java.util.Set; public class Person { String name; public void setName(String name){ this.name = name; } @Override public boolean equals(Object obj){ return Objects.equals(this.name,((Per..

Java 기초 2024.03.13

Java 기초 (4. Overload vs Override)

“노력을 대신할 수 있는 것은 없습니다.” – 토마스 에디슨 Overload 오버로드 다형성의 특징중에 하나 → 자바에서 다형성의 개념으로 적용 오버로딩 한 클래스내에 동일한 메소드가 중복되어 정의된 경우 매개변수 형이나 개수를 다르게 설정할 수 있다. void simpleMethod(int n) {...} void simpleMethod(int n, String s) {...} int simpleMethodOther() {...} //반환형이 다른경우 오버로딩이 성립되지 않음 Example public class Person { int age; String name; public void setAge(int age){ // if(age > 0) age =- 909090; this.age = age; }..

Java 기초 2024.03.12

Java 기초 (연습하기-1)

“미루는 것은 쉬운 일을 어렵게 만들고 어려운 일을 더 어렵게 만든다.” – 메이슨 쿨리 Q1. 삼성 에어컨을 20평형짜리를 1000원을 주고 구입했다. 해당 에어컨의 기본온도는 10도로 고정되어있고, 리모콘을 통해 에어컨을 on/off 할수 있고 해당 온도는 사용자의 명령에 따라 +1, -1도식 조절가능하다. 만약 에이컨 상태가 on 상태가 아니라면 온도조절을 할수없다. 또한 현재의 에어컨 상태를 표시할수 있어야 한다. ex) 상태 출력예: 에어컨은 on 상태이고 현재온도는 12도이며, 삼성브랜드에 가격은 1000원 public class Aircon { int size; int price; String brand; int temp = 10; boolean power; public boolean pow..

Java 기초 2024.03.12