将棋プログラミング

(将棋に関する)ソフトウェア開発のノウハウ等。

Xcode 12 でシミュレータを対象にビルドし Framework not found

Xcode を 11.7 で問題なかったプロジェクトを 12.3 でシミュレータを対象にビルドしたとき、次のエラーが表示された。 Framework not found ***検索すると、多くの解決策が表示されるが、僕の場合は、次の設定で解決した。 1. Architectures で "Any iOS Sim…

Visual Studio Code の OUTLINE の変数を表示しない

Visual Studio Code の OUTLINE の変数を表示しないようにするには、次の設定とする。 1. File - Preferences - Settings の Menu を実行 2. Features の Explorer を選択 3. Outline: Show Variables をオフとする。 Outline: Show Variables

MFC のタブコントロ-ルをプログラムで切り替える

MFC のタブコントロ-ル CTabCtrl をプログラムで切り替えようとしたとき、SetCurSel() では、表示が変わらず、SetCurFocus() を使う必要があった。

Android の開発で Attribute Signature requires InnerClass attribute

Android での開発中、次のエラーが出た。 Attribute Signature requires InnerClasses attribute. Check -keepattributes directive.proguard.cfg、または、proguard-rules.pro に次の行を追加し、解決した。 -keepattributes InnerClasses参考サイト: stac…

Android の開発で Unsupported method

Android での開発中、次のエラーが出た。 Unsupported method: TaskExecutionResult.getExecutionReasons(). The version of Gradle you connect to does not support that method.Clean Project メニューの実行で、解決した。

Xcode 12 で missing one or more architectures

Xcode を 11.7 から 12.0 にアップデイトしたところ、従来問題のなかったプロジェクトで、シミュレータ用のビルド時、次のエラーが起きるようになった。 The linked library '***.a' is missing one or more architectures required by this target: arm64.B…

iOS の開発で Undefined symbols

iOS での開発中、次のエラーが出た。 Undefined symbols for architecture armv7: "_OBJC_CLASS_$_WKWebView", referenced from:WebKit.framework をリンクし、解決した。さらに、次のエラーが出た。 Undefined symbols for architecture x86_64: "_OBJC_CLA…

Xcode 11.6 のクラッシュ

ビルドエラーのため、プロジェクトの設定の変更が必要になった。 しかし、プロジェクトの設定を変更しようとすると、Xcode 11.6 がクラッシュする、という現象が起きた。 古くから開発しているプロジェクトのため、次の警告が出ていた。 Update to recommend…

Android 10 対応で Error: json defines classes that conflict

2020年11月2日以降、アプリを更新する場合、ターゲットを Android 10 以上にしないといけない、と Google から案内されている。www.google.comそこで、targetSdkVersion と compileSdkVersion を 28 から 29 に上げた。 すると、APK 作成時に、次のエラーが…

Android の VideoView のタッチ操作を無効にする / 処理する

Android の VideoView を使ったとき、VideoView をタッチすると、その下の View でタッチ操作が処理される。 それを防止するため、VideoView のタッチ操作を無効にしようとする。 通常、View のタッチ操作を無効にするには、次のようにする。 (1) view.setEn…

将棋の局面の形勢(勝率)について

ABEMAやニコ生の対局中継では、AI による局面の形勢が評価値や勝率の数値で表示されるが、形勢(勝率)は絶対的な数値ではなく、対局者によって変わる数値である。このことを知らない人がいると思われるので、説明しておく。コンピュータ将棋は、一般的に、…

Visual Studio 2013 で EditorPackage パッケージは正しく読み込まれませんでした

Visual Studio 2013 で、Shift JIS の文字コードを使うプロジェクトを使うために、Visual Studio 2013 のマルチバイト MFC ライブラリをインストールした。www.microsoft.comすると、ソリューションを開くとき 'Microsoft.VisualStudio.Editor.Implementatio…

UIWebView から WKWebView への書き換え:iOS 9 で異常終了

2020年12月から、UIWebView は使えず、WKWebView に書き換えなければならない。 ITMS-90809: Deprecated API Usage - App updates that use UIWebView will no longer be accepted as of December 2020. Instead, use WKWebView for improved security and r…

iOS の等幅フォント

iOS の通常のフォントは、半角空白が等幅でないが、iOS 13 から、半角空白を含め、等幅なフォントが使えるようになった。 1. monospacedDigitSystemFontOfSize: weight: iOS 9.0 以降では、このフォントが使えるが、半角空白は等幅でない。 https://develope…

Windows x64 用マニフェスト

Visual Studio 2005 で作成した 32bit プログラムから 64bit プログラムを作成しようとしたところ、次のエラーが表示された。マニフェストがないというエラーである。 xxx.exe.manifest : general error c1010070: Failed to load and parse the manifest.多…

iOS 和暦の落とし穴

