天天看點

Java 項目案例 1、大富翁遊戲系統

項目案例:  大富翁遊戲系統

功能:

有注冊功能,登陸功能,抽獎功能,查詢功能,修改密碼功能,删除賬号功能,退出功能

思路: 

需要建立一個使用者類,每次建立注冊使用者時new一下即可。

需要建立一個管理類,具備增删改查的方法。

需要建立一個測試類,在主方法中循環顯示主菜單頁面。

各個類的具體說明:

User類:

定義私有的nama(賬号)、私有的password(密碼)、私有的nums(會員号)、

并向外面提供一系列公共的getter and setting方法,來調用本類的屬性。

建立預設的構造方法和帶參的構造方法,方遍直接指派。

可能用到的知識點:

private:封裝

把屬性封裝起來,拒絕外面的直接指派和調用,并且向外面提供公共的方法來設定和調用 本類屬性。

構造方法:

方法名和類名相同,沒有聲明傳回類型的方法,(不可被繼承)

分為無參的構造方法(預設的構造方法,一般要保留),

帶參的構造方法,方遍直接指派。(在執行個體化對象時直接指派)。

在定義一個公共的列印方法,友善輸出本類資訊。

Operation類:(管理類)

在類中建立一個存儲使用者對象的數組,數組類型與元素類型相同 User[] user = null;

建立一個構造方法,傳入一個數組的大小,user = new User[size];

如果沒有傳入數,或者傳入數小于0,則給他一個預設大小10。

定義一個count=0,記錄數組中元素的個數,并且可以作為下标周遊數組

注冊的方法:

先判斷元素個數,如果數組滿了,就建立一個更大的數組,把資料拷貝過來即可

傳入一個使用者,周遊使用者數組,檢視已有使用者的賬号是否存在,如果存在,給出提示,重新輸入

如果不存在,則存儲起來,count++;

登陸的方法:

傳入一個使用者,或者轉入賬号密碼;周遊數組,如果比對到賬号,檢視密碼相同,則傳回boolean值 true

如果沒有比對到,則傳回false

            通過boolean類型的值來判斷是否登入成功。

修改密碼的方法

用第一個方法比對賬号密碼,成功傳回下标,失敗傳回-1

再用第二個方法,傳入下标和新密碼       

把 新傳入的密碼 指派給對應使用者對象的密碼屬性

删除的方法

    循環周遊 數組 ,先比對到賬号

    如果密碼也比對到,把删除位置以後的元素 往前挪一位,users[count] == null;把最後的元素釋放

    count -1

抽獎方法:

可以在實驗類中直接比較,也可以在本方法中比較,

測試類:

執行個體化對象的準備幸運數字  ,死循環,保持可以 一直在主菜單狀态

   用switch  進入不同的 功能

每個功能

有的設定死循環,重複判斷 輸入的賬号密碼,

有的建立 使用者對象

部分代碼

Java 項目案例 1、大富翁遊戲系統
/**
     * 注冊的方法:
     */
    public int register(String userName, String userPassword) {
        //先判斷元素個數,如果數組滿了,就建立一個更大的數組,把資料拷貝過來即可
        if (count == user.length) {
            user = java.util.Arrays.copyOf(user, user.length + 10);
        }
        //傳入一個使用者,周遊使用者數組,檢視已有使用者的賬号是否存在,如果存在,給出提示,重新輸入
        for (int i = 0; i < count; i++) {
            if (userName.equals(user[i].getName())) {
                return -1;
            }
        }
        //如果不存在,則存儲起來,count++;
        user[count] = new User(userName, userPassword, generateLuckyNumber());
        count++;
        return count - 1;
    }

    /**
     * 登陸的方法:
     */
    public User login(String userName, String userPassword) {
        //傳入一個使用者,或者轉入賬号密碼;周遊數組,如果比對到賬号,檢視密碼相同,則傳回boolean值 true
        int index = matchUserIndex(userName, userPassword);
        if (index > -1) {
            loginIndex = index;
            return user[index];
        }
        return null;
    }

    /**
     * 更改密碼
     *
     * @param userName        使用者名
     * @param userOldPassword 舊密碼
     * @param userNewPassword 新密碼
     * @return
     */
    public boolean changePassword(String userName, String userOldPassword, String userNewPassword) {
        int index = matchUserIndex(userName, userOldPassword);
        if (index > -1) {
            user[index].setPassword(userNewPassword);
            return true;
        }
        return false;
    }

    /**
     * 删除使用者
     *
     * @param userName
     * @param userPassword
     * @return
     */
    public boolean deleteUser(String userName, String userPassword) {
        int index = matchUserIndex(userName, userPassword);
        if (index > -1) {
            for (int i = index; i < count; i++) {
                user[index] = user[index + 1];//把删除位置以後的元素 往前挪一位
            }
            user[count - 1] = null; //把最後的元素釋放
            count--;//數量減1
            return true;
        }
        return false;
    }
           

開源位址:https://github.com/zynalnacaa/java_demos