【Python】Hit&Blowのプログラミングコード

medium_5606753723
photo credit: Stéfan via photopin cc

PythonでHit&Blowを実装しました。
要改善:数字以外が入力されるとエラーで落ちます。
チートコマンド1:9998と入力すると答えが解ります。
チートコマンド29999と入力されると一桁のヒントが表示されます。

[cc lang=”python”]
#coding: UTF-8
# HIt&Blow
import random

#4桁のナンバーを創る関数
def makeNum():
numlist = random.randint(1000,9999) #999以下を創る場合は要検討
return numlist
#4桁のナンバーを分解する関数
def decoNum(number):
n4 = number / 1000
a = number % 1000
n3 = a / 100
a = a % 100
n2 = a / 10
a = a % 10
n1 = a
return n4,n3,n2,n1
#4桁ナンバーの重複をチェックする関数 1122などのゾロ目数字だとゲームがね。
def check4Num(n4,n3,n2,n1):
if ((n4==n3) or(n4==n2)or(n4==n1)or(n3==n2)or(n3==n1)or(n2==n1)):#重複しているから新しくナンバーを創る
return False
else:
return True

#チートコマンド
def hint():
hint = random.randint(1,4)
n4, n3, n2, n1 = decoNum(numList)
if (hint == 1):
print “XXX”,n1
elif (hint ==2):
print “XX”,n2,”X”
elif (hint ==3):
print “X”,n3,”XX”
else:
print n4,”XXX”

#プレイヤーが4桁の数字を推測するインプットを受け付ける関数
def inptNum(): #文字のチェックはしていない
while 1:
n = int(raw_input(“Guess Number :”))
if (n > 10000):
print “over flow error”
elif (n < 999): #999以下の場合要件等
print “Number is minimum”
elif (n == 9998): # 裏ワザ 答えを見る数字
print numList
elif (n == 9999):
hint()
else:
return n

#No.01 //4桁ナンバーを創るループ
while 1:
#4桁ナンバーを創る
numList = makeNum()
#4桁ナンバーを分解する
n4, n3, n2, n1 = decoNum(numList)
#4桁ナンバーの重複をチェックする
checkNum = check4Num(n4,n3,n2,n1)
#重複なしならループを抜ける // 重複なら4桁ナンバーを創り直す。
if(checkNum == True):
break

#No.02 //4桁ナンバーを当てていくループ
turn = 0
while 1:
turn+=1
#Player1のターン:数を予想する
playerNum = inptNum()
#プレイヤーナンバーを分解する。
p4,p3,p2,p1 = decoNum(playerNum)
#プレイヤーの予想と4桁の数字を比較して数字が同じなら”Blow”桁も同じなら”Hit”と表示する
hit = 0
blow = 0
if (n4==p4):
hit+=1
if (n3==p3):
hit+=1
if (n2==p2):
hit+=1
if (n1==p1):
hit+=1
if (hit == 4):
print “Nice 4 Hit Game End!\tTurn is “,turn
break
else:
print “Hit is “,hit
if (n4==p3):
blow+=1
if (n4==p2):
blow+=1
if (n4==p1):
blow+=1
if (n3==p4):
blow+=1
if (n3==p2):
blow+=1
if (n3==p1):
blow+=1
if (n2==p4):
blow+=1
if (n2==p3):
blow+=1
if (n2==p1):
blow+=1
if (n1==p4):
blow+=1
if (n1==p3):
blow+=1
if (n1==p2):
blow+=1
print “Blow is “,blow
print “trun “,turn

[/cc]

IQtest.dk Dansk版 全39問 解答と解説

はじめに

スクリーンショット 2015-05-09 22.01.30

「IQtest.dk」はたぶん10年以上インターネット上で公開されているIQテストです。

English版がよくまとめサイトなどで話題になっていました。このテストにはDansk版もあるのですが、English版はモノクロで、Dansk版はカラーとなっており、それぞれ出題される問題が異なります。

第1問

 

解答 F

法則性

  • 赤球ひとつ、青球ひとつ、緑球ひとつ。

第2問

 

解答 A

法則性

  • 花びらが一枚づつ増えていく

第3問

解答 A

法則性

  1. 上段の縦線は一本、中段の縦線は二本、下段の縦線は三本。
  2. 縦線は左側・真ん中・右側の位置に対応している。

第4問

解答 D

法則性

  • 図形4つ全部くっつけると◇になる
  • D以外だと不自然

第5問

解答 D

法則性

  • マス目の中心から、マス目が一つづつ赤く塗りつぶされていく。

第6問

解答 C

法則性

  • 第3問と同じ法則性
  • 線は図の位置に対応している

第7問

解答 G