iOS で、西暦年を取得する際、大きな落とし穴がある。 これが原因で、10年程前にトラブルが起き、以来、注意していたが、最近も失敗してしまった。iOS の Objective-C で、西暦年を4桁の数字で取得する際、次のようなコードとなる。 NSDateFormatter *forma…

iOS 13 のダークモードへの対応(ダークモードにしない)

Xcode 10.2 以降、旧CPUに対する最適化にバグがあるので、Xcode 10.1 を使い続けていたが、2020年4月からは、いよいよ Xcode 11 以降で作成しないと、App Store に提出できなくなる。 ykakinoki.hateblo.jp ITMS-90725: SDK Version Issue - This app was b…

Google API の OAuth 認証で invalid_grant

Google API を OAuth 認証で使うために、Google API Console で、次の設定を行った。 1. 認証情報のページを表示 2. 認証情報を新規作成 3. OAuth クライアント ID の作成 4. アプリケーションの種類の設定 5. JavaScript 生成元とリダイレクト URI の設定 …

Xcode 11 で作成した Mac アプリケーションは applicationWillTerminate が呼ばれない

Xcode 11 で作成した Mac アプリケーションでは、applicationWillTerminate と applicationShouldTerminate が呼ばれないことに気が付いた。 ファイルをドロップしたりすると、呼ばれる場合がある。 これらが呼ばれないと、アプリケーション終了時にデータを…

iOS の定期購読のリジェクト事例

iOS

参考として、iOS の定期購読のリジェクト事例を紹介する。 従来、承認されていた iOS アプリのアップデイトが次の理由でリジェクトされた。 Guideline 3.1.2 - Business - Payments - Subscriptions We noticed that one or more of your auto-renewable sub…

iOS版 VLCKit MobileVLCKit で音声を消す

MobileVLCKit (Version 3.1.0) で音声を消す場合のコード VLCMediaPlayer *_mediaPlayer = [[VLCMediaPlayer alloc] init]; _mediaPlayer.audio.muted = YES; // 音声を消す

Unexpected error while obtaining screenshot from device: EOF

多分、Android SDK Build-Tools を r29 にアップデイトしたことが原因で、スクリーンショットを撮る際、次のエラーになるようになった。 Unexpected error while obtaining screenshot from device: EOF次の対策で、この問題が解決した。1. Android Studio …

第29回世界コンピュータ将棋選手権の戦型分析

今年(2019年)の第29回世界コンピュータ将棋選手権の棋譜296局の戦型を分析しました。第29回世界コンピュータ将棋選手権の戦型分析 1.棋譜の入手 棋譜ファイルは、次の CSA のサイトから入手できます。 www2.computer-shogi.org•第29回 (2019年5月3,4,5日…

iOS版 VLCKit MobileVLCKit 3.1.2 の問題

iOS

MobileVLCKit 3.1.2 で RTMP の動画を再生すると、フリーズする。 3.1.0 では、問題がない。参考サイト: code.videolan.org

iOSアプリのリジェクト - We discovered that your app contains obfuscated code...

iOS

iOSアプリのアップデイトが次の理由でリジェクトされた。 We discovered that your app contains obfuscated code, selector mangling, or features meant to subvert the App Review process by changing this app's concept after approval to the App Sto…

Android Gradle Plugin のアップデイト(2) - This should not happen under normal circumstances

リリースビルドを作成しようとしたら、次のエラーが起きた。 This should not happen under normal circumstances, please file an issue if it does. ...Gradle Plugin 3.3.2 で、2MB以上の大きさの画像を使うときに起きる Gradle Plugin のバグらしい。 次…

Android Gradle Plugin のアップデイト - ERROR: Could not find com.android.tools.build:gradle:3.3.2.

次のエラーが起きた。 ERROR: The versions of the Android Gradle plugin and Gradle are not compatible. Please do one of the following: Update your plugin to version 2.4. This will require changes to build.gradle due to API changes.そのため、…

Xcode 10.2 の最適化のバグ

Xcode が 10.2 にアップデイトされ、それでアプリをリリースしたところ、一部の機種で動作が異常になった。 問題を確認できた機種は、iPhone 4s や iPad 3代目である。恐らく、32bit CPU の機種だろうと思われる。 ソースを変更していない部分で起きた問題…

Android - ScrollView を2重にする - NestedScrollView

Android で ScrollView を単純に2重に使った場合、一方しかスクロールしないようだ。 NestedScrollView で、2重にスクロール可能となった。 ScrollView では setScrollbarFadingEnabled が使えたが、NestedScrollView では、NullPointerException が発生し…

AlphaZero の棋譜の戦型分析

昨年12月に公開された AlphaZero の棋譜100局の戦型を分析しました。AlphaZero の棋譜の戦型分析 1.AlphaZero が先手 前回の記事(次)で書いたように、AlphaZero が先手の場合、初手は▲2六歩と▲7八金だけで、49勝1敗です。ykakinoki.hateblo.jp 次の手 …