作者ruby791104 (阿年:))
看板Visual_Basic
标题Re: [.NET] VB2008 斜率计算
时间Thu Dec 3 23:28:44 2009
Public Class Form1
Dim chess_board(8, 8) As Boolean
Function safe(ByVal chess_board(,) As Boolean, ByVal x As Integer, ByVal y As Integer) As Boolean
Dim is_safe As Boolean
Dim i As Integer
is_safe = True
For i = 1 To 8
If chess_board(x, i) Then
is_safe = False
ElseIf chess_board(i, y) Then
is_safe = False
End If
Next
┌
│*
└
Return is_safe
End Function
Sub draw_chess_board(ByVal board)
Dim g = Me.CreateGraphics()
Dim i, j, k As Integer
For i = 1 To 9
g.DrawLine(Pens.Black, i * 15, 15, i * 15, 135)
g.DrawLine(Pens.Black, 15, i * 15, 135, i * 15)
Next
j = TextBox1.Text
k = TextBox2.Text
For j = 1 To 8
For k = 1 To 8
If board(j, k) Then
g.DrawEllipse(Pens.Red, j * 15 + 4, k * 15 + 4, 7, 7)
End If
Next
Next
g.Dispose()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If (safe(chess_board, TextBox1.Text, TextBox2.Text)) = True Then
chess_board(TextBox1.Text, TextBox2.Text) = True
draw_chess_board(chess_board)
Else
MsgBox("Not Safe! Please try again.")
End If
End Sub
End Class
我虽然说是要写8 queen problem的程式,
可是并不完全一样,
事实上,
这是一份作业,
要求如下:
”当使用者输入一个新的皇后的坐标时,
程式要呼叫这个函数,
检查这个新的皇后会不会被棋盘上现有的其他皇后吃掉。
如果不会,就直接把这个新的皇后加到棋盘上,
如果会,则利用"MsgBox( )"函数显示一个警告讯息,告诉使用者必须再试一次。”
*的部分是我还没写出来的@@
老师给我们的提示是”对角线斜率=1或-1”,
所以我原PO才会想问斜率的算法!
请大大们教教我吧,
感激不尽!(鞠躬
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.231.24.16
1F:推 jwjeng:没看到最後,还真不知道这跟标题有什麽关系 12/03 23:41