'參考資料(皇家裡的別理他)'
'1~2日-----港町ゴリアテ
'3~4日-----アルモリカ城
'5~6日-----クリザローの町
'7~8日-----バルマムッサの町
'9~10日----港町アシュトン
'11~12日---コリタニ城
'13~14日---ブリガンテス城
'15~16日---古都ライム
'17~18日---フィダック城
'19~20日---ウェアラムの町
'21~22日---王都ハイム
'23~24日---グリムスビーの町
'25日------バーニシア城
'週日'(日曜日)
'週一'(月曜日)
'週二'(火曜日)
'週三'(水曜日)
'週四'(木曜日)
'週五'(金曜日)
'週六'(土曜日)
'神龍之月》1月1日––1月24日》干期 '地龍之月》1月25日––2月18日》干期'
'水龍之月》2月19日––3月13日》雨期'
'影龍之月》3月14日––4月6日》雨期'
'白龍之月》4月7日––5月1日》干期'
'炎龍之月》5月2日––5月25日》干期' '風龍之月》5月26日––6月18日》干期'
'金龍之月》6月19日––7月13日》干期'
'雷龍之月》7月14日––8月6日》雨期'
'暗龍之月》8月7日––8月30日》雨期' '海龍之月》8月31日––9月24日》雨期'
'黑龍之月》9月25日––10月18日》雨期'
'雙龍之月》10月19日––11月11日》雨期'
'火龍之月》11月12日––12月6日》干期'
'光龍之月》12月 7日––12月31日》干期'
'前言'
'這禮拜終於有靈感了所以這次寫的是有用的(注意!!!是對我來說,對你完全沒屁用)'
Dim m() As String = {"", "《神龍之月》(乾期)", "《水龍之月》(雨期)", "《影龍之月》(雨期)", "《白龍之月》(乾期)", "《炎龍之月》(乾期)", "《金龍之月》(乾期)", "《雷龍之月》(雨期)", "《暗龍之月》(雨期)", "《黑龍之月》(雨期)", "《雙龍之月》(雨期)", "《火龍之月》(乾期)", "《光龍之月》(乾期)"}
'宣告m為一個文字(字串)分別等於"", "《神龍之月》(乾期)", "《水龍之月》(雨期)", "《影龍之月》(雨期)", "《白龍之月》(乾期)", "《炎龍之月》(乾期)", "《金龍之月》(乾期)", "《雷龍之月》(雨期)", "《暗龍之月》(雨期)", "《黑龍之月》(雨期)", "《雙龍之月》(雨期)", "《火龍之月》(乾期)", "《光龍之月》(乾期)"
'共13個所以它總共宣告13個m從m(0)~m(12),m(1)=《神龍之月》(乾期),m(2)=《水龍之月》(雨期)以此類推
Dim spm() As String = {"", "", "《地龍之月》(乾期)", "", "", "", "《風龍之月》(乾期)", "", "", "《海龍之月》(雨期)"}
Dim s() As String = {"不會出現", "港町ゴリアテ", "アルモリカ城", "クリザローの町", "バルマムッサの町", "港町アシュトン", "コリタニ城", "ブリガンテス城", "古都ライム", "フィダック城", "ウェアラムの町", "王都ハイム", "グリムスビーの町", "バーニシア城"}
Dim d() As String = {"日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"}
'同上注意d(0)為日曜日(就是星期日啦)這樣寫的原因是等等是以日期 mod 7來判斷他是星期幾所以如果是是星期日他除出來餘數等於0
Dim q() As Integer = {0, 1, 4, 5, 1, 3, 6, 1, 4, 0, 2, 5, 0}
'同上但q是宣告為數字
Dim i() As Integer = {0, 1, 19, 14, 7, 2, 19, 14, 7, 25, 19, 12, 7}
Dim w() As Integer = {0, 24, 13, 6, 1, 25, 13, 6, 30, 18, 11, 6, 31}
Dim p() As Integer = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
'上面宣告的方法被稱為陣列'
Dim mo, da, k, r As Integer
Dim o As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'先聲明這次不註解廢話了'
TextBox3.Text = ""
k = 0
If TextBox1.Text = "" Or TextBox2.Text = "" Then
MsgBox("請輸入日期")
'怕有人白痴到忘了輸入日期就案Enter會發生錯誤所以加上的'
Else
mo = TextBox1.Text
da = TextBox2.Text
If mo > 12 Then
MsgBox("有這天嗎白痴")
Else
If da > p(mo) Then
MsgBox("有這天嗎白痴")
Else '上面是怕有人白痴亂輸入加的'
'解釋一下da>p(mo)
'就是如果你輸入的是2月31日他就會先判斷 da > p(2){p(mo這個是你輸入的月)}31>29所以會執行MsgBox("有這天嗎白痴")
'以下的就完全不會執行了如果執行可能會當'
If mo = 1 Or mo = 5 Or mo = 8 Then '假如是1.5.8月的話'
If da > w(mo) Then '假如日期大於當月最後一天的話'
o = spm(mo + 1) '月份就+1(旦他是特別月)'
Else
o = m(mo) '沒有當然讓他照常顯示啦'
End If '以下皆同理'
ElseIf mo <> 2 And mo <> 6 And mo <> 9 Then '他是屬於' If mo = 1 Or mo = 5 Or mo = 8 Then裡面的
'月份不等於2.6.9'
If da < i(mo) Then
o = m(mo - 1) '注意他是小於當月第一天所以是-1'
Else
o = m(mo)
End If
Else
If da < i(mo) Then
o = spm(mo)
Else
o = m(mo)
End If
End If
'為什麼要分成1.2.5.6.8.9月不同算法原因為皇家他一年分成15個月(換言之有15種月份)和你們不同(12個月)'
'之前星座的可以不用這麼麻煩是因為星座也一樣12種'
If da <= 25 Then '注意他不屬於If mo = 1 Or mo = 5 Or mo = 8 Then
For r = 1 To da Step 2 '每格2天+1''這是算魔女位置的他每個地方只會停留2天(バーニシア城例外只停一天'
k = k + 1 '實際的用處是例當你輸入5他會從1開始+1再來跳到3在+1(此時為2(1+1))再來5在+1(3)'
''5~6日-----クリザローの町 你會發現他就是第三個出現的地方(順便一題如果輸入6也一樣因為他不到7)'
Next
End If '如果大於25他就不會出現了而for回圈也不會執行也就是說k等於0'
TextBox3.AppendText(o & vbNewLine & "今日為" & d((da + q(mo)) Mod 7) & vbNewLine & "魔女商店出現在:" & s(k) & vbNewLine)
'o為月份換行日期算法是先讓日期1變成在星期一再來除7'
End If
End If
End If
End Sub
End Class
沒有留言:
張貼留言