<?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>個人用 - IQパズルステップ</title>
	<atom:link href="https://chokomon.com/tag/private/feed/" rel="self" type="application/rss+xml" />
	<link>https://chokomon.com</link>
	<description>ちょこっと頭を良くするIQパズル問題集</description>
	<lastBuildDate>Mon, 02 May 2022 01:38:59 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://chokomon.com/wp-content/uploads/2022/02/cropped-icon512-32x32.png</url>
	<title>個人用 - IQパズルステップ</title>
	<link>https://chokomon.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【PHP】じゃんけんの勝敗が1行のコードで書けることにメチャメチャ感動した話</title>
		<link>https://chokomon.com/007-janken/</link>
					<comments>https://chokomon.com/007-janken/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sun, 01 May 2022 11:27:59 +0000</pubDate>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[個人用]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=2923</guid>

					<description><![CDATA[じゃんけんのコードを考えていて、if()文で書いてもなんか冗長だなあと感じていました。 ↓こんな感じのコードです。（$bのuserHandは入力で受け取れるように改良してください。） 一応、じゃんけんのコードとしてはちゃんと勝敗がつけられる…]]></description>
										<content:encoded><![CDATA[
<p>じゃんけんのコードを考えていて、if()文で書いてもなんか冗長だなあと感じていました。</p>



<p>↓こんな感じのコードです。<br>（$bのuserHandは入力で受け取れるように改良してください。）</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
$hands = ['ぐー', 'ちょき"', 'ぱー'];

$a = rand(0, 2); //pcHand
$b = 1;          //userHand

echo "PCの手は{$hands[$a]}です。\n";
echo "あなたの手は{$hands[$b]}です。\n";

if($a == $b) {
    echo "あいこ";
} elseif($a == 0 &amp;&amp; $b == 1 || $a == 1 &amp;&amp; $b == 2 || $a == 2 &amp;&amp; $b == 0) {
    echo "アナタのまけです...";
} elseif($a == 0 &amp;&amp; $b == 2 || $a == 1 &amp;&amp; $b == 0 || $a == 2 &amp;&amp; $b == 1) {
    echo "あなたのかちです！";
}
?&gt;</pre></div>



<p>一応、じゃんけんのコードとしてはちゃんと勝敗がつけられるのですけれども...</p>



<p>そこで、見つけたのが「ジョイタスネット」というサイトの「PHPでじゃんけんゲームを作ろう！」という記事です。</p>



<p>外部リンク：<a href="https://joytas.net/programming/php/jyankenpon-php" target="_blank" rel="noreferrer noopener">PHPでじゃんけんゲームを作ろう！</a></p>



<p>勝敗が、たったの一行なんですよ！！！</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;p&gt;&lt;?=$results[($userHand + 3 -$pcHand) % 3]?&gt;&lt;/p&gt;</pre></div>



<p></p>



<p>はじめ、コードを読んでいて勝敗はどこでつけているのかと悩んでいたのですが、この一行を読み解いたときに感動してしまいました。</p>



<p>ジョイタスネットさんのコードはWeb用に整えられていますので、ざっくりと分かりやすく取り出してみます。</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
$hands = ['ぐー', 'ちょき', 'ぱー'];
$results = ['あいこ', 'アナタのまけです...', 'アナタのかちです！'];

$pcHand = rand(0, count($hands) - 1);
$userHand = 1;

echo "PCの手は{$hands[$pcHand]}です。\n";
echo "あなたの手は{$hands[$userHand]}です。\n";

echo $results[($userHand + 3 - $pcHand) % 3];
?&gt;</pre></div>



<p></p>



<p>たとえば、$userHandが0（ぐー）で$pcHandも0（ぐー）の場合、</p>



<p>$results[($userHand + 3 - $pcHand) % 3];　→　(0+3-0)%3 = 0（あいこ）</p>



<p>$userHandが2（ぱー）で$pcHandが1（ちょき）の場合、</p>



<p>$results[($userHand + 3 - $pcHand) % 3];　→　(2+3-1)%3 = 1（アナタのまけです...）</p>



<p>$userHandが1（ちょき）で$pcHandが2（ぱー）の場合、</p>



<p>$results[($userHand + 3 - $pcHand) % 3];　→　(1+3-2)%3 = 2（アナタのかちです！）</p>



<p></p>



<p>すごいすごいすごい（語彙力ｗ</p>



<p>計算で勝敗が導き出されるなんて、プログラミングの力点を感じられて感動しました！</p>



<p>どうしたらこんな素晴らしいコードが書けるのか、早くこんな思考が持てるようになりたいです。はあ、でもだんだんとコードが読めるようになってきて少し成長したと言えるでしょうか。</p>



<p>一人で盛り上がってて済みません。初心者はこんな感動するのかなど生暖かく見守って頂けたら幸いです。きょうのプログラミング勉強のピックアップでした！(*'ω'*)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/007-janken/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
