<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webシステム開発・Androidアプリ開発｜千葉県柏市｜株式会社ルミテック &#187; プログラム</title>
	<atom:link href="https://lumitec.co.jp/hp/tag/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0/feed/" rel="self" type="application/rss+xml" />
	<link>https://lumitec.co.jp/hp</link>
	<description>ルミテックは千葉県柏市を拠点にWebシステム開発、Androidアプリ開発を行っているシステム会社です！</description>
	<lastBuildDate>Tue, 21 Apr 2026 02:08:41 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>学生時代に作ったオセロAIの話</title>
		<link>https://lumitec.co.jp/hp/%e5%ad%a6%e7%94%9f%e6%99%82%e4%bb%a3%e3%81%ab%e4%bd%9c%e3%81%a3%e3%81%9f%e3%82%aa%e3%82%bb%e3%83%adai%e3%81%ae%e8%a9%b1/</link>
		<comments>https://lumitec.co.jp/hp/%e5%ad%a6%e7%94%9f%e6%99%82%e4%bb%a3%e3%81%ab%e4%bd%9c%e3%81%a3%e3%81%9f%e3%82%aa%e3%82%bb%e3%83%adai%e3%81%ae%e8%a9%b1/#comments</comments>
		<pubDate>Wed, 31 Aug 2022 05:52:05 +0000</pubDate>
		<dc:creator><![CDATA[fujiwara]]></dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[C言語]]></category>
		<category><![CDATA[オセロ]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">http://lumitec.co.jp/hp/?p=2019</guid>
		<description><![CDATA[こんにちは、fujiwaraです。 今日は、私が学生時代に作ったオセロAIについてお話しようと思います。 AIについて AIブームは過去に何度が波がありましたが、今のAIは、レベルも市場規模も過去最高レベルだと思います。 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>こんにちは、fujiwaraです。<br />
今日は、私が学生時代に作ったオセロAIについてお話しようと思います。</p>
<h3>AIについて</h3>
<p>AIブームは過去に何度が波がありましたが、今のAIは、レベルも市場規模も過去最高レベルだと思います。文章を入力するとそれをイメージした絵を描いてくれるAIが話題になってますね。絵の質も創造性もプロのクリエイタが身の危険を感じるレベルのようです。Google社の開発したLaMDAという会話AIは意識が芽生えたと話題になりました。意識が芽生えたと発言したGoogle社のエンジニアは解雇されてしまったようです（意味深）。彼とAIとの会話内容が公開されていますが、そう錯覚してもおかしくないレベルです。意識や感情とは何か、禅の言葉の解釈など、AIの語るそれらの回答は非常に興味深いものがあります。ちなみに、現在AIエンジニアの単価は非常に高額です。普通のエンジニアが月70～100万だとすると、AIエンジニアだと月150～200万くらいになっています。<br />
私の学生時代もプチAIブームでしたが、当時はまさかこんなにAIが進化するとは思ってもみませんでした。例えば将棋のAIがプロ棋士に勝つなんて100年くらい先だと思っていました。そんな頃に、何か自分でも作ってみようと思ったのがオセロのAIです。</p>
<h3>オセロについて</h3>
<p>オセロのルールについてはおそらくみなさんご存知かと思うのですが、簡単に言えば、黒（先手）と白（後手）で交互に石を置いていって、自分の石で挟んだ相手の石をひっくり返して自分の石にする、というのを繰り返して最後に石数の多いほうが勝ちというものです。オセロの盤面は↓こんな形で、石を２目ずつ置いた状態からスタートです。赤は「隅」、黄色は「星」といわれる地点です。<br />
<a href="http://lumitec.co.jp/hp/wp-content/uploads/2022/08/banmen1.png"><img class="alignnone size-medium wp-image-2027" src="http://lumitec.co.jp/hp/wp-content/uploads/2022/08/banmen1-300x300.png" alt="banmen" width="300" height="300" /></a></p>
<p>では、どういう基準で手を決定していくか、というAIの思考回路について次項より説明します。</p>
<h3>～序盤～</h3>
<p>始めはひたすら定石通りの手を選択します。定石はオセロを研究した人たちが「こうきたらこう打つのがベスト」と道筋を決めてくれたものです。定石にも何パターンかあるのですが、それらをなるべくたくさんAIに覚えさせて、相手が定石通りの手を打ってきたらAIも定石通りの手を打つようにします。定石が尽きるか、もしくは、相手が定石から外れた手を打ってきたら中盤へと移行します。</p>
<h3>～中盤～</h3>
<p>まず、私自身オセロは全くの初心者だったので、オセロの本を読み漁ってその結果たどり着いた私なりの攻略法が以下３点です。<br />
※他にもあった気がしますが記憶の彼方です。。</p>
<ol>
<li>始めはなるべく自分の石数が少ないほうが有利。</li>
<li>隅をとるとかなり有利。</li>
<li>星に自分の石がくるとかなり不利。</li>
</ol>
<p>これを踏まえて、まず数手先（３手先か４手先だったかうろ覚えです）のあらゆる局面を内部的に作って、局面ごとに点数をつけます。どう点数をつけるかというと、1.より、自分の石数が少ない局面ほど点数は高く、逆に自分の石数が多い局面ほど点数を低く設定します。更に2.より、隅がとれる局面は点数をかなり高く設定します。また3.より、星に自分の石がくる局面は点数をかなり低く設定します。それぞれ具体的にどれくらいの点数を設定したかは覚えていません。。<br />
局面毎に点数をつけ終わったら、１手毎にそこから派生する全ての局面の点数の中で最小点数を見つけます。例えば、現局面でA, B, Cという３つの手が打てるとします。Aから派生するあらゆる局面の中で最小の点数が500点だとします。同様にBは400点、Cは600点だとします。そしたらその中で最大点数となる手を選択します。例だとCです。どういうことかというと、その手を打ったときの最悪のケースを想定して、その被害が一番少ない手を選ぶ、というイメージです。始めは最高のケースを想定して最高の手を選ぶようにしていたのですが、それだと安定しませんでした。<br />
さて、盤面残り10手ほど（うろ覚えです…）になったら終盤へと移行します。</p>
<h3>～終盤～</h3>
<p>終盤では、その手から派生する最後の局面まで読み、勝つ局面の数と負ける局面の数から勝つ確率を計算し、その中で一番勝つ確率の高い手を選択します。例えば、現局面でA, B, Cという３つの手が打てるとします。Aでは勝つ確率90%、Bでは80%、Cでは85%だとすると、Aを選択します。</p>
<h3>まとめ</h3>
<p>当時の環境はWindows95の低スペックのPCでした。言語はCです。AIの強さは、私が相手だと10回中7, 8回はAIが勝ちました。試しにファミコンソフトのオセロゲームと戦わせてみたところ、確かレベルが５段階あったうち３段階目まではAIが勝てたと記憶しています。<br />
かなりの時間と情熱をかけて作ったプログラムはFDに保存していたのですが、今やどこにもありません。勿論当時のPCも。。ちなみにFDはフロッピーディスクという古代の記憶媒体です。せめてこうして記録を残してあげることで、当時の自分が少しは報われるのではないかと思いペンをとった次第です。</p>
]]></content:encoded>
			<wfw:commentRss>https://lumitec.co.jp/hp/%e5%ad%a6%e7%94%9f%e6%99%82%e4%bb%a3%e3%81%ab%e4%bd%9c%e3%81%a3%e3%81%9f%e3%82%aa%e3%82%bb%e3%83%adai%e3%81%ae%e8%a9%b1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Swiftでもぐら叩きアプリを作ってみよう！【初級】</title>
		<link>https://lumitec.co.jp/hp/swift%e3%81%a7%e3%82%82%e3%81%90%e3%82%89%e5%8f%a9%e3%81%8d%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86%ef%bc%81%e3%80%90%e5%88%9d%e7%b4%9a%e3%80%91/</link>
		<comments>https://lumitec.co.jp/hp/swift%e3%81%a7%e3%82%82%e3%81%90%e3%82%89%e5%8f%a9%e3%81%8d%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86%ef%bc%81%e3%80%90%e5%88%9d%e7%b4%9a%e3%80%91/#comments</comments>
		<pubDate>Tue, 30 Aug 2022 05:18:36 +0000</pubDate>
		<dc:creator><![CDATA[fujiwara]]></dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[swift]]></category>
		<category><![CDATA[xcode]]></category>
		<category><![CDATA[アプリ]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[初級]]></category>

		<guid isPermaLink="false">http://lumitec.co.jp/hp/?p=1994</guid>
		<description><![CDATA[iOS開発を担当しているfujiwaraです。初投稿となりますが、よろしくお願いします。 今日は、iOSのアプリを作ってみたいけどどうやって作ればよいか・・という初級者の方へ向けて、「もぐら叩きアプリ」を作る動画を、解説 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>iOS開発を担当しているfujiwaraです。初投稿となりますが、よろしくお願いします。</p>
<p>今日は、iOSのアプリを作ってみたいけどどうやって作ればよいか・・という初級者の方へ向けて、「もぐら叩きアプリ」を作る動画を、解説を交えつつご紹介したいと思います。<br />
動画は↓こちらのリンクからご覧いただけます。<br />
<a style="color: blue" href="https://youtu.be/q0GCuae6rXQ" target="_blank">【Swift・初級】もぐら叩きアプリを作ってみよう！</a><br />
<a href="http://lumitec.co.jp/hp/wp-content/uploads/2022/08/Swift_Mogura.jpg"><img class="alignnone wp-image-2006 size-large" src="http://lumitec.co.jp/hp/wp-content/uploads/2022/08/Swift_Mogura-1024x576.jpg" alt="Swift_Mogura" width="1024" height="576" /></a></p>
<h3>開発環境</h3>
<p>まず準備するものとして、Macが必要となります。MacはAirでも可能ですが、スペック面で重く感じるかもしれません。できればProがおすすめです。<br />
またツールとしてはXcodeが必要です。XcodeはAppStoreより無料でダウンロードできます。これが容量を30GB以上必要とするので、空き容量にはご注意を。。</p>
<h3>初期設定</h3>
<p>動画でいうと0:56「2.初期設定」が、おそらく何をやっているのかよくわからないかもしれませんが。。ひとまずはこういうものだと捉えていただければと思います。<br />
１点だけ、Storyboardを削除しているのですが、これは私の個人的な開発思想が反映されています。Storyboardというのは、そこで１つ１つの画面を定義して、更に画面の遷移の仕方をそこで設計するものです。それが個人的に扱い辛く感じておりまして、Storyboardを使わずに画面を作って、画面の遷移はプログラムで制御するようにしています。ここは人によるところだと思いますので、これが正解ではないことをご理解いただければと思います。</p>
<h3>画面デザイン</h3>
<p>動画でいうと6:15「6.画面デザイン」からが画面のデザインになります。<br />
画面のデザインが実はけっこう厄介です。なぜかというと、iPhoneにも色々な機種があり、機種によりディスプレイの大きさが異なります。どの機種で表示してもバランスよく配置する必要があります。そのために必要な技術がAutoLayoutです。<br />
動画の中で、項目を配置する際、上からの距離とか左からの距離なんかを設定していますよね？それがAutoLayoutの設定になります。動画の中ではシンプルに上からや左からの距離を設定していますが、例えば、画面のちょうど中央になるよう設定するとか、全体の30%の距離になるよう設定するとか、この項目の左端に合わせるよう設定するとか、ケースバイケースで様々な設定を要します。始めのうちはAutoLayoutがうまくいかず泣かされると思います。。</p>
<h3>プログラミング</h3>
<p>動画でいうと19:21「10.プログラミング」からがプログラミングになります。<br />
言語はSwiftです。ひと昔前はiOSの開発といえばObjective-Cでしたが、今はSwiftが主流です。<br />
動画でのポイントは、プロパティと変数です。プロパティは日本語だと属性になるのですが、例えば「人間」には「性別」「年齢」「身長」などいったプロパティを持っています。そこに付随した様々な情報です。今回はisHiddenというプロパティを扱っています。これはその物を表示する・しないという情報を表します。その値は参照するだけでなく、変更することも可能です（プロパティによっては変更不可なものもありますが）。今回はそれを変更して、モグラ画像を消したり、逆に穴画像を表示したりしました。<br />
また変数というのは様々な値を格納する器のようなものです。器には必ず型を持っています。例えばIntという型は数字だけしか格納できません。Stringという型は文字列だけしか格納できません。今回tensuという変数を作りました。これの型は何なんだと思われたかもしれませんが、、Swiftでは明示的に型を定義しなくても、宣言した時点で値を設定すると自動的にその型を判断して決めてくれます。tensuは↓始めに「0」を設定しました。そうするとInt型になります。<br />
private var tensu = 0</p>
<h3>まとめ</h3>
<p>気づいたら非常に長い文章になっていたので、ここでまとめます。<br />
この動画は、今までアプリを作ってみたいけど難しそうと思われている方が、自分でも作れるんだ！というのを実感してもらえたらなという思いで作りました。そういう方々の少しでも力になれたら幸いです。</p>
]]></content:encoded>
			<wfw:commentRss>https://lumitec.co.jp/hp/swift%e3%81%a7%e3%82%82%e3%81%90%e3%82%89%e5%8f%a9%e3%81%8d%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86%ef%bc%81%e3%80%90%e5%88%9d%e7%b4%9a%e3%80%91/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
