SSブログ

[メモ]TSUTAYAのネット宅配レンタル [メモ]

TSUTAYAのネット宅配レンタル
 去年か一昨年位に、GacktがCMで紹介していたものです。。。
 テレビだと見逃しがちですが、ネットだと何度でも再生できるので、
 宅配レンタルの仕組みを理解しやすいです[わーい(嬉しい顔)]

◆CMはコチラ↓ 
 「ツタヤディスカス」CMで分かりやすく解説中♪
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ショッピング

[メモ]らでぃっしゅぼーや(宅配野菜) [メモ]

らでぃっしゅぼーや(宅配野菜)
 テレビでも紹介されている有名な宅配野菜サービスです。
 有機野菜、低農薬野菜、無添加野菜、放射性物質の検査をはじめ、
 東日本震災への支援など、様々な活動をしています。
◆Facebookでいと愛づらし野菜大図鑑ページを公開
 「いと愛づらし」とは「珍しい」と、古語の「めづらし(すばらしい、
 かわいらしい、などの意)」をかけ合わせたもの。
 『実はこうなっているんだーと感心してしまう野菜』など、
 らでぃっしゅぼーやをはじめとする「選定委員会」が選定した野菜です。
◆らでぃっしゅぼーやのリンク




nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:グルメ・料理

[メモ]Amazon、送料完全無料 [メモ]

延長していたサービスが完全サービス化
送料を気にしていた人も、これを機に[わーい(嬉しい顔)]

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ショッピング

[メモ]楽天、全品送料無料(2011/8/31まで) [メモ]

楽天、全品送料無料(2011/8/31まで)

 期間限定ですが、送料が無料とのこと。
 送料を気にしていた人も、これを機に[わーい(嬉しい顔)]


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ショッピング

[メモ]無料サイドビジネス診断チェック(SOHO向け) [メモ]

無料サイドビジネス診断チェック
 自分に適したSOHO(在宅ワーク)のタイプを診断してくれるサイトです。
 フローから「はい」「いいえ」を選択するだけで、自分がどのタイプかを分析してくれます。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:仕事

[メモ]データ入力診断テスト(SOHO向け) [メモ]

データ入力診断テスト
 SOHO(在宅ワーク)で求められるスキルの1つ『データ入力能力』を診断するサイト。
 有料(3回で1,000円)なので、フリーのタイピングソフトでも事足りるかもしれませんが、
 時給換算など、SOHO向けの分析にも対応しているようです。
 ・1.打ち込みした所要時間
 ・2.問題総文字数
 ・3.総入力数
 ・4.入力スピード 約○○文字/時間
 ・5.誤入力数
 ・6.正解数
 ・7.一文字あたりの料金(0.1円で計算しております)
 ・8.時給換算 約○○円/時間
 興味のある方は、下記バナーをクリック。↓


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:仕事

