ข้ามไปที่เนื้อหาหลัก

เรื่องที่แนะนำ

คู่มือ Java ฉบับทันสมัย (อัปเดตล่าสุดปี 2025)

 คู่มือ Java ฉบับทันสมัย (อัปเดตล่าสุดปี 2025) บทนำ Java ยังคงเป็นภาษายอดนิยมที่ได้รับความนิยมอย่างต่อเนื่องตั้งแต่ยุค 1990 จนถึงปัจจุบัน ในปี 2025 Java ได้ก้าวหน้าอย่างมากทั้งด้านภาษาหลักและเครื่องมือสนับสนุน ล่าสุด Java 24 ได้เปิดตัวออกมาแล้ว และ Java 21 เป็นเวอร์ชัน LTS (Long-Term Support) ที่แนะนำให้ใช้งานสำหรับระบบจริงในระยะยาว บทความนี้จะช่วยให้คุณเข้าใจภาพรวมของ Java เวอร์ชันล่าสุด รวมถึงฟีเจอร์เด่น โครงสร้างภาษาที่ควรรู้ และแนวทางการพัฒนา Java ยุคใหม่ ภาพรวมเวอร์ชัน Java ล่าสุด เวอร์ชัน สถานะ วันเปิดตัว Java 24 เวอร์ชันล่าสุด มีนาคม 2025 Java 21 เวอร์ชัน LTS ล่าสุด กันยายน 2023 Java 17 LTS รุ่นก่อนหน้า กันยายน 2021 Java 11 LTS เก่า กันยายน 2018 โครงสร้างพื้นฐานของภาษา Java คลาสและอ็อบเจกต์ : โครงสร้างหลักของโปรแกรม Java Primitive Types : int, double, char, boolean เป็นต้น Control Statements : if, switch, while, for, do-while Methods : การแยกโค้ดเป็นหน่วยที่นำกลับมาใช้ซ้ำได้ Array และ Collection : จัดเก็บและจัดการข้อมูลหลายรายการ Exception Handling : try-catch-finally OOP Co...

สอนสร้างเกมส์เศรษฐีออนไลน์ด้วย Springboot

การสร้างบอร์ดเกมเศรษฐีออนไลน์อย่างง่ายด้วย Spring Boot

ในบทความนี้ เราจะสร้างโปรเจกต์เว็บแอปพลิเคชันบอร์ดเกมเศรษฐีอย่างง่าย โดยใช้ Spring Boot ซึ่งเป็นเฟรมเวิร์กที่นิยมมากในการพัฒนาเว็บแอปพลิเคชันด้วยภาษา Java ที่สามารถทำงานได้อย่างรวดเร็วและมีประสิทธิภาพ

1. เตรียมความพร้อม

เครื่องมือที่ต้องใช้

  • Java Development Kit (JDK) เวอร์ชัน 17+
  • Spring Boot (ใช้ Spring Initializr)
  • Maven หรือ Gradle สำหรับจัดการ dependency
  • IDE เช่น IntelliJ IDEA หรือ Eclipse
  • ฐานข้อมูล เช่น H2 (in-memory database) หรือ MySQL

2. สร้างโปรเจกต์ Spring Boot

  1. ไปที่ Spring Initializr
  2. ตั้งค่าโปรเจกต์:
    • Project: Maven
    • Language: Java
    • Spring Boot Version: 3.x
    • Dependencies:
      • Spring Web
      • Spring Data JPA
      • H2 Database
  3. ดาวน์โหลดไฟล์ ZIP และนำเข้าใน IDE ที่ใช้งาน

3. สร้างโครงสร้างเกมเศรษฐี

3.1 สร้างโมเดลข้อมูล (Entities)

Player.java


@Entity
public class Player {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private int balance;
    private int position; // ตำแหน่งปัจจุบันของผู้เล่น

    // Constructor, Getter, Setter
}

    

Property.java


@Entity
public class Property {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private int price;
    private Long ownerId;

    // Constructor, Getter, Setter
}

    

3.2 สร้างคลาสกระดานเกม (Board)

Board.java


import java.util.List;

public class Board {
    private final List<String> spaces;

    public Board() {
        this.spaces = List.of(
            "Start", "Property 1", "Property 2", "Chance", "Property 3",
            "Jail", "Property 4", "Free Parking", "Property 5", "Go To Jail"
        );
    }

    public int getBoardSize() {
        return spaces.size();
    }

    public String getSpace(int position) {
        return spaces.get(position % spaces.size()); // วนกลับไปที่ Start
    }
}

    

3.3 สร้าง Service และ Logic หลัก

GameService.java


@Service
public class GameService {
    @Autowired
    private PlayerRepository playerRepository;

    private final Board board = new Board();
    private final Random random = new Random();

    public int rollDice() {
        return random.nextInt(6) + 1; // ทอยลูกเต๋า 1-6
    }

    public String movePlayer(Long playerId) {
        Player player = playerRepository.findById(playerId).orElseThrow();

        int diceRoll = rollDice();
        int oldPosition = player.getPosition();
        int newPosition = (oldPosition + diceRoll) % board.getBoardSize();

        player.setPosition(newPosition);
        playerRepository.save(player);

        return String.format(
            "Player %s rolled a %d and moved from %s to %s.",
            player.getName(), diceRoll, board.getSpace(oldPosition), board.getSpace(newPosition)
        );
    }
}

    

3.4 สร้าง Controller

GameController.java


@RestController
@RequestMapping("/api")
public class GameController {
    @Autowired
    private GameService gameService;

    @PostMapping("/player/roll")
    public String rollDiceAndMove(@RequestParam Long playerId) {
        return gameService.movePlayer(playerId);
    }
}

    

4. ทดสอบระบบ

ทดสอบผ่าน Postman หรือ Curl:


POST http://localhost:8080/api/player/roll?playerId=1

    

ตัวอย่างผลลัพธ์:


Player John rolled a 4 and moved from Start to Property 4.

    

5. สรุปผลการทำงาน

ในบทความนี้ ยกตัวอย่างระบบทอยลูกเต๋าและเคลื่อนที่ผู้เล่นตามกระดานวงกลมแบบง่าย โดยใช้ Spring Boot และจัดการข้อมูลด้วย JPA ผู้อ่านสามารถขยายระบบได้อีกในอนาคต เช่น การจ่ายค่าเช่า การซื้อที่ดิน และสถานะต่าง ๆ บนกระดาน 🎲

ความคิดเห็น

บทความที่ได้รับความนิยม