Public Class Form1
'老規矩前言'
'這一個程式我打蠻久的因為我自己也把老師教過的忘的差不多了而且最重要的事我家電腦怪怪的一值當機害我一直重打'
'不屁了重點來了(對了如果你要印下來幫我也印一份謝謝)'
Dim a, b, c, d As Int64
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 'timer是一個物件(計時器)能用到的屬性為enabled(能否啟動注意它內定為false不啟動)interval(每幾豪秒執行一次注意1 秒=1000毫秒)'
'這個連我都忘了事後來去查的'
Button1.Left = Rnd() * (Me.ClientRectangle.Width - Button1.ClientRectangle.Width) '按鈕1的左側等於亂數乘上form1的寬減按鈕1的寬實際的作用是能讓按鈕1左右亂數移動旦不會跑出框框(每一秒移動一次)'
Button1.Top = Rnd() * (Me.ClientRectangle.Height - Button1.ClientRectangle.Height) '同上旦這是高'
Button4.Left = Rnd() * (Me.ClientRectangle.Width - Button4.ClientRectangle.Width)
Button4.Top = Rnd() * (Me.ClientRectangle.Height - Button4.ClientRectangle.Height)
Button13.Left = Button13.Left + 100 '讓按鈕3往左一百像素'
If Button13.Right >= Me.ClientRectangle.Width - Button13.ClientRectangle.Width Then '假如按鈕3的右側大於等於form1的寬減掉按鈕三的寬則按鈕3的左測回歸為0的位置也就是程式的最左邊'
'實際的作用是如果按鈕三跑出表單時能讓她跑回來'
Button13.Left = 0
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '在開啟程式時執行'
Randomize() '真正亂數'
Me.Tag = Rnd() * 89 + 10 'form1的tag設為亂數(0*89+10~1*89+10)也就是10~99'
a = Me.Tag '將a設為form.tag的質'
MsgBox("執行後有超讚的圖圖喔保證很爽") '這行老師沒交不用管沒關西'
d = 100 '將d設為100'
End Sub
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click '按鈕11被按時'
TextBox1.Focus() '將滑鼠游標移到輸入格1'
TextBox1.SelectAll() '將輸入格1反白'
'已下比較複雜(其實也還好)'
'注意按下按鈕後他一定會執行上面那兩行'
'注意按下按鈕後if敘述他只會執行符合的不符合的他會全部都跳過'
If Label2.Text = "請先猜二位數密碼" Then '如果文字2的文字等於(請先猜二位數密碼)他就會執行以下敘述'
If TextBox1.Text = a Then '如果按下按鈕時輸入格1的文字(也就是你打的)等於a的話'
Label2.Text = "想執行請輸入超過5000的質數" '文字2變成(想執行請輸入超過5000的質數)注意因為文字二變了所以下次按下按鈕11時這個巢狀if就會被整個跳過'
'(因為這個巢狀if必須要文字2的文字等於(請先猜二位數密碼)才會執行)'
Label3.Text = ""
Else '注意這是 If TextBox1.Text = a這個if的'
If TextBox1.Text > a Then '沒什麼好講的吧'
Label3.Text = "太大了啦"
Else
Label3.Text = "太小了啦"
End If
End If
End If
If Label2.Text = "想執行請輸入超過5000的質數" Then '這個if敘述要符合以下才會執行'
'以下的if敘述都同理'
a = TextBox1.Text '將a設為你按下按鈕時輸入格1的數字(注意它只有在If Label2.Text = "想執行請輸入超過5000的質數"才會執行所以對其他if沒影響旦)'
'這個執行以後a設定成輸入格1了'
b = 2 'b設為2'
c = a 'c設為a'
Do Until a Mod b = 0 '回圈執行到a除以b的餘數等於0為止這個迴圈是算出他的最小因數'
b = b + 1 '因為你問過我所以我解釋一下這行b=b+1的意義是判斷a/2(b剛開始等於2)的餘數如果不等於0'
'b將變成3(2+1=3)'然後判斷一次a/b(這次就變成a/3了)的餘數會不會等於0如果不會b就在加1'
'也就是從2開始每次都加1是到符合為止(2.3.4.5.6........)'
Loop
If a = b And a > 5000 Then '這行會等到迴圈結束才會執行而且這是屬於If Label2.Text = "想執行請輸入超過5000的質數"裡面的'
Label2.Text = "想執行請把這個二進位數改為十進位" '如果符合文字2就變成想執行請把這個二進位數改為十進位'
a = a - 1 '這行會讓a-1'
Do '這個回圈是用來求出a(減過1的喔(也就是說如果你剛剛輸入5003他一定是跑出5002的二進位))的二進位的'
Label3.Text = a Mod 2 & Label3.Text '這個就是文字三的文字等於a/2的餘數加原本文字三的文字'
a = a \ 2 'a要在除2的整數{注意(/)與(\)不同}'
Loop Until a = 0 '執行迴圈到a=0'
End If
End If
'以下的同理的我就不打了'
If Label2.Text = "想執行請把這個二進位數改為十進位" Then
If TextBox1.Text = c - 1 Then
TextBox1.Text = ""
Label3.Text = ""
Label2.Text = "想執行請按100次按鈕"
Button11.Text = "狂案吧"
TextBox1.Multiline = True '這是讓輸入格變成多行模式的'
TextBox1.ScrollBars = ScrollBars.Vertical '這是讓輸入格有捲軸的'
End If
End If
If Label2.Text = "想執行請按100次按鈕" Then
d = d - 1 '讓每按一次按鈕d就減一(作用是讓她能算他按了幾次按鈕)'
TextBox1.Text = TextBox1.Text & "還剩下" & d & "下" & vbCrLf '& vbCrLf這是換行的語法'
'讓輸入格等於原本的輸入格加上"還剩下" & d & "下"'
If d = 0 Then '假如d變成0與Label2.Text = "想執行請按100次按鈕"就會執行'
'd原來是100每按一次減一所以按下100次就會變成0囉'
Button3.Visible = True '按鈕三變成顯示(注意顯示才能按{廢話不然誰知道有這個按鈕阿})'
Button3.Text = "確認" '讓按鈕上的文字變成(確認)'
Label2.Text = "想執行請利用按鈕選是非題"
TextBox1.Text = ""
TextBox1.Multiline = False '讓輸入格變成單行模式'
TextBox1.ScrollBars = ScrollBars.None '讓輸入格沒有捲軸'
Label3.Text = "請先輸入任意數字輸入完按確認"
Me.AcceptButton = Button3 '這個是將按下Enter等於按下的按鈕便成按鈕三'
Button11.Visible = False
End If
End If
If Button11.Text = "準備好了開始作答" Then
Button1.Visible = True '按鈕1變成顯示'
Button4.Visible = True '同理'
Button11.Visible = False
Timer2.Enabled = True '讓計時器2變成有效的'
Label3.Text = "農場裡有10隻羊除了6之其他都死了還剩下6隻"
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'這是按下正確時會執行的原理與上同'
If Label3.Text = "桌面有三個蘋果你拿了兩個你有1個是否正確" Then
MsgBox(InputBox("你尊姓大名") & "是笨蛋") '老師也沒交可以不管'
End If
If Label3.Text = "農場裡有10隻羊除了6之其他都死了還剩下6隻" Then
Button4.Visible = False
Button1.Visible = False
Label3.Text = "終於可以執行啦高興吧"
Label2.Text = ""
TextBox1.Visible = False
Button3.Visible = True
Button3.Text = "執行"
Timer2.Enabled = False '讓計時器二變成失效'
Label1.Text = "可以執行囉爽死妳"
End If
If Label3.Text = a & "年是閏年正確或錯誤" And Me.Tag = "正確" Then 'and這是在兩個條件符合時才執行'
Label3.Text = "桌面有三個蘋果你拿了兩個你有1個是否正確"
End If
If Label3.Text = a & "年是閏年正確或錯誤" And Me.Tag = "錯誤" Then
MsgBox(InputBox("你尊姓大名") & "是笨蛋")
End If
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'同理'
If Label3.Text = "農場裡有10隻羊除了6之其他都死了還剩下6隻" Then
MsgBox(InputBox("你尊姓大名") & "是丁丁")
Button4.Visible = False
Button1.Visible = False
Button3.Visible = False
Button11.Visible = False
Label2.Text = ""
Label3.Text = ""
Label1.Text = "Sorry請重新挑戰吧"
End If
If Label3.Text = a & "年是閏年正確或錯誤" And Me.Tag = "錯誤" Then
Label3.Text = "桌面有三個蘋果你拿了兩個你有1個是否正確"
End If
If Label3.Text = a & "年是閏年正確或錯誤" And Me.Tag = "正確" Then
MsgBox(InputBox("你尊姓大名") & "是笨蛋")
End If
If Label3.Text = "桌面有三個蘋果你拿了兩個你有1個是否正確" Then
Label3.Text = "從這題開始你只有10秒作答請立刻按下正確答案(按鈕一樣會亂跑)"
a = 10'將a設為10'
Button11.Text = "準備好了開始作答"
Button11.Visible = True
Button1.Visible = False
Button4.Visible = False
Label2.Text = "剩下" & a & "秒"
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
' 同理'
If Button3.Text = "確認" Then
a = TextBox1.Text
Button1.Visible = True
Button4.Visible = True
Button3.Visible = False
Label3.Text = a & "年是閏年正確或錯誤"
If a Mod 4 <> 0 Or a Mod 4 = 0 And a Mod 100 = 0 Then
Me.Tag = "錯誤"
Button1.Visible = True
Button4.Visible = True
Button11.Visible = False
Else
Me.Tag = "正確"
Button1.Visible = True
Button4.Visible = True
Button11.Visible = False
End If
End If
If Button3.Text = "執行" Then
Button3.Visible = False
Button12.Visible = True
Label1.Text = ""
Label3.Text = ""
Label2.Text = ""
End If
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
'這是計時器二每1秒會執行一次的如果他有效的話(因為我把Interval設為1000毫秒所已換算成1秒)'
a = a - 1'讓a每隔1秒減一(用處在於因為剛剛把a設為10所以a變成0會經過10秒已達到倒數的效果)'
Label2.Text = "剩下" & a & "秒" '讓他每隔一秒更新一次數字(因為a將每格1秒減一所以a每秒的數字都不同)'
If a = 0 Then '假如a變成0了(也就是時間到了)'
MsgBox(InputBox("你尊姓大名") & "是丁丁")
Button4.Visible = False
Button1.Visible = False
Button3.Visible = False
Button11.Visible = False
Label2.Text = ""
Label3.Text = ""
Label1.Text = "Sorry請重新挑戰吧"
Timer2.Enabled = False '讓計時器時效如果不失效他就會繼續減'
End If
End Sub
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
MsgBox("抱歉囉是你自己智商太低了")
End Sub
Private Sub Button2_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.MouseEnter
'注意看上列按鈕2的事件是滑鼠移入時MouseEnter'
Button2.Enabled = False '將按鈕2設為不能按'
Button2.Text = "不給你按ㄏㄏㄏㄏㄏ"
End Sub
'後記'
'這是我目前為止打最久的程式了不知為合他一直搞錯誤叫我重開害我要邊打邊儲存耗超久的'
'這個程式重點在於按下按鈕時他會執行哪個槽狀if不能搞錯不然就不能繼續執行下去了必須一個接一個'
'而這個程式應該把老師教過的都結合了吧(也許)對了請去看看物件的屬性那個也很重要'
'先說抱歉打這麼久(我也不想明明星期六打到1點終於打好了結果他搞錯誤要我重打害我火了去睡覺星期日才重打)'
'老話一句有問題再說(如果程式有錯誤來找我算帳不小心打太多敘述自己修正也改超多次的)'
'對了你要印下來的話順便幫我印一份萬分感謝拜託囉'
End Class