軟體構造實驗問題(一) list和set

2021-10-05 02:34:11 字數 821 閱讀 1579

最近在做軟體構造實驗時,遇到了乙個問題:在實驗中要求乙個支援下棋的遊戲程式,要求棋子無限多。

我起初的想法是在遊戲開始對玩家進行初始化時,給每個玩家配備足夠多的棋子,如:

for

(int i=

0;i)

只要保證單個玩家的棋子填滿這個棋盤,就能夠保證在遊戲中玩家的棋子是無限多的。

但是在初步完成實驗後,進行了測試,發現在棋盤足夠大時,並不能保證玩家的棋子夠用,所以我改變了方法。

由於西洋棋玩家雙方的棋子是有限的,所以需要改變方法:

(1)將圍棋初始化時,分配給兩個玩家,每人乙個棋子

public

void

initgogame

(player playera,player playerb)

(2)由於圍棋的棋子不可以移動,所以我選擇在每次玩家放置棋子後,再為他分配乙個棋子,這樣就可以使得玩家永遠擁有一顆未放到棋盤上的棋子,就保證了棋子的無限多。

然而之後我遇到了乙個新的問題,我在player類中儲存玩家的棋子用的是set,但是在放置棋子的時候無法檢視set中的「下乙個棋子」,故而,我需要將set中的元素變的有次序,在過去的實驗操作中,我知道list中的元素是有次序的,所以,我想在放置棋子時將儲存棋子的set轉化為乙個list,在取出需要位置的棋子,這樣就可以完成下棋了。

所用到的語句:

list  list =

newarraylist

(playerpieces)

這樣就能保證玩家的棋子是無限的並且可以進行放置棋子的操作了。

軟體構造筆記 第一章 軟體構造的視角和質量目標

2 執行視角 run time 2 軟體構造是檢視間的轉換 2 軟體構造的質量目標 2 軟體構造的5個目標 多維度視角 軟體構造 檢視間的轉換 學習目標 軟體系統 程式 資料 文件 規約等 開發視角關注 開發 瞬時 視角 邏輯上程式塊的組織,包含詞彙 語法 如ast 語義 如class diagra...

關於List和切片的一些問題?

1 如何拼接兩個列表?class 1 張三 李四 class 2 王五 錢六 使用 號直接拼接 class 1 class 1 class 2 使用list.extend 方法 class 1.extend class 2 2 如何判斷列表為空?while true 學生乙個乙個走出教室,並報上名字...

實驗一 問題陳述和詞彙表

一 問題陳述 背景 網上購物。範圍 本購物系統。實現及功能 遊客 遊客只能瀏覽商品和註冊,該系統只能用手機號註冊,並需要繫結郵箱和完善資訊等。商家 通過註冊賬號的使用者,擁有消費者的功能,同時開啟商鋪後,擁有上下架商品 調整商品 檢視訂單資訊 回答消費者 處理退貨要求等許可權。商品 商家銷售的貨物,...