經歷了一連串的實作與調整,我們的 Tic-Tac-Toe(井字棋) Swing 遊戲專案終於正式劃下完美的句點! 從最開始建立一個空無一物的黑色視窗,到加入 3...
今天要設定平手的情況。 新增回合計數器:turns 變數首先,我們在類別屬性區塊中新增一個 turns 變數來計算總下棋步數: int turns = 0...
先前做了水平判定,今天要來做垂直判定和對角線判定。 Part 1.垂直判定 checkWinner() 垂直方向檢查繼水平檢查之後,我們需要用類似的邏輯來檢...
在前面的單元中,我們成功讓棋盤具備了互動與輪流下棋的功能。今天我們要讓連成一線時(橫向)停止遊戲。 新增 gameOver 狀態控管首先,我們在類別成員變數...
在前面的單元中,我們完成了遊戲視窗與 3x3 棋盤按鈕的靜態外觀。今天我們要迎來最關鍵的互動邏輯——ActionListener讓玩家能夠點擊格子,並實現 X...
在前面的單元中,我們完成了遊戲視窗框架以及頂部的標題面板。今天我們要進入這個專案最核心的部分——在 3x3 網格面板中放入互動按鈕,並初始化遊戲狀態變數。...
在完成了頂部文字標題面板後,今天我們要進入遊戲畫面的核心部分——建立 3x3 九宮格棋盤的底座面板。 宣告棋盤面板:首先,我們在類別屬性區塊新增一個 boa...
在上一篇成功建立了視窗,這篇要做視窗頂部標題。 發現上一篇忘記給遊戲視窗加標題了,今天要把它補上去: JFrame frame = new JFrame(...
從今天開始,我們要將前面 21 天所學到的所有 Java 核心觀念(類別、繼承、多型、ArrayList、二維陣列、例外處理與檔案讀寫)全部串聯起來,製作一個簡...
TL;DR jmake-proxy可以把Java介面方法的實作方式和函式本身分開,並透過lisp-this傳入狀態。implementation可以是函式、ha...
在前面學完了隨機數與例外處理之後,這篇要來學習Java中的檔案讀寫(File I/O)基礎,學會如何把資料寫入文字檔中,以及如何從文字檔中把資料讀取出來。...
在前面學完了例外處理(try-catch)之後,這篇要來學Java中的內建小工具:Random類別,專門用來在程式中生成各種隨機數值。 為什麼需要 Ran...
在前面的單元中我們學會了各種資料結構與陣列。但在實際寫程式時,常常會遇到一些預料之外的狀況(例如:使用者不小心輸入了文字而不是數字、或者陣列讀取超過範圍)。如果...
在上一篇我們學到了能夠動態增減的一維動態陣列 (ArrayList),但在某些場景下(例如棋盤、地圖、遊戲畫面),我們需要用到「行與列(X 軸與 Y 軸)」的矩...
在前面的單元中我們學過了傳統的固定長度陣列(Array)。但在實際開發程式時,若需要改變陣列的長度就被限制住了,因此今天要學的動態陣列就可以解決這個問題。...
在上一篇學會了繼承機制,今天要學的是多型和方法覆寫。 什麼是方法覆寫 (Override)? 當子類別繼承了父類別的方法後,如果覺得父類別原本的方法寫得...
在上一篇了解到了建構子,這篇要學的是繼承機制。 什麼是繼承 (Inheritance)? 繼承可以讓一個類別(子類別 / Subclass)去沿用另一個...
在上一篇討論了封包,這篇要學物件導向中的關鍵:建構子。 什麼是建構子 (Constructor)? 是一種特殊的方法(Method),會在使用 new...
上一篇學到了類別方法的回傳值,今天要學Package 封包和權限控制。 封包 Package:一個程式可能是由很多個檔案、類別組成的,封包就是把檔案做分類...
在上一篇了解了class類別方法的基礎觀念,這篇會學回傳值的部分。 方法的回傳值 在方法名稱前面定義回傳值資料型態,方法區塊中使用return資料中段執...
在上一篇學到了class的類別屬性基本觀念,今天要學的是類別方法基本觀念。 類別的組成:包含屬性和方法。 -> 設計類別中包含的資料和功能。 類...
TL;DR 前一篇已經讓 CalcFX 成為可啟動的 JAR,但它還沒有真正做到「點一下就能執行」的程度。最關鍵的問題是:執行時仍然依賴外部的 JavaFX S...
在上一篇學到了class類別的基礎觀念,今天這篇是要學類別屬性。 類別的組成:設計類別中包含的資料和功能。 類別的定義中,主要包含屬性和方法。 定義...
在上一篇學到了陣列的用法,將陣列和for迴圈搭配使用。這篇要學的是class類別的基礎概念。 類別 class 類別在程式中的角色:(1.)組織程式的基...
在上一篇已經學會了迴圈和迴圈指令是如何應用的,在這篇要學的是陣列,也會學到陣列與迴圈的搭配使用。 陣列 Array:資料型態的一種,用來存放許多同型態的資料...
TL;DR 前面幾篇已經把 JavaFX 的畫面、FXML 的事件、以及 ABCL 的計算邏輯接起來。這一篇不再寫新功能或調整架構,要準備把已經能跑的程式整理成...
在上一篇學習了迴圈基礎,今天要學和迴圈搭配的指令。 迴圈指令 強制返回迴圈開頭,進入下一圈。continue; 強制結束迴圈。break; co...
TL;DR 前一篇已經用 Java 載入同一份 FXML,並確認事件可以從按鈕一路進入 Java Controller。這一篇則把它接到真正的 Common L...
在上一篇學到了判斷式的使用,這篇要學的是迴圈的基礎。 while 迴圈:滿足某個條件,執行程式區塊,一直重複執行直到條件不滿足為止。 基礎語法 whi...
在上一篇已經學會了java基本的運算符號,了解到Day02學到的資料型態的重要性。在這篇會學判斷式。 流程控制:程式最核心的運作邏輯。 判斷式(今天要學...