解説

  • 左側の赤マスは右へ1つ移動し、右側の赤マスは左へ1つ移動する。
  • 左右の赤マスが1マスずつ反対方向へ移動する。

第8問

解答 A

法則性

  • 三角→丸→四角と変形しながら移動する。

第9問

解答 F

法則性

  • 上段は左右とも同じ図形なので、下段も左右同じ図形だろうと推測できる。

第10問

解答 C

法則性

  • 右側と左側の図形を合わせると真ん中の図形となる

第11問

解答 C

法則性

  • 真ん中の図形(硬い)を左側の図形(柔らかい)の中に入れると右側の図形となる。
  • 左側の図形を真ん中の図形の大きさに合わせて広げると、右側の図形となる。

第12問

解答 A

法則性

  1. 棒線の数は1本線→2本線→3本線である
  2. 棒線の角度は縦→横→斜めである

第13問

解答 A

法則性

  1. 青の花びらは、一マスずつ時計回りで移動する
  2. 青の花びらの後ろは黄色→赤色→緑色である

第14問

解答 E

法則性

  • 左側の図と真ん中の図を重ね合わせ、重複する線を消すと、右側の図となる。

第15問

解答 B

法則性

  • 左側の図形と右側の図形を合わせると真ん中の図形になる

第16問

解答 C

法則性

  1. 真ん中の図形を左側の図形の中に入れる
  2. 真ん中の図形を左側の図形に入れる際に、図形を丸→四角→三角の順で変形しながら入れる

第17問

解答 G

法則性

  • 黄色→青→赤と変色する。

第18問

解答 H

解説

  • 左側の図形で真ん中の図形を引くと右側の図形となる。
  • 左側の図形と真ん中の図形を重ね合わせ、重複している部分を消すと、右側の図形となる。

第19問

解答 D

法則性

  1. 2個セットの赤マスが、1マスずつ右へ移動する。
  2. 右端へ来たら一段下がって左端へ移動する。

第20問

解答 C

法則性

  1. 赤→青→緑と変色する。
  2. I型→T型→Y型へと変形する。
  3. I型がT型へと変形する時、I型の先端が右へ1マス移動する。

第21問

解答 F

