C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

リバーシゲームの開発

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■89311 / inTopicNo.1)  リバーシゲームの開発
  
□投稿者/ ルシフェル (1回)-(2018/11/20(Tue) 10:21:15)

分類:[VBScript] 

初めて使わせて頂きます
環境は、Visual Studio Community2017を使っています、windows10です。
使用言語はVisual Basicのユニバーサルwindowです。

リバーシのゲームを製作しています。
私がしたい事は、緑の番のマスをクリックするとx=0 y=0と表示させたいです。
エラーが出てしまったのでどなたかコードの修正お願いします。
どこがが間違っているようです

Public NotInheritable Class MainPage
    Inherits Page

    Public Const Size = 8
    Private CellMargin As Thickness = New Thickness(6)

    Protected Overrides Sub OnNavigatedTo(
    e As Navigation.NavigationEventArgs)

        Dim gridSize = Window.Current.Bounds.Width
        If gridSize > Window.Current.Bounds.Height Then _
            gridSize = Window.Current.Bounds.Height
        Dim cellSize = (gridSize - 60) / Size

        Dim cd As ColumnDefinition
        Dim rd As RowDefinition
        For i = 0 To Size - 1
            cd = New ColumnDefinition()
            cd.Width = New Windows.UI.Xaml.GridLength(
                cellSize)
            GridGameField.ColumnDefinitions.Add(cd)

            rd = New RowDefinition()
            rd.Height = New Windows.UI.Xaml.GridLength(
                cellSize)
            GridGameField.RowDefinitions.Add(rd)
        Next

        Dim cell As Windows.UI.Xaml.Shapes.Rectangle
        For i = 0 To Size - 1
            For j = 0 To Size - 1
                cell = New Windows.UI.Xaml.Shapes.Rectangle()
                cell.Fill = New SolidColorBrush(
                  Windows.UI.Colors.Green)
                cell.SetValue(Grid.ColumnProperty, i)
                cell.SetValue(Grid.RowProperty, j)
                cell.Margin = CellMargin
                AddHandler cell.Tapped,
                    AddressOf RectangleTapped
                GridGameField.Children.Add(cell)

            Next
        Next
    End Sub
End Class

Private Async Sub RectangleTapped(sender As Object, e As TappedRoutedEventArgs)

    Dim r As Windows.UI.Xaml.Shapes.Rectangle = sender
    Dim x = r.GetValue(Grid.ColumnProperty)
    Dim y = r.GetValue(Grid.RowProperty)
    Await ShowMessage("x=" & x & "y=" & y)
End Sub

Private Async Function ShowMessage(s As String) As Task
    Dim md = New Windows.UI.Popups.MessageDialog(s)
    Await md.ShowAsync()
End Function

End Class

どなたかご教示お願いします。

引用返信 編集キー/
■89316 / inTopicNo.2)  Re[1]: リバーシゲームの開発
□投稿者/ ルシフェル (2回)-(2018/11/20(Tue) 11:46:33)
No89311 (ルシフェル さん) に返信
> 初めて使わせて頂きます
> 環境は、Visual Studio Community2017を使っています、windows10です。
> 使用言語はVisual Basicのユニバーサルwindowです。
>
> リバーシのゲームを製作しています。
> 私がしたい事は、緑の番のマスをクリックするとx=0 y=0と表示させたいです。
> エラーが出てしまったのでどなたかコードの修正お願いします。
> どこがが間違っているようです
>
> Public NotInheritable Class MainPage
> Inherits Page
>
> Public Const Size = 8
> Private CellMargin As Thickness = New Thickness(6)
>
> Protected Overrides Sub OnNavigatedTo(
> e As Navigation.NavigationEventArgs)
>
> Dim gridSize = Window.Current.Bounds.Width
> If gridSize > Window.Current.Bounds.Height Then _
> gridSize = Window.Current.Bounds.Height
> Dim cellSize = (gridSize - 60) / Size
>
> Dim cd As ColumnDefinition
> Dim rd As RowDefinition
> For i = 0 To Size - 1
> cd = New ColumnDefinition()
> cd.Width = New Windows.UI.Xaml.GridLength(
> cellSize)
> GridGameField.ColumnDefinitions.Add(cd)
>
> rd = New RowDefinition()
> rd.Height = New Windows.UI.Xaml.GridLength(
> cellSize)
> GridGameField.RowDefinitions.Add(rd)
> Next
>
> Dim cell As Windows.UI.Xaml.Shapes.Rectangle
> For i = 0 To Size - 1
> For j = 0 To Size - 1
> cell = New Windows.UI.Xaml.Shapes.Rectangle()
> cell.Fill = New SolidColorBrush(
> Windows.UI.Colors.Green)
> cell.SetValue(Grid.ColumnProperty, i)
> cell.SetValue(Grid.RowProperty, j)
> cell.Margin = CellMargin
> AddHandler cell.Tapped,
> AddressOf RectangleTapped
> GridGameField.Children.Add(cell)
>
> Next
> Next
> End Sub
> End Class
>
> Private Async Sub RectangleTapped(sender As Object, e As TappedRoutedEventArgs)
>
> Dim r As Windows.UI.Xaml.Shapes.Rectangle = sender
> Dim x = r.GetValue(Grid.ColumnProperty)
> Dim y = r.GetValue(Grid.RowProperty)
> Await ShowMessage("x=" & x & "y=" & y)
> End Sub
>
> Private Async Function ShowMessage(s As String) As Task
> Dim md = New Windows.UI.Popups.MessageDialog(s)
> Await md.ShowAsync()
> End Function
>
> End Class
>
> どなたかご教示お願いします。
>
引用返信 編集キー/
■89341 / inTopicNo.3)  Re[1]: リバーシゲームの開発
□投稿者/ 魔界の仮面弁士 (1947回)-(2018/11/20(Tue) 17:22:09)
No89311 (ルシフェル さん) に返信
> エラーが出てしまったのでどなたかコードの修正お願いします。
> どこがが間違っているようです

コンパイルエラーでしょうか。
それとも、実行はできるけれど、クリック時に例外が発生するのでしょうか。


前者だとすれば、『Sub RectangleTapped』の直前の「End Class」を削除してみるとか…。
引用返信 編集キー/
■89348 / inTopicNo.4)  Re[2]: リバーシゲームの開発
□投稿者/ ルシフェル (3回)-(2018/11/20(Tue) 18:59:54)
> 前者だとすれば、『Sub RectangleTapped』の直前の「End Class」を削除してみるとか…。

これがヒントになりました!!
解決しましたありがとうございました。

その部分を消して、最後にEnd Classを記述したらコンパイルエラーせずにビルドできましたー。

解決済み
引用返信 編集キー/
■89349 / inTopicNo.5)  Re[3]: リバーシゲームの開発
□投稿者/ 魔界の仮面弁士 (1950回)-(2018/11/20(Tue) 23:31:01)
No89348 (ルシフェル さん) に返信
> その部分を消して、最後にEnd Classを記述したらコンパイルエラーせずにビルドできましたー。

……?

最初の質問 ( No89311 ) の投稿内容によれば、
最終行の End Class は、既に書いてあるように見えますが…。
解決済み
引用返信 編集キー/
■89352 / inTopicNo.6)  Re[4]: リバーシゲームの開発
□投稿者/ ルシフェル (4回)-(2018/11/21(Wed) 10:13:01)
すみません、何を勘違いしたのかEnd Classを書いたような気がしてしまいました、
最初のEnd Classを削除しただけでした、
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