[Review]SHARP AQUOS 19型 地上・BS・110度CSデジタルハイビジョン液晶テレビ LC-19K5-B ブラック系 [Hardware's Review]

(1)レビュー
 今更ながら地デジテレビです。
 2011年7月24日の地デジ完全移行の1週間前にようやく購入しました。
 ちょうどこれまで使っていたテレビも壊れたのでちょうどよかったです(笑)

 外付HDD(500GB)込で29,000円でした[わーい(嬉しい顔)]
(2)リンク
SHARP AQUOS 19型 地上・BS・110度CSデジタルハイビジョン液晶テレビ LC-19K5-B ブラック系

SHARP AQUOS 19型 地上・BS・110度CSデジタルハイビジョン液晶テレビ LC-19K5-B ブラック系

  • 出版社/メーカー: シャープ
  • メディア: エレクトロニクス

【機能】
・壁にかけることができる。
・常連録画機能を搭載。
 普段よく視る番組を学習して自動的に録画し、
 容量が少なくなったら自動的に一番古い番組から削除してくれる機能。
 (通常録画と別管理なので、通常の録画した番組が知らない間に削除されることはない。)
【制限】
・チューナーが1つしかないので、
 録画中は他の番組を視聴することができない。
 (別途レコーダーを購入すれば、この制限はありません。)
・正面以外から見ると、画面の色が多少暗くなる。
 (寝転がりながら見たりしなければ問題はない[わーい(嬉しい顔)]
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:テレビ

[VBA]罫線描画&罫線消去 [Programming ExcelVBA]

[はじめに]
・Excelマクロで罫線描画、罫線消去を実装することがよくあります。
 『マクロの記録』で簡単に作れますが、汎用性がないので関数化しました。
 機能は単純に、セル範囲に罫線(外枠、内側の境界線)を描画するだけです。
 とりあえず、備忘録として載せておきます。

[ソース]
Option Explicit

''' <summary>
''' 指定したセル範囲に罫線を描画する。(外枠、内側の境界線)
''' </summary>
''' <param name="targetRange">対象セル範囲</param>
''' <remarks></remarks>
Public Sub DrawLine(ByVal targetRange As Range)
    With targetRange
    
        '個々のセルの右上がり斜線
        .Borders(xlDiagonalUp).LineStyle = xlNone
        
        '個々のセルの右下がり斜線
        .Borders(xlDiagonalDown).LineStyle = xlNone
        
        'セル範囲の最上端
        With .Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        
        'セル範囲の最下端
        With .Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        
        'セル範囲の最左端
        With .Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        
        'セル範囲の最右端
        With .Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        
        If .Cells(1).Row < .Cells(.Count).Row Then
            'セル範囲の上下端以外の境界線
            '【注意(Excel2003以前のみ】
            ' セル範囲が複数行にわたる場合のみ処理します。
            ' 単数行の場合に処理するとエラーになることがあります。
            With .Borders(xlInsideHorizontal)
                .LineStyle = xlContinuous
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
                .Weight = xlThin
            End With
        End If

        If .Cells(1).Column < .Cells(.Count).Column Then
            'セル範囲の左右端以外の境界線
            '【注意(Excel2003以前のみ】
            ' セル範囲が複数列にわたる場合のみ処理します。
            ' 単数列の場合に処理するとエラーになることがあります。
            With .Borders(xlInsideVertical)
                .LineStyle = xlContinuous
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
                .Weight = xlThin
            End With
        End If

    End With

End Sub

''' <summary>
''' 指定したセル範囲の罫線を消去する。(外枠、内側の境界線)
''' </summary>
''' <param name="targetRange">対象セル範囲</param>
''' <remarks></remarks>
Public Sub EraseLine(ByVal targetRange As Range)
    
    With targetRange
        
        '個々のセルの右上がり斜線
        .Borders(xlDiagonalUp).LineStyle = xlNone
        
        '個々のセルの右下がり斜線
        .Borders(xlDiagonalDown).LineStyle = xlNone
        
        'セル範囲の最上端
        .Borders(xlEdgeTop).LineStyle = xlNone
        
        'セル範囲の最下端
        .Borders(xlEdgeBottom).LineStyle = xlNone
        
        'セル範囲の最左端
        .Borders(xlEdgeLeft).LineStyle = xlNone
        
        'セル範囲の最右端
        .Borders(xlEdgeRight).LineStyle = xlNone
        
        If .Cells(1).Row < .Cells(.Count).Row Then
            'セル範囲の上下端以外の境界線
            '【注意(Excel2003以前のみ)】
            ' セル範囲が複数行にわたる場合のみ処理します。
            ' 単数行の場合に処理するとエラーになります。
            .Borders(xlInsideHorizontal).LineStyle = xlNone
        End If
        
        If .Cells(1).Column < .Cells(.Count).Column Then
            'セル範囲の左右端以外の境界線
            '【注意(Excel2003以前のみ)】
            ' セル範囲が複数列にわたる場合のみ処理します。
            ' 単数列の場合に処理するとエラーになることがあります。
            .Borders(xlInsideVertical).LineStyle = xlNone
        End If
        
    End With

End Sub
[ExcelVBA]罫線の描画&消去

Private Sub CommandButton1_Click()
    '罫線描画
    Call DrawLine(Selection)
End Sub

Private Sub CommandButton2_Click()
    '罫線消去
    Call EraseLine(Selection)
End Sub
[ExcelVBA]呼び出し例

[Algo]DQ1の復活の呪文解析[Page1] [Programming Algorithm]

[はじめに]
 ドラゴンクエストI復活の呪文を解析するツールを
 作ってみました。
 オブジェクト指向言語で開発していますが、
 なるべく構造化プログラミングを意識して実装している為、
 他言語への移植はさほど難しくないと思います。 
開発ツールMicrosoft Visual Studio 2010
プログラム言語Microsoft Visual Basic 2010
.NETバージョン.NET Framework 2.0
形式Windows Forms アプリケーション
[機能]
 復活の呪文からゲーム進行状況のパラメータを解析する。
 ゲーム進行状況のパラメータから復活の呪文を生成する。
[制限事項]
 入力データは、下記を前提としています。
 ・プレイヤーの名前:全角のひらがな(一部除く)、数字
 ・復活の呪文:全角のひらがな(一部除く)
 ・復活の呪文:全角5文字、7文字、5文字、3文字
 ブログに掲載できる容量に制限がある為、入力チェックを省いています。
 入力データが前提以外の場合、アベンドすることがあります。
[実行の方法(VisualStudio2010を想定)]
 ①Windowsフォームアプリのプロジェクトを作成し、
  下記ソースをプロジェクトに追加する。(プロジェクトの名称は何でもいい。) 
ソース機能
FrmDq1.vbメイン画面のロジック
FrmDq1.Designer.vbメイン画面のデザイン(自動生成)
Dq1ConstData.vbアイテム、武器、鎧などのデータ
DataConverter.vb文字列と文字コードの相互変換
Dq1PasswordAnalizer.vb『復活の呪文』の解析/生成
Dq1Password.vb『復活の呪文』を表すクラス(文字列と文字コードを管理)
PlayerName.vbプレイヤーの名前を表すクラス(文字列と文字コードを管理)
PlayerInformation.vbプレイヤーの情報(所持金、経験値、イベントフラグ等)
 ②『FrmDq1.vb』をスタートアップフォームに設定する。
 ③Form1.vbを削除する。(新規プロジェクト作成時のデフォルトの画面)
 ④ビルドする。
 (※開発ツールの利用詳細は割愛)
 また、VisualStudio2010で開発していますが、
 .NET2.0上で動作するので、2005/2008でも利用できると思います。
 (※2005/2008では動作未確認)
[実行画面]
 DQ1 - 復活の呪文解析ツール
[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[Algo]DQ1の復活の呪文解析[Page1]
[Algo]DQ1の復活の呪文解析[Page2]
[Algo]DQ1の復活の呪文解析[Page3]
[Algo]DQ1の復活の呪文解析[Page4]
''' <summary>
''' データ変換クラス(文字列⇔数値配列)
''' </summary>
''' <remarks></remarks>
Public NotInheritable Class DataConverter

#Region "チェック処理"
    ''' <summary>
    ''' 変換可能かチェックする。(数値配列→文字列)
    ''' </summary>
    ''' <param name="targetData">データ</param>
    ''' <param name="convTable">変換テーブル</param>
    ''' <param name="errMessage">エラーメッセージ(OKの場合は空文字列)</param>
    ''' <returns>変換可否</returns>
    ''' <remarks></remarks>
    Public Shared Function CanConvertNumToString( _
        ByVal targetData() As Integer, _
        ByVal convTable() As String, _
        ByRef errMessage As StringAs Boolean

        'エラーメッセージ初期化
        errMessage = ""

        Try
            If targetData Is Nothing Then
                errMessage = "引数不正[targetData]"
                Return False
            End If

            If convTable Is Nothing Then
                errMessage = "引数不正[convTable]"
                Return False
            End If

            If targetData.Length > 4 Then
                errMessage = "データが長すぎます。[targetData]"
                Return False
            End If

            For Each data As Integer In targetData
                If data < 0 OrElse data > convTable.Length - 1 Then
                    errMessage = "データ不正。[targetData]"
                    Return False
                End If
            Next

        Catch ex As Exception
            errMessage = _
                "予期せぬエラー" & _
                vbCrLf & ex.ToString()
            Return False
        End Try

        Return True
    End Function

    ''' <summary>
    ''' 変換可能かチェックする。(文字列→数値配列)
    ''' </summary>
    ''' <param name="targetData">データ</param>
    ''' <param name="convTable">変換テーブル</param>
    ''' <param name="errMessage">エラーメッセージ(OKの場合は空文字列)</param>
    ''' <returns>変換可否</returns>
    ''' <remarks></remarks>
    Public Shared Function CanStrToNum( _
        ByVal targetData As String, _
        ByVal convTable() As String, _
        ByRef errMessage As StringAs Boolean

        'エラーメッセージ初期化
        errMessage = ""

        Try
            If targetData Is Nothing Then
                errMessage = "引数不正[targetData]"
                Return False
            End If

            If convTable Is Nothing Then
                errMessage = "引数不正[convTable]"
                Return False
            End If

            If targetData.Length > 20 Then
                errMessage = "データが長すぎます。[targetData]"
                Return False
            End If

            For Each data As Char In targetData
                If Array.IndexOf(convTable, data.ToString()) = -1 Then
                    errMessage = "指定できる文字は以下のみです。" & vbCrLf & String.Join("、", convTable)
                    Return False
                End If
            Next

        Catch ex As Exception
            errMessage = _
                "予期せぬエラー" & _
                vbCrLf & ex.ToString()
            Return False
        End Try

        Return True
    End Function

#End Region

#Region "変換処理"
    ''' <summary>
    ''' データを変換する。(数値配列→文字列)
    ''' </summary>
    ''' <param name="targetData">データ</param>
    ''' <param name="convTable">変換テーブル</param>
    ''' <returns>変換後データ(変換できない場合はNothing)</returns>
    ''' <remarks></remarks>
    Public Shared Function ConvertNumToString( _
        ByVal targetData() As Integer, _
        ByVal convTable() As StringAs String

        Dim sb As New System.Text.StringBuilder()

        For i As Integer = 0 To targetData.Length - 1
            sb.Append(convTable(targetData(i)))
        Next

        Return sb.ToString()

    End Function


    ''' <summary>
    ''' データを変換する。(文字列→数値配列)
    ''' </summary>
    ''' <param name="targetData">データ</param>
    ''' <param name="convTable">変換テーブル</param>
    ''' <returns>変換後データ(変換できない場合はNothing)</returns>
    ''' <remarks></remarks>
    Public Shared Function ConvertStrToNum( _
        ByVal targetData As String, _
        ByVal convTable() As StringAs Integer()

        Dim rtn As New List(Of Integer)()

        For i As Integer = 0 To targetData.Length - 1
            Dim idx As Integer = Array.IndexOf(convTable, targetData(i).ToString())

            If idx < 0 Then
                Return Nothing
            End If

            rtn.Add(idx)
        Next

        Return rtn.ToArray()

    End Function

#End Region

End Class
[VB.NET]DataConverter.vb


''' <summary>
''' 固定値データ
''' </summary>
''' <remarks></remarks>
Public NotInheritable Class Dq1ConstData

#Region "定数定義"
    ''' <summary>
    ''' 道具一覧
    ''' </summary>
    ''' <remarks></remarks>
    Public Shared ReadOnly ITEM_LIST() As String = New String() { _
         "なし""たいまつ""せいすい""キメラのつばさ", _
         "りゅうのうろこ""ようせいのふえ""せんしのゆびわ""ロトのしるし", _
         "おうじょのあい""のろいのベルト""ぎんのたてごと""しのくびかざり", _
         "たいようのいし""あまぐものつえ""にじのしずく", _
         "(不明)" _
    }

    ''' <summary>
    ''' 武器一覧
    ''' </summary>
    ''' <remarks></remarks>
    Public Shared ReadOnly WEAPON_LIST() As String = New String() { _
        "なし""たけざお""こんぼう""どうのつるぎ", _
        "てつのおの""はがねのつるぎ""ほのおのつるぎ""ロトのつるぎ" _
    }

    ''' <summary>
    ''' 鎧一覧
    ''' </summary>
    ''' <remarks></remarks>
    Public Shared ReadOnly ARMOR_LIST() As String = New String() { _
        "なし""ぬののふく""かわのふく""くさりかたびら", _
        "てつのよろい""はがねのよろい""まほうのよろい""ロトのよろい" _
    }

    ''' <summary>
    ''' 盾一覧
    ''' </summary>
    ''' <remarks></remarks>
    Public Shared ReadOnly SHIELD_LIST() As String = New String() { _
        "なし""かわのたて""てつのたて""みかがみのたて" _
    }


    ''' <summary>
    ''' レベル(経験値)一覧
    ''' Lv 1 の必要経験値 = LEVEL_LIST(0)
    ''' Lv n の必要経験値 = LEVEL_LIST(n-1)
    ''' </summary>
    ''' <remarks></remarks>
    Public Shared ReadOnly LEVEL_LIST() As Integer = New Integer() { _
        0, 7, 23, 47, 110, 220, 450, 800, 1300, 2000, _
        2900, 4000, 5500, 7500, 10000, 13000, 17000, 21000, 25000, 29000, _
        33000, 37000, 41000, 45000, 49000, 53000, 57000, 61000, 65000, 65535 _
    }

#End Region

#Region "メソッド定義"
    ''' <summary>
    ''' 経験値からレベルを取得する。
    ''' </summary>
    ''' <param name="exp">経験値</param>
    ''' <returns>レベル</returns>
    ''' <remarks></remarks>
    Public Shared Function GetLevel(ByVal exp As IntegerAs Integer

        If exp < 0 Then
            Throw New ArgumentOutOfRangeException("経験値の範囲が不正。")
        End If

        For i As Integer = LEVEL_LIST.Length - 1 To 0 Step -1
            If exp >= LEVEL_LIST(i) Then
                Return i + 1
            End If
        Next

        Return 0

    End Function

    ''' <summary>
    ''' 指定したレベルに達する為の経験値を取得する。
    ''' </summary>
    ''' <param name="level">レベル</param>
    ''' <returns>経験値</returns>
    ''' <remarks></remarks>
    Public Shared Function GetExp(ByVal level As IntegerAs Integer

        If level < 1 OrElse level > LEVEL_LIST.Length + 1 Then
            Throw New ArgumentOutOfRangeException("レベルの範囲が不正。")
        End If

        Return LEVEL_LIST(level - 1)

    End Function

#End Region

End Class

[VB.NET]Dq1ConstData.vb


''' <summary>
''' 復活の呪文(DQ1)
''' </summary>
''' <remarks></remarks>
Public Class Dq1Password

#Region "変数定義"
    ''' <summary>
    ''' 復活の呪文(文字列)
    ''' </summary>
    ''' <remarks></remarks>
    Private _pass As String = Nothing

    ''' <summary>
    ''' 復活の呪文(数値配列)
    ''' </summary>
    ''' <remarks></remarks>
    Private _passCode() As Integer = Nothing

    ''' <summary>
    ''' 変換テーブル
    ''' </summary>
    ''' <remarks></remarks>
    Public Shared ReadOnly CONVERT_TABLE() As String = _
        New String() { _
            "あ""い""う""え""お", _
            "か""き""く""け""こ", _
            "さ""し""す""せ""そ", _
            "た""ち""つ""て""と", _
            "な""に""ぬ""ね""の", _
            "は""ひ""ふ""へ""ほ", _
            "ま""み""む""め""も", _
            "や""ゆ""よ", _
            "ら""り""る""れ""ろ", _
            "わ", _
            "が""ぎ""ぐ""げ""ご", _
            "ざ""じ""ず""ぜ""ぞ", _
            "だ""ぢ""づ""で""ど", _
            "ば""び""ぶ""べ""ぼ", _
            "?" _
        }

#End Region

#Region "コンストラクタ"
    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <param name="pass">
    ''' 復活の呪文(文字列)
    ''' (例:「ふるいけや」「かわずとびこむ」「みずのおと」「ばしゃ」)
    ''' </param>
    ''' <remarks></remarks>
    Public Sub New(ByVal ParamArray pass() As String)
        MyClass.New(String.Join("", pass))
    End Sub

    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <param name="pass">
    ''' 復活の呪文(文字列)
    ''' (例:「ふるいけやかわずとびこむみずのおとばしゃ」)
    ''' </param>
    ''' <remarks></remarks>
    Public Sub New(ByVal pass As String)
        '復活の呪文(文字列)
        Me._pass = pass

        '復活の呪文(数値配列)
        Me._passCode = DataConverter.ConvertStrToNum(Me._pass, CONVERT_TABLE)

    End Sub

    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <param name="passCode">復活の呪文(数値配列)</param>
    ''' <remarks></remarks>
    Public Sub New(ByVal passCode() As Integer)
        '名前(数値配列)
        Me._passCode = passCode

        '名前(文字列)
        Me._pass = DataConverter.ConvertNumToString(Me._passCode, CONVERT_TABLE)

    End Sub

#End Region

#Region "メソッド定義"
    ''' <summary>
    ''' 復活の呪文(文字列)
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overrides Function ToString() As String
        Return Me._pass
    End Function

#End Region

#Region "アクセッサ定義"
    ''' <summary>
    ''' 復活の呪文(数値配列)
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public ReadOnly Property PassCode() As Integer()
        Get
            Return Me._passCode
        End Get
    End Property

#End Region

End Class
[VB.NET]Dq1Password.vb


''' <summary>
''' 復活の呪文(DQ1)の解析クラス
''' </summary>
''' <remarks></remarks>
Public Class Dq1PasswordAnalizer

#Region "チェックコード"

    ''' <summary>
    ''' チェックコード
    ''' </summary>
    ''' <remarks></remarks>
    Private Shared ReadOnly CHECK_CODE() As Integer = New Integer() {
        &H88, &HC4, &H62, &H31, &H8, &H84, &H42, &H21, _
        &H98, &HCC, &HE6, &H73, &HA9, &HC4, &H62, &H31, _
        &H5A, &HAD, &HC6, &H63, &HA1, &HC0, &H60, &H30, _
        &H38, &H9C, &H4E, &HA7, &HC3, &HF1, &H68, &HB4, _
        &HD0, &H68, &HB4, &H5A, &H2D, &H6, &H83, &H51, _
        &H20, &H10, &H8, &H84, &H42, &HA1, &H40, &HA0, _
        &HF9, &HEC, &HF6, &H7B, &HAD, &HC6, &HE3, &H61, _
        &H81, &HD0, &H68, &HB4, &HDA, &H6D, &HA6, &HD3, _
        &HB2, &HD9, &HFC, &HFE, &HFF, &HEF, &H67, &H23, _
        &H34, &H1A, &HD, &H96, &H4B, &H35, &H8A, &H45, _
        &HAA, &HD5, &H7A, &H3D, &H8E, &H47, &HB3, &H49, _
        &HA1, &H40, &HA0, &H50, &HA8, &HD4, &HEA, &H75, _
        &HA0, &HD0, &H68, &HB4, &H5A, &HAD, &HC6, &H63, _
        &H7E, &HBF, &HCF, &HF7, &H6B, &HA5, &HC2, &H61 _
    }

#End Region

#Region "プレイヤー情報から復活の呪文を取得する。"
    ''' <summary>
    ''' プレイヤー情報から復活の呪文を取得する。
    ''' </summary>
    ''' <param name="pInfo">プレイヤー情報</param>
    ''' <returns>復活の呪文</returns>
    ''' <remarks></remarks>
    Public Function GetPasswordFromPlayerInfo(ByVal pInfo As PlayerInformation) As Dq1Password

        Dim data() As Integer = New Integer(19) {}
        Dim code() As Integer = New Integer(14) {}

        code(0) = _
                (pInfo.ItemList(1) << 4) Or _
                pInfo.ItemList(0)
        code(1) = _
                (pInfo.Flag1 << 7) Or _
                (pInfo.Name.NameCode(1) << 1) Or _
                (pInfo.Flag2)
        code(2) = (pInfo.Experience >> 8) And &HFF
        code(3) = _
                (pInfo.ItemList(5) << 4) Or _
                pInfo.ItemList(4)
        code(4) = _
                (pInfo.MagicKeyNum << 4) Or _
                pInfo.HerbNum
        code(5) = (pInfo.Gold >> 8) And &HFF
        code(6) = _
                (pInfo.Weapon << 5) Or _
                (pInfo.Armor << 2) Or _
                pInfo.Shild
        code(7) = _
                ((pInfo.CryptKey << 5) And &H80) Or _
                (pInfo.Flag3 << 6) Or _
                pInfo.Name.NameCode(3)
        code(8) = _
                (pInfo.ItemList(7) << 4) Or _
                pInfo.ItemList(6)
        code(9) = _
                (pInfo.Name.NameCode(0) << 2) Or _
                (pInfo.Flag4 << 1) Or _
                ((pInfo.CryptKey >> 1) And &H1)
        code(10) = pInfo.Gold And &HFF
        code(11) = _
                (pInfo.ItemList(3) << 4) Or _
                pInfo.ItemList(2)
        code(12) = _
                ((pInfo.CryptKey << 7) And &H80) Or _
                (pInfo.Flag5 << 6) Or _
                pInfo.Name.NameCode(2)
        code(13) = pInfo.Experience And &HFF
        code(14) = 0

        'チェックコードを計算する
        For i As Integer = 0 To 13
            For j As Integer = 0 To 7
                If (code(i) And (&H80 >> j)) <> 0 AndAlso CHECK_CODE(i * 8 + j) <> &H0 Then
                    code(14) = code(14) Xor CHECK_CODE(i * 8 + j)
                End If
            Next
        Next

        '8bit毎の code() を、 6bit毎の data() に変換
        Dim k As Integer = 0

        For i As Integer = 14 To 0 Step -3
            Dim w As Long = _
                (code(i - 2) << 16) Or _
                (code(i - 1) << 8) Or _
                (code(i))

            data(k) = w And &H3F : k += 1
            data(k) = (w >> 6) And &H3F : k += 1
            data(k) = (w >> 12) And &H3F : k += 1
            data(k) = (w >> 18) And &H3F : k += 1

        Next

        '4を加算し、data() を累計する
        Dim work As Integer = 0
        Dim passCode As New List(Of Integer)()

        For i As Integer = 0 To 19
            passCode.Add((data(i) + work + 4) And &H3F)
            work = passCode(i)
        Next

        '復活の呪文
        Dim pass As New Dq1Password(passCode.ToArray())

        Return pass

    End Function

#End Region

#Region "プレイヤー情報から復活の呪文を取得する。"

    ''' <summary>
    ''' プレイヤー情報から復活の呪文を取得する。
    ''' </summary>
    ''' <param name="pass">復活の呪文</param>
    ''' <returns>プレイヤー情報</returns>
    ''' <remarks></remarks>
    Public Function GetPlayerInfoFromPassword(ByVal pass As Dq1Password) As PlayerInformation
        Return Me.GetPlayerInfoFromPassword(pass.ToString())
    End Function


    ''' <summary>
    ''' プレイヤー情報から復活の呪文を取得する。
    ''' </summary>
    ''' <param name="pass">復活の呪文</param>
    ''' <returns>プレイヤー情報</returns>
    ''' <remarks></remarks>
    Public Function GetPlayerInfoFromPassword(ByVal pass As StringAs PlayerInformation

        Dim data(19) As Integer
        Dim code(14) As Integer

        '復活の呪文の文字コード
        Dim passCode() As Integer = DataConverter.ConvertStrToNum( _
                pass, _
                Dq1Password.CONVERT_TABLE _
            )

        '4 を引き、前後の文字の差分を取る
        For i As Integer = 19 To 1 Step -1
            data(i) = (passCode(i) - passCode(i - 1) - 4) And &H3F
        Next

        data(0) = (passCode(0) - 4) And &H3F

        '6bit毎のdata() を、 8bit毎のcode()に変換
        Dim j As Integer = 0

        For i As Integer = 19 To 0 Step -4
            Dim w As Long = _
                (data(i) << 18) Or _
                (data(i - 1) << 12) Or _
                (data(i - 2) << 6) Or _
                 data(i - 3)
            code(j) = (w >> 16) And &HFF : j += 1
            code(j) = (w >> 8) And &HFF : j += 1
            code(j) = w And &HFF : j += 1
        Next

        'チェックコードを計算する
        For i As Integer = 0 To 13
            For jj As Integer = 0 To 7
                If (code(i) And (&H80 >> jj)) <> 0 AndAlso CHECK_CODE(i * 8 + jj) <> &H0 Then
                    code(14) = code(14) Xor CHECK_CODE(i * 8 + jj)
                End If
            Next
        Next

        Dim pInfo As New PlayerInformation()

        pInfo.CheckCode = code(14)

        pInfo.Name = New PlayerName( _
                New Integer() { _
                    (code(9) >> 2) And &H3F, _
                    (code(1) >> 1) And &H3F, _
                    (code(12)) And &H3F, _
                    (code(7)) And &H3F _
                }
            )

        pInfo.Weapon = (code(6) >> 5) And &H7
        pInfo.Armor = (code(6) >> 2) And &H7
        pInfo.Shild = code(6) And &H3

        pInfo.ItemList(0) = code(0) And &HF
        pInfo.ItemList(1) = (code(0) >> 4) And &HF
        pInfo.ItemList(2) = code(11) And &HF
        pInfo.ItemList(3) = (code(11) >> 4) And &HF
        pInfo.ItemList(4) = code(3) And &HF
        pInfo.ItemList(5) = (code(3) >> 4) And &HF
        pInfo.ItemList(6) = code(8) And &HF
        pInfo.ItemList(7) = (code(8) >> 4) And &HF

        pInfo.MagicKeyNum = (code(4) >> 4) And &HF
        pInfo.HerbNum = code(4) And &HF

        pInfo.Experience = code(2) * 256 + code(13)
        pInfo.Gold = code(5) * 256 + code(10)

        pInfo.Flag1 = (code(1) >> 7) And &H1
        pInfo.Flag2 = code(1) And &H1
        pInfo.Flag3 = (code(7) >> 6) And &H1
        pInfo.Flag4 = (code(9) >> 1) And &H1
        pInfo.Flag5 = (code(12) >> 6) And &H1

        pInfo.CryptKey = _
                ((code(7) >> 5) And &H4) Or _
                ((code(9) << 1) And &H2) Or _
                ((code(12) >> 7) And &H1)

        pInfo.Level = Dq1ConstData.GetLevel(pInfo.Experience)

        '呪文が正しいかどうかをチェック
        If pInfo.CheckCode <> 0 OrElse _
            pInfo.MagicKeyNum > 6 OrElse _
            pInfo.HerbNum > 6 Then
            Return Nothing
        End If

        For i As Integer = 0 To 7
            If pInfo.ItemList(i) >= 15 Then
                Return Nothing
            End If
        Next

        Return pInfo

    End Function

#End Region

End Class
[VB.NET]Dq1PasswordAnalizer.vb


続きはこちらから
[Algo]DQ1の復活の呪文解析[Page2]
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[Algo]DQ1の復活の呪文解析[Page2] [Programming Algorithm]

[Algo]DQ1の復活の呪文解析[Page1]からの続きです。
[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[Algo]DQ1の復活の呪文解析[Page1]
[Algo]DQ1の復活の呪文解析[Page2]
[Algo]DQ1の復活の呪文解析[Page3]
[Algo]DQ1の復活の呪文解析[Page4]
''' <summary>
''' プレーヤー情報
''' </summary>
''' <remarks></remarks>
Public Class PlayerInformation

#Region "変数定義"
    ''' <summary>
    ''' レベル:出力用
    ''' </summary>
    ''' <remarks></remarks>
    Public Level As Integer = 0

    ''' <summary>
    ''' プレイヤーの名前
    ''' </summary>
    ''' <remarks></remarks>
    Public Name As PlayerName = Nothing

    ''' <summary>
    ''' 武器(0~7)
    ''' </summary>
    ''' <remarks></remarks>
    Public Weapon As Integer = 0

    ''' <summary>
    ''' 鎧(0~7)
    ''' </summary>
    ''' <remarks></remarks>
    Public Armor As Integer = 0

    ''' <summary>
    ''' 盾(0~3)
    ''' </summary>
    ''' <remarks></remarks>
    Public Shild As Integer = 0

    ''' <summary>
    ''' 道具(8個)
    ''' 各々の要素(0~14)
    ''' </summary>
    ''' <remarks></remarks>
    Public ItemList() As Integer = New Integer() {0, 0, 0, 0, 0, 0, 0, 0}

    ''' <summary>
    ''' 魔法の鍵の保持数(0~6)
    ''' </summary>
    ''' <remarks></remarks>
    Public MagicKeyNum As Integer = 0

    ''' <summary>
    ''' 薬草の保持数(0~6)
    ''' </summary>
    ''' <remarks></remarks>
    Public HerbNum As Integer = 0

    ''' <summary>
    ''' 経験値(0~65535)
    ''' </summary>
    ''' <remarks></remarks>
    Public Experience As Integer = 0

    ''' <summary>
    ''' ゴールド(0~65535)
    ''' </summary>
    ''' <remarks></remarks>
    Public Gold As Integer = 0

    ''' <summary>
    ''' フラグ1
    ''' (竜の鱗を装備したことがあるか?)
    ''' はい:1、いいえ:0
    ''' </summary>
    ''' <remarks></remarks>
    Public Flag1 As Integer = 0

    ''' <summary>
    ''' フラグ2
    ''' (戦士の指輪を装備しているか?)
    ''' はい:1、いいえ:0
    ''' </summary>
    ''' <remarks></remarks>
    Public Flag2 As Integer = 0

    ''' <summary>
    ''' フラグ3
    ''' (ドラゴンを倒したか?)
    ''' はい:1、いいえ:0
    ''' </summary>
    ''' <remarks></remarks>
    Public Flag3 As Integer = 0

    ''' <summary>
    ''' フラグ4
    ''' (ゴーレムを倒したか?)
    ''' はい:1、いいえ:0
    ''' </summary>
    ''' <remarks></remarks>
    Public Flag4 As Integer = 0

    ''' <summary>
    ''' フラグ5
    ''' (死の首飾りを入手したことがあるか?)
    ''' はい:1、いいえ:0
    ''' </summary>
    ''' <remarks></remarks>
    Public Flag5 As Integer = 0

    ''' <summary>
    ''' 暗号化のキー
    ''' </summary>
    ''' <remarks></remarks>
    Public CryptKey As Integer = 0

    ''' <summary>
    ''' チェックコード:出力用
    ''' </summary>
    ''' <remarks></remarks>
    Public CheckCode As Integer = 0

#End Region

End Class

[VB.NET]PlayerInformation.vb



''' <summary>
''' プレイヤーの名前
''' </summary>
''' <remarks></remarks>
Public Class PlayerName

#Region "変数定義"
    ''' <summary>
    ''' 名前(文字列)
    ''' </summary>
    ''' <remarks></remarks>
    Private _name As String = Nothing

    ''' <summary>
    ''' 名前(数値配列)
    ''' </summary>
    ''' <remarks></remarks>
    Private _nameCode() As Integer = Nothing

    ''' <summary>
    ''' 変換テーブル
    ''' </summary>
    ''' <remarks></remarks>
    Public Shared CONVERT_TABLE() As String = _
        New String() { _
            "0""1""2""3""4", _
            "5""6""7""8""9", _
            "あ""い""う""え""お", _
            "か""き""く""け""こ", _
            "さ""し""す""せ""そ", _
            "た""ち""つ""て""と", _
            "な""に""ぬ""ね""の", _
            "は""ひ""ふ""へ""ほ", _
            "ま""み""む""め""も", _
            "や""ゆ""よ", _
            "ら""り""る""れ""ろ", _
            "わ""を""ん", _
            "っ""ゃ""ゅ""ょ", _
            "゛""゜""-"" " _
        }

#End Region

#Region "コンストラクタ"
    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <param name="name">名前(文字列)</param>
    ''' <remarks></remarks>
    Public Sub New(ByVal name As String)
        '名前(文字列)
        Me._name = name.PadRight(4, " ")

        '名前(数値配列)
        Me._nameCode = DataConverter.ConvertStrToNum(Me._name, CONVERT_TABLE)

    End Sub

    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <param name="nameCode">名前(数値配列)</param>
    ''' <remarks></remarks>
    Public Sub New(ByVal nameCode() As Integer)
        '名前(数値配列)
        Me._nameCode = nameCode

        '名前(文字列)
        Me._name = DataConverter.ConvertNumToString(Me._nameCode, CONVERT_TABLE)

    End Sub

#End Region

#Region "メソッド定義"
    ''' <summary>
    ''' 名前(文字列)
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overrides Function ToString() As String
        Return Me._name
    End Function

#End Region


#Region "アクセッサ定義"
    ''' <summary>
    ''' 名前(数値配列)
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public ReadOnly Property NameCode() As Integer()
        Get
            Return Me._nameCode
        End Get
    End Property

#End Region

End Class
[VB.NET]PlayerName.vb


続きはこちらから
[Algo]DQ1の復活の呪文解析[Page3]
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[Algo]DQ1の復活の呪文解析[Page3] [Programming Algorithm]

[Algo]DQ1の復活の呪文解析[Page2]からの続きです。

[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[Algo]DQ1の復活の呪文解析[Page1]
[Algo]DQ1の復活の呪文解析[Page2]
[Algo]DQ1の復活の呪文解析[Page3]
[Algo]DQ1の復活の呪文解析[Page4]
''' <summary>
''' 「DQ1 - 復活の呪文解析ツール」
''' </summary>
''' <remarks></remarks>
Public Class FrmDq1

    ''' <summary>
    '''道具コンボボックスの配列
    ''' </summary>
    ''' <remarks></remarks>
    Private _cmbItemList() As ComboBox = Nothing

    ''' <summary>
    ''' 画面起動時
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub FrmDq1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
        '武器
        Me.cmbWeapon.DataSource = Dq1ConstData.WEAPON_LIST
        '鎧
        Me.cmbArmor.DataSource = Dq1ConstData.ARMOR_LIST
        '盾
        Me.cmbShield.DataSource = Dq1ConstData.SHIELD_LIST

        '道具
        Me.cmbItem1.DataSource = Dq1ConstData.ITEM_LIST.Clone()
        Me.cmbItem2.DataSource = Dq1ConstData.ITEM_LIST.Clone()
        Me.cmbItem3.DataSource = Dq1ConstData.ITEM_LIST.Clone()
        Me.cmbItem4.DataSource = Dq1ConstData.ITEM_LIST.Clone()
        Me.cmbItem5.DataSource = Dq1ConstData.ITEM_LIST.Clone()
        Me.cmbItem6.DataSource = Dq1ConstData.ITEM_LIST.Clone()
        Me.cmbItem7.DataSource = Dq1ConstData.ITEM_LIST.Clone()
        Me.cmbItem8.DataSource = Dq1ConstData.ITEM_LIST.Clone()

        '道具
        Me._cmbItemList = New ComboBox() {
            Me.cmbItem1, Me.cmbItem2, Me.cmbItem3, Me.cmbItem4, _
            Me.cmbItem5, Me.cmbItem6, Me.cmbItem7, Me.cmbItem8
        }

    End Sub


    ''' <summary>
    ''' 「解析」ボタン
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub btnGetParam_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles btnGetParam.Click

        'パスワードを変換(文字列→数値)
        Dim passAnlz As New Dq1PasswordAnalizer()

        Dim passInfo As New Dq1Password( _
            Me.txtPass1.Text.Trim(), _
            Me.txtPass2.Text.Trim(), _
            Me.txtPass3.Text.Trim(), _
            Me.txtPass4.Text.Trim())

        If passInfo Is Nothing Then
            MessageBox.Show("復活の呪文が違います。""エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        End If

        Dim plInfo As PlayerInformation = passAnlz.GetPlayerInfoFromPassword(passInfo)

        If plInfo Is Nothing Then
            MessageBox.Show("復活の呪文が違います。""エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        End If

        Me.txtLevel.Text = plInfo.Level.ToString()

        Me.txtPlayerName.Text = plInfo.Name.ToString()
        Me.numGold.Value = plInfo.Gold
        Me.numExp.Value = plInfo.Experience
        Me.numHerb.Value = plInfo.HerbNum
        Me.numKey.Value = plInfo.MagicKeyNum

        Me.cmbWeapon.SelectedIndex = plInfo.Weapon
        Me.cmbArmor.SelectedIndex = plInfo.Armor
        Me.cmbShield.SelectedIndex = plInfo.Shild

        For i As Integer = 0 To Me._cmbItemList.Length - 1
            Me._cmbItemList(i).SelectedIndex = plInfo.ItemList(i)
        Next

        Me.chkFlag1.Checked = plInfo.Flag1 = 1
        Me.chkFlag2.Checked = plInfo.Flag2 = 1
        Me.chkFlag3.Checked = plInfo.Flag3 = 1
        Me.chkFlag4.Checked = plInfo.Flag4 = 1
        Me.chkFlag5.Checked = plInfo.Flag5 = 1

        Me.numCrypt.Value = plInfo.CryptKey
        Me.txtResult.Text = plInfo.CheckCode.ToString()

        If plInfo.CheckCode <> 0 Then
            '基本的にはありえないですが。。。
            MessageBox.Show("復活の呪文が違います。(一部だけ)""エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        End If

    End Sub

    ''' <summary>
    ''' 「生成」ボタン
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub btnGetPass_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles btnGetPass.Click

        Dim plInfo As New PlayerInformation()

        plInfo.Name = New PlayerName(Me.txtPlayerName.Text)

        If plInfo.Name.NameCode Is Nothing Then
            MessageBox.Show("名前が不正です。""エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        End If

        plInfo.Gold = Me.numGold.Value
        plInfo.Experience = Me.numExp.Value
        plInfo.HerbNum = Me.numHerb.Value
        plInfo.MagicKeyNum = Me.numKey.Value

        plInfo.Weapon = Me.cmbWeapon.SelectedIndex
        plInfo.Armor = Me.cmbArmor.SelectedIndex
        plInfo.Shild = Me.cmbShield.SelectedIndex

        For i As Integer = 0 To Me._cmbItemList.Length - 1
            plInfo.ItemList(i) = Me._cmbItemList(i).SelectedIndex
        Next

        plInfo.Flag1 = IIf(Me.chkFlag1.Checked, 1, 0)
        plInfo.Flag2 = IIf(Me.chkFlag2.Checked, 1, 0)
        plInfo.Flag3 = IIf(Me.chkFlag3.Checked, 1, 0)
        plInfo.Flag4 = IIf(Me.chkFlag4.Checked, 1, 0)
        plInfo.Flag5 = IIf(Me.chkFlag5.Checked, 1, 0)

        plInfo.CryptKey = Me.numCrypt.Value

        Dim passAnlz As New Dq1PasswordAnalizer()

        Dim dqPass As String = _
            passAnlz.GetPasswordFromPlayerInfo(plInfo).ToString().PadRight(20, " ")

        Me.txtPass1.Text = dqPass.PadRight(20, " ").Substring(0, 5)
        Me.txtPass2.Text = dqPass.PadRight(20, " ").Substring(5, 7)
        Me.txtPass3.Text = dqPass.PadRight(20, " ").Substring(12, 5)
        Me.txtPass4.Text = dqPass.PadRight(20, " ").Substring(17, 3)

    End Sub

    ''' <summary>
    ''' 「経験値」変更
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub numExp_ValueChanged(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles numExp.ValueChanged
        Me.txtLevel.Text = Dq1ConstData.GetLevel(Me.numExp.Value).ToString()
    End Sub

    ''' <summary>
    ''' テキストボックスのフォーカス取得時
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub txtCommon_Enter(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles _
        txtPass1.Enter, txtPass2.Enter, txtPass3.Enter, txtPass4.Enter, _
        txtLevel.Enter, txtPlayerName.Enter, txtResult.Enter

        CType(sender, TextBox).SelectAll()
    End Sub


End Class
[VB.NET]FrmDq1.vb


続きはこちらから
[Algo]DQ1の復活の呪文解析[Page4]

[Algo]DQ1の復活の呪文解析[Page4] [Programming Algorithm]

[Algo]DQ1の復活の呪文解析[Page3]からの続きです。

[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[Algo]DQ1の復活の呪文解析[Page1]
[Algo]DQ1の復活の呪文解析[Page2]
[Algo]DQ1の復活の呪文解析[Page3]
[Algo]DQ1の復活の呪文解析[Page4]
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class FrmDq1
    Inherits System.Windows.Forms.Form

    'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Windows フォーム デザイナーで必要です。
    Private components As System.ComponentModel.IContainer

    'メモ: 以下のプロシージャは Windows フォーム デザイナーで必要です。
    'Windows フォーム デザイナーを使用して変更できます。  
    'コード エディターを使って変更しないでください。
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.lblPass = New System.Windows.Forms.Label()
        Me.txtPlayerName = New System.Windows.Forms.TextBox()
        Me.numHerb = New System.Windows.Forms.NumericUpDown()
        Me.numKey = New System.Windows.Forms.NumericUpDown()
        Me.cmbShield = New System.Windows.Forms.ComboBox()
        Me.cmbWeapon = New System.Windows.Forms.ComboBox()
        Me.cmbArmor = New System.Windows.Forms.ComboBox()
        Me.cmbItem1 = New System.Windows.Forms.ComboBox()
        Me.cmbItem2 = New System.Windows.Forms.ComboBox()
        Me.cmbItem3 = New System.Windows.Forms.ComboBox()
        Me.cmbItem6 = New System.Windows.Forms.ComboBox()
        Me.cmbItem5 = New System.Windows.Forms.ComboBox()
        Me.cmbItem4 = New System.Windows.Forms.ComboBox()
        Me.cmbItem8 = New System.Windows.Forms.ComboBox()
        Me.cmbItem7 = New System.Windows.Forms.ComboBox()
        Me.chkFlag1 = New System.Windows.Forms.CheckBox()
        Me.chkFlag5 = New System.Windows.Forms.CheckBox()
        Me.chkFlag4 = New System.Windows.Forms.CheckBox()
        Me.chkFlag3 = New System.Windows.Forms.CheckBox()
        Me.chkFlag2 = New System.Windows.Forms.CheckBox()
        Me.numCrypt = New System.Windows.Forms.NumericUpDown()
        Me.txtResult = New System.Windows.Forms.TextBox()
        Me.btnGetParam = New System.Windows.Forms.Button()
        Me.btnGetPass = New System.Windows.Forms.Button()
        Me.lblName = New System.Windows.Forms.Label()
        Me.lblGold = New System.Windows.Forms.Label()
        Me.lblExp = New System.Windows.Forms.Label()
        Me.lblHerb = New System.Windows.Forms.Label()
        Me.lblKey = New System.Windows.Forms.Label()
        Me.lblWeapon = New System.Windows.Forms.Label()
        Me.lblShield = New System.Windows.Forms.Label()
        Me.lblArmor = New System.Windows.Forms.Label()
        Me.grpItem = New System.Windows.Forms.GroupBox()
        Me.grpFlag = New System.Windows.Forms.GroupBox()
        Me.lblResult = New System.Windows.Forms.Label()
        Me.lblCrypt = New System.Windows.Forms.Label()
        Me.txtLevel = New System.Windows.Forms.TextBox()
        Me.lblLevel = New System.Windows.Forms.Label()
        Me.numGold = New System.Windows.Forms.NumericUpDown()
        Me.numExp = New System.Windows.Forms.NumericUpDown()
        Me.txtPass1 = New System.Windows.Forms.TextBox()
        Me.txtPass2 = New System.Windows.Forms.TextBox()
        Me.txtPass3 = New System.Windows.Forms.TextBox()
        Me.txtPass4 = New System.Windows.Forms.TextBox()
        CType(Me.numHerb, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.numKey, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.numCrypt, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.grpItem.SuspendLayout()
        Me.grpFlag.SuspendLayout()
        CType(Me.numGold, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.numExp, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'lblPass
        '
        Me.lblPass.AutoSize = True
        Me.lblPass.Location = New System.Drawing.Point(14, 18)
        Me.lblPass.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblPass.Name = "lblPass"
        Me.lblPass.Size = New System.Drawing.Size(109, 19)
        Me.lblPass.TabIndex = 0
        Me.lblPass.Text = "復活の呪文"
        '
        'txtPlayerName
        '
        Me.txtPlayerName.ImeMode = System.Windows.Forms.ImeMode.Hiragana
        Me.txtPlayerName.Location = New System.Drawing.Point(111, 141)
        Me.txtPlayerName.MaxLength = 4
        Me.txtPlayerName.Name = "txtPlayerName"
        Me.txtPlayerName.Size = New System.Drawing.Size(164, 26)
        Me.txtPlayerName.TabIndex = 10
        '
        'numHerb
        '
        Me.numHerb.Location = New System.Drawing.Point(112, 234)
        Me.numHerb.Maximum = New Decimal(New Integer() {6, 0, 0, 0})
        Me.numHerb.Name = "numHerb"
        Me.numHerb.Size = New System.Drawing.Size(163, 26)
        Me.numHerb.TabIndex = 16
        '
        'numKey
        '
        Me.numKey.Location = New System.Drawing.Point(112, 263)
        Me.numKey.Maximum = New Decimal(New Integer() {6, 0, 0, 0})
        Me.numKey.Name = "numKey"
        Me.numKey.Size = New System.Drawing.Size(163, 26)
        Me.numKey.TabIndex = 18
        '
        'cmbShield
        '
        Me.cmbShield.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbShield.FormattingEnabled = True
        Me.cmbShield.Location = New System.Drawing.Point(112, 371)
        Me.cmbShield.Name = "cmbShield"
        Me.cmbShield.Size = New System.Drawing.Size(163, 27)
        Me.cmbShield.TabIndex = 24
        '
        'cmbWeapon
        '
        Me.cmbWeapon.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbWeapon.FormattingEnabled = True
        Me.cmbWeapon.Location = New System.Drawing.Point(111, 300)
        Me.cmbWeapon.Name = "cmbWeapon"
        Me.cmbWeapon.Size = New System.Drawing.Size(164, 27)
        Me.cmbWeapon.TabIndex = 20
        '
        'cmbArmor
        '
        Me.cmbArmor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbArmor.FormattingEnabled = True
        Me.cmbArmor.Location = New System.Drawing.Point(112, 338)
        Me.cmbArmor.Name = "cmbArmor"
        Me.cmbArmor.Size = New System.Drawing.Size(163, 27)
        Me.cmbArmor.TabIndex = 22
        '
        'cmbItem1
        '
        Me.cmbItem1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbItem1.FormattingEnabled = True
        Me.cmbItem1.Location = New System.Drawing.Point(25, 25)
        Me.cmbItem1.Name = "cmbItem1"
        Me.cmbItem1.Size = New System.Drawing.Size(169, 27)
        Me.cmbItem1.TabIndex = 0
        '
        'cmbItem2
        '
        Me.cmbItem2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbItem2.FormattingEnabled = True
        Me.cmbItem2.Location = New System.Drawing.Point(25, 58)
        Me.cmbItem2.Name = "cmbItem2"
        Me.cmbItem2.Size = New System.Drawing.Size(169, 27)
        Me.cmbItem2.TabIndex = 1
        '
        'cmbItem3
        '
        Me.cmbItem3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbItem3.FormattingEnabled = True
        Me.cmbItem3.Location = New System.Drawing.Point(26, 91)
        Me.cmbItem3.Name = "cmbItem3"
        Me.cmbItem3.Size = New System.Drawing.Size(169, 27)
        Me.cmbItem3.TabIndex = 2
        '
        'cmbItem6
        '
        Me.cmbItem6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbItem6.FormattingEnabled = True
        Me.cmbItem6.Location = New System.Drawing.Point(27, 190)
        Me.cmbItem6.Name = "cmbItem6"
        Me.cmbItem6.Size = New System.Drawing.Size(169, 27)
        Me.cmbItem6.TabIndex = 5
        '
        'cmbItem5
        '
        Me.cmbItem5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbItem5.FormattingEnabled = True
        Me.cmbItem5.Location = New System.Drawing.Point(26, 157)
        Me.cmbItem5.Name = "cmbItem5"
        Me.cmbItem5.Size = New System.Drawing.Size(169, 27)
        Me.cmbItem5.TabIndex = 4
        '
        'cmbItem4
        '
        Me.cmbItem4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbItem4.FormattingEnabled = True
        Me.cmbItem4.Location = New System.Drawing.Point(26, 124)
        Me.cmbItem4.Name = "cmbItem4"
        Me.cmbItem4.Size = New System.Drawing.Size(169, 27)
        Me.cmbItem4.TabIndex = 3
        '
        'cmbItem8
        '
        Me.cmbItem8.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbItem8.FormattingEnabled = True
        Me.cmbItem8.Location = New System.Drawing.Point(28, 256)
        Me.cmbItem8.Name = "cmbItem8"
        Me.cmbItem8.Size = New System.Drawing.Size(169, 27)
        Me.cmbItem8.TabIndex = 7
        '
        'cmbItem7
        '
        Me.cmbItem7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.cmbItem7.FormattingEnabled = True
        Me.cmbItem7.Location = New System.Drawing.Point(27, 223)
        Me.cmbItem7.Name = "cmbItem7"
        Me.cmbItem7.Size = New System.Drawing.Size(169, 27)
        Me.cmbItem7.TabIndex = 6
        '
        'chkFlag1
        '
        Me.chkFlag1.AutoSize = True
        Me.chkFlag1.Location = New System.Drawing.Point(23, 25)
        Me.chkFlag1.Name = "chkFlag1"
        Me.chkFlag1.Size = New System.Drawing.Size(91, 16)
        Me.chkFlag1.TabIndex = 0
        Me.chkFlag1.Text = "竜の鱗を装備"
        Me.chkFlag1.UseVisualStyleBackColor = True
        '
        'chkFlag5
        '
        Me.chkFlag5.AutoSize = True
        Me.chkFlag5.Location = New System.Drawing.Point(23, 153)
        Me.chkFlag5.Name = "chkFlag5"
        Me.chkFlag5.Size = New System.Drawing.Size(111, 16)
        Me.chkFlag5.TabIndex = 4
        Me.chkFlag5.Text = "死の首飾りを入手"
        Me.chkFlag5.UseVisualStyleBackColor = True
        '
        'chkFlag4
        '
        Me.chkFlag4.AutoSize = True
        Me.chkFlag4.Location = New System.Drawing.Point(23, 121)
        Me.chkFlag4.Name = "chkFlag4"
        Me.chkFlag4.Size = New System.Drawing.Size(101, 16)
        Me.chkFlag4.TabIndex = 3
        Me.chkFlag4.Text = "ゴーレムを倒した"
        Me.chkFlag4.UseVisualStyleBackColor = True
        '
        'chkFlag3
        '
        Me.chkFlag3.AutoSize = True
        Me.chkFlag3.Location = New System.Drawing.Point(23, 89)
        Me.chkFlag3.Name = "chkFlag3"
        Me.chkFlag3.Size = New System.Drawing.Size(98, 16)
        Me.chkFlag3.TabIndex = 2
        Me.chkFlag3.Text = "ドラゴンを倒した"
        Me.chkFlag3.UseVisualStyleBackColor = True
        '
        'chkFlag2
        '
        Me.chkFlag2.AutoSize = True
        Me.chkFlag2.Location = New System.Drawing.Point(23, 57)
        Me.chkFlag2.Name = "chkFlag2"
        Me.chkFlag2.Size = New System.Drawing.Size(115, 16)
        Me.chkFlag2.TabIndex = 1
        Me.chkFlag2.Text = "戦士の腕輪を装備"
        Me.chkFlag2.UseVisualStyleBackColor = True
        '
        'numCrypt
        '
        Me.numCrypt.Location = New System.Drawing.Point(636, 324)
        Me.numCrypt.Maximum = New Decimal(New Integer() {7, 0, 0, 0})
        Me.numCrypt.Name = "numCrypt"
        Me.numCrypt.Size = New System.Drawing.Size(120, 26)
        Me.numCrypt.TabIndex = 28
        '
        'txtResult
        '
        Me.txtResult.Location = New System.Drawing.Point(636, 361)
        Me.txtResult.Name = "txtResult"
        Me.txtResult.ReadOnly = True
        Me.txtResult.Size = New System.Drawing.Size(120, 26)
        Me.txtResult.TabIndex = 30
        '
        'btnGetParam
        '
        Me.btnGetParam.Location = New System.Drawing.Point(131, 47)
        Me.btnGetParam.Name = "btnGetParam"
        Me.btnGetParam.Size = New System.Drawing.Size(144, 37)
        Me.btnGetParam.TabIndex = 5
        Me.btnGetParam.Text = "↓解析"
        Me.btnGetParam.UseVisualStyleBackColor = True
        '
        'btnGetPass
        '
        Me.btnGetPass.Location = New System.Drawing.Point(281, 47)
        Me.btnGetPass.Name = "btnGetPass"
        Me.btnGetPass.Size = New System.Drawing.Size(144, 39)
        Me.btnGetPass.TabIndex = 6
        Me.btnGetPass.Text = "↑生成"
        Me.btnGetPass.UseVisualStyleBackColor = True
        '
        'lblName
        '
        Me.lblName.AutoSize = True
        Me.lblName.Location = New System.Drawing.Point(14, 140)
        Me.lblName.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblName.Name = "lblName"
        Me.lblName.Size = New System.Drawing.Size(49, 19)
        Me.lblName.TabIndex = 9
        Me.lblName.Text = "名前"
        '
        'lblGold
        '
        Me.lblGold.AutoSize = True
        Me.lblGold.Location = New System.Drawing.Point(14, 169)
        Me.lblGold.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblGold.Name = "lblGold"
        Me.lblGold.Size = New System.Drawing.Size(69, 19)
        Me.lblGold.TabIndex = 11
        Me.lblGold.Text = "所持金"
        '
        'lblExp
        '
        Me.lblExp.AutoSize = True
        Me.lblExp.Location = New System.Drawing.Point(14, 199)
        Me.lblExp.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblExp.Name = "lblExp"
        Me.lblExp.Size = New System.Drawing.Size(69, 19)
        Me.lblExp.TabIndex = 13
        Me.lblExp.Text = "経験値"
        '
        'lblHerb
        '
        Me.lblHerb.AutoSize = True
        Me.lblHerb.Location = New System.Drawing.Point(14, 235)
        Me.lblHerb.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblHerb.Name = "lblHerb"
        Me.lblHerb.Size = New System.Drawing.Size(49, 19)
        Me.lblHerb.TabIndex = 15
        Me.lblHerb.Text = "薬草"
        '
        'lblKey
        '
        Me.lblKey.AutoSize = True
        Me.lblKey.Location = New System.Drawing.Point(14, 265)
        Me.lblKey.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblKey.Name = "lblKey"
        Me.lblKey.Size = New System.Drawing.Size(89, 19)
        Me.lblKey.TabIndex = 17
        Me.lblKey.Text = "魔法の鍵"
        '
        'lblWeapon
        '
        Me.lblWeapon.AutoSize = True
        Me.lblWeapon.Location = New System.Drawing.Point(14, 300)
        Me.lblWeapon.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblWeapon.Name = "lblWeapon"
        Me.lblWeapon.Size = New System.Drawing.Size(49, 19)
        Me.lblWeapon.TabIndex = 19
        Me.lblWeapon.Text = "武器"
        '
        'lblShield
        '
        Me.lblShield.AutoSize = True
        Me.lblShield.Location = New System.Drawing.Point(14, 374)
        Me.lblShield.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblShield.Name = "lblShield"
        Me.lblShield.Size = New System.Drawing.Size(29, 19)
        Me.lblShield.TabIndex = 23
        Me.lblShield.Text = "盾"
        '
        'lblArmor
        '
        Me.lblArmor.AutoSize = True
        Me.lblArmor.Location = New System.Drawing.Point(14, 338)
        Me.lblArmor.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblArmor.Name = "lblArmor"
        Me.lblArmor.Size = New System.Drawing.Size(29, 19)
        Me.lblArmor.TabIndex = 21
        Me.lblArmor.Text = "鎧"
        '
        'grpItem
        '
        Me.grpItem.Controls.Add(Me.cmbItem1)
        Me.grpItem.Controls.Add(Me.cmbItem2)
        Me.grpItem.Controls.Add(Me.cmbItem3)
        Me.grpItem.Controls.Add(Me.cmbItem4)
        Me.grpItem.Controls.Add(Me.cmbItem5)
        Me.grpItem.Controls.Add(Me.cmbItem6)
        Me.grpItem.Controls.Add(Me.cmbItem7)
        Me.grpItem.Controls.Add(Me.cmbItem8)
        Me.grpItem.Location = New System.Drawing.Point(298, 100)
        Me.grpItem.Name = "grpItem"
        Me.grpItem.Size = New System.Drawing.Size(217, 298)
        Me.grpItem.TabIndex = 25
        Me.grpItem.TabStop = False
        Me.grpItem.Text = "道具"
        '
        'grpFlag
        '
        Me.grpFlag.Controls.Add(Me.chkFlag1)
        Me.grpFlag.Controls.Add(Me.chkFlag5)
        Me.grpFlag.Controls.Add(Me.chkFlag4)
        Me.grpFlag.Controls.Add(Me.chkFlag3)
        Me.grpFlag.Controls.Add(Me.chkFlag2)
        Me.grpFlag.Location = New System.Drawing.Point(527, 102)
        Me.grpFlag.Name = "grpFlag"
        Me.grpFlag.Size = New System.Drawing.Size(251, 199)
        Me.grpFlag.TabIndex = 26
        Me.grpFlag.TabStop = False
        Me.grpFlag.Text = "フラグ"
        '
        'lblResult
        '
        Me.lblResult.AutoSize = True
        Me.lblResult.Location = New System.Drawing.Point(531, 364)
        Me.lblResult.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblResult.Name = "lblResult"
        Me.lblResult.Size = New System.Drawing.Size(89, 19)
        Me.lblResult.TabIndex = 29
        Me.lblResult.Text = "チェック"
        '
        'lblCrypt
        '
        Me.lblCrypt.AutoSize = True
        Me.lblCrypt.Location = New System.Drawing.Point(531, 322)
        Me.lblCrypt.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblCrypt.Name = "lblCrypt"
        Me.lblCrypt.Size = New System.Drawing.Size(69, 19)
        Me.lblCrypt.TabIndex = 27
        Me.lblCrypt.Text = "暗号化"
        '
        'txtLevel
        '
        Me.txtLevel.Location = New System.Drawing.Point(112, 109)
        Me.txtLevel.Name = "txtLevel"
        Me.txtLevel.ReadOnly = True
        Me.txtLevel.Size = New System.Drawing.Size(163, 26)
        Me.txtLevel.TabIndex = 8
        Me.txtLevel.Text = "1"
        '
        'lblLevel
        '
        Me.lblLevel.AutoSize = True
        Me.lblLevel.Location = New System.Drawing.Point(14, 112)
        Me.lblLevel.Margin = New System.Windows.Forms.Padding(5, 0, 5, 0)
        Me.lblLevel.Name = "lblLevel"
        Me.lblLevel.Size = New System.Drawing.Size(69, 19)
        Me.lblLevel.TabIndex = 7
        Me.lblLevel.Text = "レベル"
        '
        'numGold
        '
        Me.numGold.Location = New System.Drawing.Point(111, 173)
        Me.numGold.Maximum = New Decimal(New Integer() {65535, 0, 0, 0})
        Me.numGold.Name = "numGold"
        Me.numGold.Size = New System.Drawing.Size(164, 26)
        Me.numGold.TabIndex = 12
        '
        'numExp
        '
        Me.numExp.Location = New System.Drawing.Point(111, 205)
        Me.numExp.Maximum = New Decimal(New Integer() {65535, 0, 0, 0})
        Me.numExp.Name = "numExp"
        Me.numExp.Size = New System.Drawing.Size(164, 26)
        Me.numExp.TabIndex = 14
        '
        'txtPass1
        '
        Me.txtPass1.ImeMode = System.Windows.Forms.ImeMode.Hiragana
        Me.txtPass1.Location = New System.Drawing.Point(131, 11)
        Me.txtPass1.MaxLength = 5
        Me.txtPass1.Name = "txtPass1"
        Me.txtPass1.Size = New System.Drawing.Size(110, 26)
        Me.txtPass1.TabIndex = 1
        Me.txtPass1.Text = "ふるいけや"
        '
        'txtPass2
        '
        Me.txtPass2.ImeMode = System.Windows.Forms.ImeMode.Hiragana
        Me.txtPass2.Location = New System.Drawing.Point(247, 11)
        Me.txtPass2.MaxLength = 7
        Me.txtPass2.Name = "txtPass2"
        Me.txtPass2.Size = New System.Drawing.Size(157, 26)
        Me.txtPass2.TabIndex = 2
        Me.txtPass2.Text = "かわずとびこむ"
        '
        'txtPass3
        '
        Me.txtPass3.ImeMode = System.Windows.Forms.ImeMode.Hiragana
        Me.txtPass3.Location = New System.Drawing.Point(410, 11)
        Me.txtPass3.MaxLength = 5
        Me.txtPass3.Name = "txtPass3"
        Me.txtPass3.Size = New System.Drawing.Size(110, 26)
        Me.txtPass3.TabIndex = 3
        Me.txtPass3.Text = "みずのおと"
        '
        'txtPass4
        '
        Me.txtPass4.ImeMode = System.Windows.Forms.ImeMode.Hiragana
        Me.txtPass4.Location = New System.Drawing.Point(525, 11)
        Me.txtPass4.MaxLength = 3
        Me.txtPass4.Name = "txtPass4"
        Me.txtPass4.Size = New System.Drawing.Size(70, 26)
        Me.txtPass4.TabIndex = 4
        Me.txtPass4.Text = "ばしや"
        '
        'FrmDq1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(10.0!, 19.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
        Me.ClientSize = New System.Drawing.Size(800, 417)
        Me.Controls.Add(Me.txtPass4)
        Me.Controls.Add(Me.txtPass3)
        Me.Controls.Add(Me.txtPass2)
        Me.Controls.Add(Me.txtPass1)
        Me.Controls.Add(Me.numExp)
        Me.Controls.Add(Me.numGold)
        Me.Controls.Add(Me.lblLevel)
        Me.Controls.Add(Me.lblResult)
        Me.Controls.Add(Me.lblCrypt)
        Me.Controls.Add(Me.grpFlag)
        Me.Controls.Add(Me.grpItem)
        Me.Controls.Add(Me.lblArmor)
        Me.Controls.Add(Me.lblShield)
        Me.Controls.Add(Me.lblWeapon)
        Me.Controls.Add(Me.lblKey)
        Me.Controls.Add(Me.lblHerb)
        Me.Controls.Add(Me.lblExp)
        Me.Controls.Add(Me.lblGold)
        Me.Controls.Add(Me.lblName)
        Me.Controls.Add(Me.btnGetPass)
        Me.Controls.Add(Me.btnGetParam)
        Me.Controls.Add(Me.cmbArmor)
        Me.Controls.Add(Me.cmbWeapon)
        Me.Controls.Add(Me.cmbShield)
        Me.Controls.Add(Me.numKey)
        Me.Controls.Add(Me.numCrypt)
        Me.Controls.Add(Me.numHerb)
        Me.Controls.Add(Me.txtLevel)
        Me.Controls.Add(Me.txtResult)
        Me.Controls.Add(Me.txtPlayerName)
        Me.Controls.Add(Me.lblPass)
        Me.Font = New System.Drawing.Font("MS ゴシック", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte))
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
        Me.Margin = New System.Windows.Forms.Padding(5)
        Me.MaximizeBox = False
        Me.Name = "FrmDq1"
        Me.Text = "DQ1 - 復活の呪文解析ツール"
        CType(Me.numHerb, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.numKey, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.numCrypt, System.ComponentModel.ISupportInitialize).EndInit()
        Me.grpItem.ResumeLayout(False)
        Me.grpFlag.ResumeLayout(False)
        Me.grpFlag.PerformLayout()
        CType(Me.numGold, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.numExp, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)
        Me.PerformLayout()

    End Sub
    Friend WithEvents lblPass As System.Windows.Forms.Label
    Friend WithEvents txtPlayerName As System.Windows.Forms.TextBox
    Friend WithEvents numHerb As System.Windows.Forms.NumericUpDown
    Friend WithEvents numKey As System.Windows.Forms.NumericUpDown
    Friend WithEvents cmbShield As System.Windows.Forms.ComboBox
    Friend WithEvents cmbWeapon As System.Windows.Forms.ComboBox
    Friend WithEvents cmbArmor As System.Windows.Forms.ComboBox
    Friend WithEvents cmbItem1 As System.Windows.Forms.ComboBox
    Friend WithEvents cmbItem2 As System.Windows.Forms.ComboBox
    Friend WithEvents cmbItem3 As System.Windows.Forms.ComboBox
    Friend WithEvents cmbItem6 As System.Windows.Forms.ComboBox
    Friend WithEvents cmbItem5 As System.Windows.Forms.ComboBox
    Friend WithEvents cmbItem4 As System.Windows.Forms.ComboBox
    Friend WithEvents cmbItem8 As System.Windows.Forms.ComboBox
    Friend WithEvents cmbItem7 As System.Windows.Forms.ComboBox
    Friend WithEvents chkFlag1 As System.Windows.Forms.CheckBox
    Friend WithEvents chkFlag5 As System.Windows.Forms.CheckBox
    Friend WithEvents chkFlag4 As System.Windows.Forms.CheckBox
    Friend WithEvents chkFlag3 As System.Windows.Forms.CheckBox
    Friend WithEvents chkFlag2 As System.Windows.Forms.CheckBox
    Friend WithEvents numCrypt As System.Windows.Forms.NumericUpDown
    Friend WithEvents txtResult As System.Windows.Forms.TextBox
    Friend WithEvents btnGetParam As System.Windows.Forms.Button
    Friend WithEvents btnGetPass As System.Windows.Forms.Button
    Friend WithEvents lblName As System.Windows.Forms.Label
    Friend WithEvents lblGold As System.Windows.Forms.Label
    Friend WithEvents lblExp As System.Windows.Forms.Label
    Friend WithEvents lblHerb As System.Windows.Forms.Label
    Friend WithEvents lblKey As System.Windows.Forms.Label
    Friend WithEvents lblWeapon As System.Windows.Forms.Label
    Friend WithEvents lblShield As System.Windows.Forms.Label
    Friend WithEvents lblArmor As System.Windows.Forms.Label
    Friend WithEvents grpItem As System.Windows.Forms.GroupBox
    Friend WithEvents grpFlag As System.Windows.Forms.GroupBox
    Friend WithEvents lblResult As System.Windows.Forms.Label
    Friend WithEvents lblCrypt As System.Windows.Forms.Label
    Friend WithEvents txtLevel As System.Windows.Forms.TextBox
    Friend WithEvents lblLevel As System.Windows.Forms.Label
    Friend WithEvents numGold As System.Windows.Forms.NumericUpDown
    Friend WithEvents numExp As System.Windows.Forms.NumericUpDown
    Friend WithEvents txtPass1 As System.Windows.Forms.TextBox
    Friend WithEvents txtPass2 As System.Windows.Forms.TextBox
    Friend WithEvents txtPass3 As System.Windows.Forms.TextBox
    Friend WithEvents txtPass4 As System.Windows.Forms.TextBox

End Class
[VB.NET]FrmDq1.Designer.vb

[雑記]Windows7のvaioのjpg.files [雑記]

windows7のvaioで写真や音楽のファイルで、コピーや移動を行うと、
××.jpg.filesという隠しフォルダが大量に作成される。

いろいろ調べてみると、
Windows7ではなくvaioの設定がそうさせているらしい。
(vaioでコンテンツ系のファイルを扱う為の設定らしい。。。)

知らない間にファイルを作られるのは嫌なので、
備忘録として、無効にする方法を載せておきます。

[方法]
・「スタートボタン」→「コントロールパネル」→
  「システムとセキュリティ」→「VAIOコンテンツ監視」で
  監視対象から対象の属性を外す。

[雑記]防犯グッズ(放射線測定器) [雑記]

最近、秋葉原やネット上で
放射線を測定する機器(ガイガーカウンター)が販売されているらしい。
アマゾンを検索しただけでも、いろんな種類が出ているようです。

ガイガーカウンター
放射能測定器 ガイガーカウンター 警報音と光で警告
放射能測定器 ガイガーカウンター 放射レベル測定 CDV-715

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:ニュース

[.NET]C#、VB.NET相互変換 [Programming .NET Tips]

ネットを徘徊していたら、こんなのを見つけました。
[Convert C# to VB.NET]、[Convert VB.NET to C#]
C#、VB.NETの相互変換のサイト

C#とVB.NETは配列の宣言で添え字の考え方が異なるので、
試しに配列の宣言のステートメントを入力したところ、
正しく変換してくれました。

[VB.NET]
Dim a() As Integer = New Integer(5){}
    ↓
[C#]
int[] a = new int[6];

精度はよいと思います。

しかし、やはり言語特有の文法は無理のようで、
C#のyieldや、VB.NETのHandles等はエラーになりました。

Handlesがエラーになると、
画面系が変換できなくなるので、
融通を利かせて欲しいなぁ。。。

[雑記]Office2003と2007の違い [雑記]

MicrosoftOfficeは、
20032007で画面インタフェースが大きく変わっています。
20032007の違いをまとめたサイトを見つけたので、
メモを載せておきます。。。(WordExcel

[Word]
   Word 2003 の機能に対応する Word 2007 のコマンド リファレンス ガイド
[Excel]
   Excel 2003 の機能に対応する Excel 2007 のコマンド リファレンス ガイド

[Review]図解C言語 ポインタの極意 [Book's Review (Develop)]

(1)レビュー
 通常の入門書だと、
 他言語にもある基礎的な内容(条件分岐、ループ、関数など)や
 高度な関連内容(VisualStudio、MFC、STL、C++、.NET)も含まれていますが、
 本書は、C言語のポインタに絞っているので、集中して習得できます。
 
 ポインタと配列の関係、ポインタのポインタ、
 ポインタ変数を関数に渡した時の挙動、関数のポインタなど、
 メモリ上の内容を図で示しながらわかりやすく解説しています。

 C言語の開発経験はほとんどないですが、
 他言語(.NET、Java、VBなど)の知識だけでも、わかりやすい内容だと思います。
こんな方にオススメ!
・他言語の開発経験があって、これからC言語を学ぶ方
  ・基本的な構造化プログラムがわかる。
  ・変数の値型/参照型、関数への値渡し/参照渡しの概念がわかる。
・C言語を習得しようとしたが、ポインタで挫折した方
・ポインタについて更に理解を深めたい方

(2)リンク
図解C言語 ポインタの極意

図解C言語 ポインタの極意

  • 作者: 柴田 望洋
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2005/04/09
  • メディア: 単行本

[Review]パソコンでワンセグ [Hardware's Review]

(1)レビュー
 2011年7月24日の地デジ完全移行に備えて、脱アナログ対策をしました。

 …とは言え、完全移行となると、
 テレビだけでなくレコーダーも揃える必要があり、軽く7~8万円は越えてしまいます。

 地デジ完全移行後、
 1年もすれば格段に安くなるであろうと予測し、
 当面は、パソコンでの視聴/録画を試みることにしました。

 パソコンで地デジを見るにはCOPPやHDCPが必須で、
 今のパソコン(2004年春モデル)には搭載していないので、
 ワンセグを導入することにしました。
 (Buffalo製のチューナとアンテナを購入)

(2)リンク
BUFFALO USB用 ワンセグチューナー DH-KONE/U2VP

BUFFALO USB用 ワンセグチューナー DH-KONE/U2VP

  • 出版社/メーカー: バッファロー
  • メディア: Personal Computers

【機能】
・インストールはCDから「らくらくセットアップ」を実施するのみ。
・機器は、USBタイプのチューナーと付属のアンテナ。
 画像を拡大しなければ特に画質は気にすることなく視聴できます。
・録画予約も可能で、スタンバイ/休止状態から録画を開始することができます。
 決して電源をつけっぱなしにする必要はないです(笑)
 但し、スタンバイ/休止状態からの復帰は、
 Windwosの設定や他ソフトとの競合により、復帰できない場合があるので注意。
・地デジの工事が完了しているマンション等なら、下記オプションのアンテナと併用することで、
 より安定した映像を視聴できます。
・モニタやグラフィックカードがCOPPやHDCPに対応していなくてもよい。
【制限】
・録画しながらの他チャンネルの録画(裏録画)はできない。

BUFFALO ちょいテレ 専用オプション DH-OP-FA

BUFFALO ちょいテレ 専用オプション DH-OP-FA

  • 出版社/メーカー: バッファロー
  • メディア: Personal Computers

室内は携帯のワンセグも不安定なので、オプションでアンテナも購入しました。

[ネタ]ブラウザで閲覧中のページをTwitterっぽく変換 [ネタ]

下記コードをコピって、ブラウザのURL欄に貼り付けましょう。
閲覧中のページが、Twitterっぽくなります(笑)

JavaScript:with(document.body)innerHTML=innerHTML.replace(/<\/(a|A)> /g,'なう!!').replace(/。/g,'なう。 ');focus()
[ネタ]上記コードをIE等のURL欄に貼り付けると、Twitterっぽくなります(笑)

[Review]情報処理教科書 [春期] 高度試験午前 Ⅰ・Ⅱ 2011年版 [Book's Review (情報処理)]

(1)レビュー
 2010年度秋期の高度情報処理試験を受験しました。
 同シリーズ(2010年度版)から過去問も何問か出題され、
 当日の午前1、2試験で、7割以上を正解できました。
 本書にて午前1免除も取得できたので、
 次回も同シリーズの2011年度版で、午前2対策をします。
 [2011.1 午前免除通知が来ました[わーい(嬉しい顔)]]

(2)リンク
情報処理教科書 [春期] 高度試験午前 Ⅰ・Ⅱ 2011年版

情報処理教科書 [春期] 高度試験午前 Ⅰ・Ⅱ 2011年版

  • 作者: 松原 敬二
  • 出版社/メーカー: 翔泳社
  • 発売日: 2010/09/15
  • メディア: 単行本(ソフトカバー)

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:資格・学び

[雑記]地デジ対応テレビ [雑記]

(1)地デジ対応テレビ
 今更ですが、
 アナログ放送の終了(2011年7月24日)まで1年を切りました。

 アナログでも充分に視聴できるので、
 買い替えはギリギリまでと考えていましたが、
 もうそろそろ製品位はチェックしておこうかなと。。。

 とりあえず10万円以内で購入できそうなのを、チェック。

【SHARP AQUOS】
SHARP AQUOS 20V型 地上・BS・110度CSデジタルハイビジョン液晶テレビ LC-20E5-B ブラック

SHARP AQUOS 20V型 地上・BS・110度CSデジタルハイビジョン液晶テレビ LC-20E5-B ブラック

  • 出版社/メーカー: シャープ
  • メディア: エレクトロニクス

[.NET]VisualStudio2005でデバッグできない。(ASP.NET、IE8) [Programming .NET Tips]

下記環境で、ASP.NETの開発を行うと、
デバッグが行えないらしい。

・開発ツール:『Visual Studio 2005』(以下VS2005)
・ブラウザ:『Internet Explorer 8』(以下IE8)

よくよく調べてみるとこんな情報が。。。(英語ですが)

『Tip #51 Did you know… how to use VS2005 to debug with IE8?』

最近はVS2005を使う人は少ないかもしれませんが、
もしいたらはまってしまうと思うので、
メモを残しておきます。
(…というよりも私がはまったので(笑))

 ↓
【手順】
 1.RegEditを開きます。
 2.HKEY_LOCALMACHINE ->
  SOFTWARE ->
  Microsoft ->
  Internet Explorer ->
  Mainを表示します。
 3.「TabProcGrowth」キーを追加します。(DWORD値)
 4.値を0にします。

[雑記]食べるラー油 [雑記]

品切れが多くなかなか手に入りにくかったですが、
スーパーでたまたま見かけたので、買ってみました。
ご飯は当然ですが、焼きそばに混ぜてみたらなかなかイケました。。。
ラー油も手作りできるとか。。。

【食べるラー油】ほど良い辛さ!うま味たっぷりの 食べるラー油

【食べるラー油】ほど良い辛さ!うま味たっぷりの 食べるラー油

  • 出版社/メーカー: 美食サークル
  • メディア: その他

手作りラー油&極うまレシピ---“食べるラー油”が自分で作れる!

手作りラー油&極うまレシピ---“食べるラー油”が自分で作れる!

  • 作者: 柳澤 英子
  • 出版社/メーカー: 河出書房新社
  • 発売日: 2010/07/10
  • メディア: 単行本(ソフトカバー)

nice!(0)  コメント(2)  トラックバック(0) 
共通テーマ:グルメ・料理

[雑記]歌唱力アップ [雑記]

カラオケ好きの友人から勧められた本です。

無理なく声帯を1オクターブ上げることができるとか。。。

歌える曲の幅が広くなるかなぁ。。。


1週間で3オクターブの声が出せるようになる本 無理な力を入れずに声域を拡げる驚きのボイス・トレーニング(CD付き)

1週間で3オクターブの声が出せるようになる本 無理な力を入れずに声域を拡げる驚きのボイス・トレーニング(CD付き)

  • 作者: 石川 芳
  • 出版社/メーカー: リットーミュージック
  • 発売日: 2009/02/20
  • メディア: 単行本

[Review]Micorosoft Degital Media Pro Keyboard [Hardware's Review]

(1)レビュー
  
  私が愛用しているキーボードのご紹介です。

  ノートPCのキーボードの劣化を避ける為に、
  普段は外付けのキーボードを使用するようにしています。
  (壊れた時に操作ができなくなると困るので。。。)

  ワイヤレス機能はありませんが、
  価格2,600円と手頃で壊れても気軽に交換ができます。
  (ワイヤレスタイプは10,000円以上と高額。。。)

  ホットキー等、機能面でも充実していますが、
  よく使う機能に順位を付けてみました。

 [よく使う機能]
 (1)パーム レスト
   →キーボードの下に取り付けるアクセサリ。
    入力をしない時に手を置いて休める。
    長時間の作業でも疲れにくいデザインになっています。
 (2)ユーザー設定ホット キー
   最大5つまでをホットキーに割り当てできます。
   Webサイトの割り当てに使えば、
   マウスで「お気に入り」を選択するより簡単です。
 (3)ボリュームコントロール(音量UP、音量DOWN、ミュート)
   ソフトや用途によって音量が異なることが多いので、
   音楽や映画の観賞に良く使います。
   マウスでの操作は面倒。
 (4)ホットキー(メール)
   ・Outlookの起動に使っています。
 (5)ホットキー(マイドキュメント、マイピクチャ、マイミュージック)
   ・各種ウィンドウの起動に使っています。
    たまに使います。
 (6)ズームライダー
   ・EXCEL等のドキュメントやJPEG等の画像の拡大/縮小できます。
    左手でスライダーを上下させながら、右手でマウスの操作ができます。
    たまに使います。
 【補足】
  Windwos7対応について
  下記サイトでドライバを公開しています。(注意:Windows7での動作確認はしていません。)
  Microsoft Hardware - ダウンロード - ソフトウェアのダウンロード

(2)リンク
Microsoft Digital Media Pro Keyboard BX1-00002

Microsoft Digital Media Pro Keyboard BX1-00002

  • 出版社/メーカー: マイクロソフト
  • メディア: エレクトロニクス

[Review]電子レンジ 炊飯器 [Cookware's Review]

(1)レビュー
 最近は、炊飯器にいろいろな種類が出てきています。
 『うまみ成分』を引き出したり、炊きムラ抑止の『ダイヤモンド釜』など。

 これから1人暮らしを考えている方には、必須アイテムでしょう。
 …とはいえ、炊飯器は高額でなかなか手が出しにくいのも事実。
 (安いのでも15,000円。)

 よく知られていないかもしれませんが、
 電子レンジIHでご飯を炊く道具も出てきています。
 価格的には1,000円~5,000円代で手に入る為、手軽に購入できると思います。

 私も電子レンジ用のご飯調理容器を使用していますが、
 1,600円で本体と計量カップしゃもじもついてきて、
 更に、炊飯だけでなく蒸し器にも応用できるのでお得です。
 【仕様】
  ご飯2合が電子レンジで20分で炊けてしまう驚きアイテム♪
  (幅210×奥行193×高さ130)
UDG2 電子レンジ専用 ご飯調理容器2合炊き (メーカー:Skater)

ご飯調理容器(2合炊き) UDG2

  • 出版社/メーカー: スケーター
  • メディア: ホーム&キッチン
 【ご飯の加熱時間】
  500Wの場合の目安
  1合:約10分、1.5合:約15分、2合:約20分

(2)関連の製品
【電子レンジで炊く】
 [アーネスト]
   レンジ炊飯器 銀しゃりかまど炊き
   レンジ炊飯器 銀しゃりかまど炊き
 [カクセー]
   電子レンジ専用炊飯器 備長炭入り ちびくろちゃん 2合炊き
 [ショウカンパニー]
   電子レンジ用調理器具 ひとり御膳
 [スケーター]
   クック膳 MWC1
   クック膳 ブラック MWC1
 [ダイヤコーポレーション]
   ダイヤコーポレーション 電子レンジ専用炊飯器楽チン御膳 APEX-2G-W(ダイヤ)
 [パール金属]
   パール金属 新・レンジライフ ヘルシー蒸し器 C-223
   パール金属 新・レンジライフ ご飯 1合 炊き C-229
   パール金属 新・レンジライフ レンジ カバー 大・小2点セット C-235
   パール金属 新・レンジライフ レンジマジックトレー C-582
   パール金属 新・レンジライフ とろーり カレー皿 C-239
   パール金属 新・レンジライフ ご飯 2合 炊き C-230
   パール金属 新・レンジライフ ラーメン鍋 C-226
   パール金属 新・レンジライフ カップ ご飯 一膳 炊き C-228
   パール金属 新・レンジライフ 野菜ライフ C-581
 [ハリオ]
   Hario 耐熱ガラス製 レンジ釜 XRC-100TW
 [ビッグフィールド]
   電子レンジ専用炊飯器 備長炭入り ちびくろちゃん 2合炊き
   電子レンジ専用炊飯器 ちびくろちゃん2合炊き
 [四日市ばんこ焼]
   電子レンジ専用炊飯器セラクック(二重蓋) 黒
 [和平フレイズ]
   和平フレイズ ほんわかふぇ 炊飯土鍋 (二重蓋) 3合炊 HR-8382
   ほんわかふぇ 白雲炊飯土鍋 (二重蓋) 1.5合炊き HR-9928
   ほんわかふぇ 白雲炊飯土鍋 (二重蓋) 3合炊き HR-9929
   ほんわかふぇ 木蓋炊飯土鍋 (二重蓋) 3合炊き HR-9917
   ほんわかふぇ 木蓋炊飯土鍋 (二重蓋) 1合炊き HR-9916
【電子レンジ&IHで炊く】
 [大慶]
   有田焼 IH炊飯器 炊っくん (4合炊き/吉祥地紋)
   有田焼 IH炊飯器 炊っくん (4合炊き/丸紋)
   有田焼 IH炊飯器 炊っくん (4合炊き/ラスター青一珍朱吹)
   有田焼 IH炊飯器 炊っくん (4合炊き/白)
   有田焼 IH炊飯器 炊っくん (4合炊き/黒釉菱紋唐草)
   有田焼 IH炊飯器 炊っくん (4合炊き/流水銀彩春秋)
   有田焼 IH炊飯器 炊っくん (4合炊き/錦駒筋)
   有田焼 IH炊飯器 炊っくん (4合炊き/黒)
   有田焼 IH炊飯器 炊っくん (4合炊き/錦花絵)
   IH 炊飯器炊っくん 2合炊/錦花絵
   有田焼 IH炊飯器 炊っくん (4合炊き/黒)
   IH 炊飯器炊っくん 2合炊/丸紋
   有田焼 IH炊飯器 炊っくん (4合炊き/錦花絵)
   IH 炊飯器炊っくん 2合炊/黒
nice!(0)  コメント(2)  トラックバック(0) 
共通テーマ:グルメ・料理

[雑記]買い物(プリンタのインクとか高枝切バサミとか) [雑記]

今日は友人と買い物。

プリンタのインクを切らしていたので、
パソコン関連が中心でしたが、インクの購入を済ますと、
あとはウィンドウショッピング。。。

iPadはどこも売り切れのようですね。
(特に買うつもりはないけど、市場調査w)

あとは何気に本屋や雑貨屋などをぶらぶら。。。

庭付きの一戸建てに住んでいる友人は、
庭のお手入れがしたいからと、
高い場所の枝を切るハサミを1つくらい持っておきたいとか。。。

しかしどれも8000円~10000円位と高額だったので
購入までは至りませんでした。。。

とりあえず、ネットで安いのを探しておくか。。。

K-2600
軽量化で女性にもやさしい新タイプ!!
●コンパクトサイズで車のトランクにも収納OK!!
●肩掛けベルト、ノコギリ付!!
●サイズ:ポール長1.4~3.0m伸縮、3段式  材 質:アルミパイプ
■質量:約1.23kg
KENGYU 高枝切鋏 のびきる3段(鋸付) K-2600

KENGYU 高枝切鋏 のびきる3段(鋸付) K-2600

  • 出版社/メーカー: 小林鉄工所
  • メディア: ホーム&キッチン

[雑記]友人のプリンタ [雑記]

学生時代の友人から久々に電話がありました。
なんでも、プリンタを新しく買い換えたとの事で、
セットアップについていろいろ聞かれました。

…が、会話がなぜかかみ合わない。。。
よくよく聞いてみると、プリンタのインクの型番が間違っているとのこと。。。

さすがに型番が違っていては成す術も無いので、
型番を調べてあげることに。。。

とりあえず、忘れないようにメモを載せておきます。。。


エプソンIC50シリーズ高品質6本セット汎用インク

エプソンIC50シリーズ高品質6本セット汎用インク

  • 出版社/メーカー: 創新株式会社
  • メディア:



EPSON インクカートリッジ ICBK50 ブラック

EPSON インクカートリッジ ICBK50 ブラック

  • 出版社/メーカー: エプソン
  • メディア: エレクトロニクス

[Review]Microsoft Visual Studio 2010 Professional 乗換優待パッケージ [Software's Review]

(1)レビュー
 Visual Studioの最新版が販売開始されました。(2010年6月現在)
 「乗り換え優待パッケージ」なので、新規よりも安価で購入できます。(限定10,000名)
 【購入条件】
 ・Visual Studio 2005 Standard または Visual Studio 2008 Standard の購入者

(2)リンク
Microsoft Visual Studio 2010 Professional 乗換優待パッケージ

Microsoft Visual Studio 2010 Professional 乗換優待パッケージ

  • 出版社/メーカー: マイクロソフト
  • メディア: DVD-ROM

(3)関連商品
Microsoft Visual Studio 2010 Professional アカデミック
Microsoft Visual Studio 2010 Professional アップグレード
Microsoft Visual Studio 2010 Professional
Microsoft Visual Studio 2010 Professional with MSDN
Microsoft Visual Studio 2010 Ultimate with MSDN
Microsoft Visual Studio 2010 Professional with MSDN 更新パッケージ
Microsoft Visual Studio 2010 Premium with MSDN 更新パッケージ

[Review]プログラミングC# 第5版 [Book's Review (Develop)]

(1)レビュー
 .NET Framework3.0やC#の書籍で、
 入門編レベルよりもさらに踏み込んだ技術を習得したい方にお勧め!
 レベルの高い書籍だと、文章がわかりにくかったり、
 無駄にページ数が多かったり、『~編』のようにシリーズ化しているものが多いですが、
 この書籍はわかりやすくまとめてあります。
 またC# 3.0の新機能LINQや.NETの新機能WPFについての解説も充実しています。

(2)リンク
プログラミングC# 第5版

プログラミングC# 第5版

  • 作者: Jesse Liberty
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/02/26
  • メディア: 大型本

C#クックブック 第3版
プログラミングC#言語解説 第3版

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。