<?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>マンジラボ &#187; game</title>
	<atom:link href="http://manjilab.com/tag/game/feed/" rel="self" type="application/rss+xml" />
	<link>http://manjilab.com</link>
	<description>いわゆる卍研究所。</description>
	<lastBuildDate>Fri, 26 Feb 2010 15:23:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>レイトン教授と魔神の笛 #042</title>
		<link>http://manjilab.com/2009/12/19/elayton-042/</link>
		<comments>http://manjilab.com/2009/12/19/elayton-042/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 15:02:10 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Clojure]]></category>
		<category><![CDATA[game]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=259</guid>
		<description><![CDATA[妻から「レイトン教授と魔神の笛」のナゾ#042 が解けないとヘルプ要請アリ。
ん？これは出題ミスだろ、とおもったら案の定。 
せっかくなのでProject Euler風にコードを書いて解いてみる]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F12%2F19%2Felayton-042%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22%E3%83%AC%E3%82%A4%E3%83%88%E3%83%B3%E6%95%99%E6%8E%88%E3%81%A8%E9%AD%94%E7%A5%9E%E3%81%AE%E7%AC%9B%20%23042%22%20%7D);"></div>
<p>Project Euler 番外編（？）</p>

<p>妻から
<a href="http://www.layton.jp/majin/">レイトン教授と魔神の笛</a>
のナゾ#042 が解けないとヘルプ要請アリ。</p>

<p>う〜ん、候補は３つか・・・答えは22:29だろ。あれ？不正解？？</p>

<p>ん？これは出題ミスだろ、とおもったら案の定。<br />
<a href="http://www.layton.jp/majin/nazo042.html">レイトン教授と魔神の笛 : ナゾ042についてのお知らせ</a></p>

<p>さて、せっかくなのでProject Euler風にコードを書いて解いてみる。</p>

<p>角度が大きい順に5つリストアップ。Clojureで実装しました。</p>


<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>ns euler<span style="color: #66cc66;">.</span>layton042<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>defn long-hand-angle
  <span style="color: #ff0000;">&quot;Return angle of long-hand from noon.&quot;</span>
  <span style="color: #66cc66;">&#91;</span>minute<span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#40;</span>* <span style="color: #cc66cc;">360</span> <span style="color: #66cc66;">&#40;</span>/ minute <span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>defn short-hand-angle
  <span style="color: #ff0000;">&quot;Return angle of short-hand from noon.&quot;</span>
  <span style="color: #66cc66;">&#91;</span>hour minute<span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#40;</span>+ <span style="color: #66cc66;">&#40;</span>* <span style="color: #cc66cc;">360</span> <span style="color: #66cc66;">&#40;</span>/ <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">rem</span> hour <span style="color: #cc66cc;">12</span><span style="color: #66cc66;">&#41;</span> <span style="color: #cc66cc;">12</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
     <span style="color: #66cc66;">&#40;</span>* <span style="color: #cc66cc;">30</span>  <span style="color: #66cc66;">&#40;</span>/ minute <span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>defn angle-clockwise
  <span style="color: #ff0000;">&quot;Returs angle fromm short-hand to long-hand clockwise.&quot;</span>
  <span style="color: #66cc66;">&#91;</span>hour minute<span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#91;</span>diff <span style="color: #66cc66;">&#40;</span>- <span style="color: #66cc66;">&#40;</span>long-hand-angle minute<span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#40;</span>short-hand-angle hour minute<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>neg? diff<span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span>+ diff <span style="color: #cc66cc;">360</span><span style="color: #66cc66;">&#41;</span>
      diff<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>defn three-digits-in-a-row?
  <span style="color: #ff0000;">&quot;Return true if hh:mm is like aB:BB or AA:Ab.&quot;</span>
  <span style="color: #66cc66;">&#91;</span>hour minute<span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">or</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span>pos? hour<span style="color: #66cc66;">&#41;</span>
	   <span style="color: #66cc66;">&#40;</span>zero? <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">rem</span> hour <span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	   <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>quot hour <span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>quot minute <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span>zero? <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">rem</span> minute <span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	   <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>quot minute <span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">rem</span> hour <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>def sorted-hour-minute-angle
     <span style="color: #66cc66;">&#40;</span>sort-by <span style="color: #66cc66;">:</span><span style="color: #555;">angle</span> <span style="color: #66cc66;">&gt;</span>
	      <span style="color: #66cc66;">&#40;</span>for <span style="color: #66cc66;">&#91;</span>hour <span style="color: #66cc66;">&#40;</span>range <span style="color: #cc66cc;">24</span><span style="color: #66cc66;">&#41;</span>
		    minute <span style="color: #66cc66;">&#40;</span>range <span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span>
		    <span style="color: #66cc66;">:</span><span style="color: #b1b100;">when</span> <span style="color: #66cc66;">&#40;</span>three-digits-in-a-row? hour minute<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
		<span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">:</span><span style="color: #555;">hour</span> hour
		 <span style="color: #66cc66;">:</span><span style="color: #555;">minute</span> minute
		 <span style="color: #66cc66;">:</span><span style="color: #555;">angle</span> <span style="color: #66cc66;">&#40;</span>angle-clockwise hour minute<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>println
 <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">apply</span> str
	<span style="color: #66cc66;">&#40;</span>take <span style="color: #cc66cc;">5</span>
	      <span style="color: #66cc66;">&#40;</span>map #<span style="color: #66cc66;">&#40;</span>format <span style="color: #ff0000;">&quot;Time = %d:%02d, Angle = %.1f<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
			    <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">:</span><span style="color: #555;">hour</span> <span style="color: #66cc66;">%</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">:</span><span style="color: #555;">minute</span> <span style="color: #66cc66;">%</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>* <span style="color: #cc66cc;">1.0</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">:</span><span style="color: #555;">angle</span> <span style="color: #66cc66;">%</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
		   sorted-hour-minute-angle<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>



<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;">Time <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">22</span><span style="color: #66cc66;">:</span><span style="color: #cc66cc;">29</span><span style="color: #66cc66;">,</span> Angle <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">219.5</span>
Time <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">22</span><span style="color: #66cc66;">:</span><span style="color: #cc66cc;">28</span><span style="color: #66cc66;">,</span> Angle <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">214.0</span>
Time <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">15</span><span style="color: #66cc66;">:</span><span style="color: #cc66cc;">55</span><span style="color: #66cc66;">,</span> Angle <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">212.5</span>
Time <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">23</span><span style="color: #66cc66;">:</span><span style="color: #cc66cc;">33</span><span style="color: #66cc66;">,</span> Angle <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">211.5</span>
Time <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">22</span><span style="color: #66cc66;">:</span><span style="color: #cc66cc;">27</span><span style="color: #66cc66;">,</span> Angle <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">208.5</span></pre></div></div>


<p>うん。スッキリした。</p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/12/19/elayton-042/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