法則性

  • (が移動している。
  • (の幅が同じ大きさで重なり合う図は”F”である。

第22問

解答 G

法則性

  • 真ん中の図形と右側の図形を重ね合わせると左側の図形となる。

第23問

解答 G

法則性

  1. 図の上部は、穴空き→線無し→線。
  2. 図の下部は、直線→台形風の線→丸線。

第24問

解答 C

解説

  1. 丸は、中→中→外の順に現れる。
  2. 丸は、青色→白色→白色の順に現れる。
  3. 図形は、円形→三角→四角の順に現れる。

 

第25問

解答 H

法則性

  1. 内側の黒丸をプラス、外側の黒丸をマイナスとする。
  2. 左側の黒丸+真ん中の黒丸=右側の黒丸の数

第26問

解答 B

法則性

  • 形は「Sと>と)」の3つがある。
  • 各段は、「基本形」
    「基本形の左側を軸にして回転させた図形」
    「基本形の右側を軸にして回転させた図形」
    の3つで構成される。

図解

スクリーンショット 2015-06-16 13.36.45

  • 竹串についた飴ちゃんみたいなイメージでぐるぐるまわす。

第27問

解答 B

法則性

  1. 図形を上部と下部に切り分ける
  2. 左側の図形上部と真ん中の図形下部をくっつけると右側の図形となる。

第28問

解答 B

法則性

  1. 横棒の位置は「手前→手前→奥」
  2. 横棒の色は「黒・白・灰」
  3. 図形は「菱形・丸・四角」

解説

  1. 下段真ん中の図形の横棒は「手前」だから次も「手前」 候補は(B、C、E、G、H)
  2. 下段真ん中の図形は「四角」と「菱形」だから、次は「丸」候補は(B、C、EGH
  3. 下段真ん中の図形の横棒の色は「白」と「黒」だから次は「灰」 答えは(B)

第29問

解答 D

法則性

  1. 左側の図形を真ん中の図形で型取ると右側の図形となる。

解説

  1. 図形の成形イメージが難しい場合、画像の黒線のように事実を簡略化するとイメージを操作しやすい。

第30問

解答 G

法則性

  • 左側の図形の内側に真ん中の図形を入れ込むと右側の図形となる。

第31問

解答 B

法則性

  • 真ん中の図形の左辺と右辺を青点を起点に左右に両開きの扉を開けるように開くと、右側の図形となる。

第32問

解答 F

法則性

  • 真ん中の図形で左側の図形から動いた線と向かい合う線を回転させると、右側の図形となる。
  • 中央に接する辺が右下から左上の順で90度回転していく

第33問

解答 D

法則性

  • 真ん中の図形を左側の図形の赤マス部分はそのまま、左側の図形の白マス部分は反転させると、右側の図形となる。

解説

  1. 真ん中の図形をいじる
  2. 左側の図形はいじる部分を示す
  3. 真ん中の図形を左側赤マス部分はそのまま
  4. 真ん中の図形を左側白マス部分で反転させる

第34問

解答 F

法則性

  1. 直線は0、凹は−1、凸は+1とする。
  2. 真ん中の図形の辺と右側の図形の辺を足すと、左側の図形の辺となる。

解説

  1. 計算式は、真ん中ー右側=左側
  2. 上段上辺:−1+1=0 / 直線
  3. 上段右辺:0−1=−1 / 凹
  4. 上段左辺:−1+0=ー1 / 凹
  5. 上段下辺:−1+1=0 / 直線

第35問

解答 C

法則性

  1. 左側の図形の左上の位置にあるシンボルAは、右側の図形の左下のA’の位置に現れる。
  2. 左側の図形の右下の位置にあるシンボルBは、右側の図形の左上のB’の位置に現れる。
  3. 真ん中の図形の左下の位置にあるシンボルDは、右側の図形の右上のD’の位置に現れる。
  4. 真ん中の図形の右上の位置にあるシンボルCは、右側の図形の右下のC’の位置に現れる。

第36問

解答 F

法則性

  1. 色は青・赤・緑である。
  2. 青赤緑線の長さは「1・1・3」「2・2・3」「1・2・3」である。
  3. 「2・2・3」は「2横・2縦・3横」である
  4. 「1・2・3」は「1・2横・3横」である
  5. 「1・1・3」は「1・1・3縦」である。
  6. 3マス棒は「縦→横→横」である。

解説

  1. 下段左側と下段真ん中に青色2マス棒がある。法則性の3番より候補は(E、F、G)「1・1・3」「2・2・3」「1・2・3」・赤・緑
  2. 「1・1・3」は法則性の5番より「1・1・縦棒」なので、候補の「E」と「G」は除外する。(E、F、G「1・1・3」「2・2・3」「1・2・3」・赤・
  3. よって回答は「F」となる。

第37問

解答 H

法則性

  1. 赤マスと青マスは一マス離れてセットである。
  2. 灰マスは一つずつ規則性を持って増殖する。
  3. 赤マスと青マスは右へ移動する。
  4. 灰色のマスに赤マスか青マスが入ると、出てくる際に色が反転する。(赤→青、青→赤)

解説

  1. 下段右側の図形、灰色マスは解答欄の通りになる。
  2. 下段真ん中の図形赤マスは、次に移動すると上から3行目左から一列目に来る。赤色である。候補は(F、H)
  3. 下段左側の青マスは、下段真ん中に来ると灰色マスに隠れる。色は赤に反転する。
  4. 下段真ん中に隠れている青マスだった赤マスは、下段右側に来ると灰色マスから赤色になって出てくる。
  5. よって解答はH

第38問

解答 F

法則性

  • 左側の図形を真ん中の図形の矢印方向へ伸ばすと右側の図形となる。

第39問

解答 H

法則性

  • 四角→丸→三角の順で図を移動するごとに変形する。

解答

  1. 下段真ん中の図形の△シンボルは、法則性により、下段右側になると下辺で□□□と揃うことが予測できる。 候補は(C、H)
  2. 下段真ん中の右下にある◯シンボルは、次は法則性により、左上に△として出てくることが予測できる。
  3. よって解答はH

おわりに

以上、Densk版、IQtest.dkの解答と解説でした!

 

ありがとうございました。

 

War of the Roses 騎兵のオススメ

輩は今、凄腕の傭兵である。
それも、今日はヨーク家、明日はランカスター家と、ひっぱりだこな傭兵である。
斧を持った歩兵になったり、狩猟弓を持った弓兵になったりするのだが、
中でもお気に入りの職業は騎兵である。

騎兵はなんとも忙しく戦場を駆ける職業だ。
西に孤立した敵兵あれば 行って 槍を突き立てあの世に逝かせ、
東に四面楚歌の味方あれば 行って 敵を打ち倒し危機から救い、
南に制圧されそうな旗あれば 行って 立て直し、
北に瀕死の味方がいれば 行って 包帯を巻いてやるのである。

騎兵のおもしろさはそれに加え、敵をバッサバッサと突き倒せることだ。
馬上槍を相手の背中に突き刺すよう駆け抜けると、
通常は鎧にはじかれる攻撃もぐしゃあとクリティカルがでて痛快なのである。
ぐしゃあと相手は一撃で倒れゆくのである。痛・快☆

しかし、
愛しの姫を救うわけでもなく、
国を護るため戦うのでもなく、
仲間を守るため戦うでもない。
ただランスが相手の顔面を貫く快感を求めて今日も戦場に出向くのである。

馬を操り、馬上槍を相手の背後から頭めがけて突き立てる作業である。
Aimを合わせ、突撃する。
Aimを合わせ、突撃する。
汎用人型決戦兵器にはじめてのった少年の心の如くの心得である。
このような作業、中学生にでも出来る作業である。

あなたにしかできない作業はなんだ?

【Python】エラトステネスの篩で素数を調べるプログラムコード

medium_2819239462

photo credit: gurke via photopin cc

[cc lang=”python”]
#coding:UTF-8
#エラトステネスのふるい
# 任意の桁まで素数を調べるプログラム
maxNum = 10000 # 任意桁の自然数
nlist = range(2,maxNum+1) #最初の素数である2から昇順の自然数のリストを作る

j = 0 # 初期値の設定
z = 2 # 初期値の設定 zはリストの最初の素数
while j < len(nlist):
i = 0
while i < len(nlist):
if((nlist[i] % z == 0 ) and (nlist[i] != z)):
del nlist[i]
i+=1
z+=1
j+=1

print nlist
print “Prime Number is”,len(nlist)

[/cc]

 

IQtest.dk カラー版 全39問の解答と解説

はじめに

TwitterのTLでIQテストが流行っているようです。そのIQテストのURLはこちら→ http://onemansblog.com/wp-content/uploads/2007/11/iqtest.swf

数値が3つあるのは、標準偏差が15か16か24の違いです。

 

第1問

解答 D

解説 赤丸だから、赤丸のD

詳しい解説 仲間はずれを探す、もしくは同一の仲間を探す問題です。ですので解答は”D”の図となります。

第2問

解答 E

解説 縦縞の水色が同じだから

詳しい解説 開いた場所を埋める図を探す問題です。問題1と同じように同一の仲間を探します。なので、解答は”E”となります。カーテンが切り取られているので、同じ模様を貼り付けて修復するイメージです。

第3問

解答 E

解説 3本線が左から右へと移動しているから。

詳しい解説 上段では、一本線が”左→中央→右”へと移動しています。中段では、二本線が左→中央→右へと移動しています。なので、下段も同じように3本線が左→中央→右へと移動すると予測できます。よって解答は”D”となります。

第4問

解答 H

解説 左右対称、全部あわせると一本書きで菱形になるから。

詳しい解説 上段の左の図は、青い図形の左下から右上へと対角線を引いています。上段の右の図では、左上から右下へと対角線を引いています。なので、下段も同じように対角線を引いた図がくると予測できます。解答は”H”となります。

第5問

解答 H

解説 赤マスが1つずつ増殖しているから。

詳しい解説 上段左の図では赤マスが1つ、上段中央の図では赤マスが2つ、上段右の図では赤マスが3つです。同じように中段を見ていきますと、赤マスは4つ5つ6つと増えていきます。これらの規則性を見て取ると下段右の図は赤マスが9つあると予測できます。なので解答は”H”となります。

第6問

解答 F

解説 十字が左から右へと移動しているから。

詳しい解説 縦線と横線が図の位置に対応しています。上段左の図は、横線が上部にあります。そして、縦線は左部にあります。上段中央の図は、縦線が中部に横線が上部にあります。同じように図を見ていくと同様の規則性を見て取れます。難しい解説になってしまいましたが、規則性から下段右の図は、縦線が右部にあり横線が下部にあると予測できます。なので解答は”F”となります。

第7問

解答 C

解説 左側の赤マスは右へと1マスずつ移動し、右側の赤マスは左へと1マスずつ移動しているから。

詳しい解説 上段を見てみます。上段上部の赤マスは、左→真ん中→右へと図を跨ぐ事に右に移動し、下部の赤マスは、右→真ん中→左へと移動しています。中段を見ていきますと、赤マスが2つあり、左と右に配置されています。中段も図を跨ぐ事に移動しているのが見て取れます。図を跨ぐ事に移動する規則性が見て取れます。なので、下段右部も同様の規則性から導くと、上部の赤マスは左へ下部の赤マスは右へ移動したと予測できます。よって、解答は”C”となります。

第8問

解答 E

解説 赤線の幅が同じだから。

第9問

解答 D

解説 ”()”カッコの幅が同じで、その後どうなるかを考えると”D”になるから。

第10問

解答 F

解説 左側の図と右側の図を合わせると、真ん中の画像になるから。

続きを読む