create table Scores ( --保齡球得分記錄表
RowID int identity(1,1) not null, --
UserID int not null, --選手
DateAdded smalldatetime default GetDate(), --
FrameNumber tinyint not null, --擲球輪次.(每輪有兩次擲球機會)
NumberOfPins tinyint not null) --打倒幾個瓶就是幾分
--使用示例:
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 1, 4)
--即選手 1 第 1 輪 第 1 次擲球 , 打倒了 4 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 1, 6)
--第 2 次擲球 , 打倒了 6 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 2, 10)
--即選手 1 第 2 輪 第 1 次擲球 , 打倒了 10 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 3, 10)
--即選手 1 第 3 輪 第 1 次擲球 , 打倒了 10 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 4, 4)
--即選手 1 第 4 輪 第 1 次擲球 , 打倒了 4 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 4, 5)
--即第 2 次擲球 , 打倒了 5 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 5, 4)
--即選手 1 第 5 輪 第 1 次擲球 , 打倒了 4 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 5, 6)
--第 2 次擲球 , 打倒了 6 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 6, 10)
--即選手 1 第 6 輪 第 1 次擲球 , 打倒了 10 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 7, 10)
--即選手 1 第 7 輪 第 1 次擲球 , 打倒了 10 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 8, 4)
--即選手 1 第 8 輪 第 1 次擲球 , 打倒了 4 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 8, 5)
--即第 2 次擲球 , 打倒了 5 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 9, 4)
--即選手 1 第 9 輪 第 1 次擲球 , 打倒了 4 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 9, 6)
--第 2 次擲球 , 打倒了 6 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 10, 10)
--即選手 1 第 10 輪 第 1 次擲球 , 打倒了 10 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 11, 10)
--即加擲1球,打倒了 10 個瓶
Insert into Scores (UserID, FrameNumber, NumberOfPins) Values (1, 12, 10)
--即再加一球 , 打倒了 10 個瓶
--保齡球計分為10輪累計.每輪有兩次機會,如一次就10瓶全倒,就不用擲第二次了
--否則就按第一次和第二次累計計分.
--計分的難分在於:
--如果上一輪擲球為一次全中即10分,要把下兩次(注意不是下兩輪)的計分獎勵到本輪上來.
--如果上一輪擲球為補中即擲兩次後10球全倒,要把下一次(注意不是下一輪)的計分獎勵到本輪上來
--如果第10輪為一次全中10瓶,加擲兩次(不然獎勵什麼)
--可以看出如果每輪均為一次全中,則每次10分且每次均獎勵20分最高可達300分.難得啊
--要寫一個存儲過程來為每一輪計分,以便得到下面的結果 :
-- 選手 1
-- 第 1 輪 10 + 10 = 20
-- 第 2 輪 20 + 10 + 10 = 40
-- 第 3 輪 40 + 10 + 4 = 54
-- 第 4 輪 54 + 9 =63
-- 第 5 輪 63 + 10 + 10 = 83
-- 第 6 輪 83 + 10 + 10 = 103
-- 第 7 輪 103 + 10 + 4 = 117
-- 第 8 輪 117 + 9 = 126
-- 第 9 輪 126 + 10 + 10 = 146
-- 第 10 輪 146 + 10 + 20 = 176
文章定位:
人氣(36) | 回應(0)| 推薦 (
0)| 收藏 (
0)|
轉寄
全站分類:
不分類