{"id":2401,"date":"2017-07-01T10:18:23","date_gmt":"2017-07-01T01:18:23","guid":{"rendered":"https:\/\/jikoman.sin-cos.com\/blog\/?p=2401"},"modified":"2017-07-01T10:18:23","modified_gmt":"2017-07-01T01:18:23","slug":"vpython_mc_scan","status":"publish","type":"post","link":"https:\/\/jikoman.sin-cos.com\/blog\/2017\/07\/vpython_mc_scan\/","title":{"rendered":"VPython\u3092\u4f7f\u3063\u3066\u30de\u30a4\u30af\u30e9\u306e\u4e16\u754c\u3092\u8997\u3044\u3066\u307f\u308b"},"content":{"rendered":"<p>Minecraft\u3092Python\u3067\u5236\u5fa1\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u30d6\u30ed\u30c3\u30af\u3092\u7f6e\u304d\u307e\u304f\u3063\u3066\u904a\u3093\u3060\u5f8c\u306f\u3001\u30de\u30a4\u30af\u30e9\u306e\u4e16\u754c\u3092\u30b9\u30ad\u30e3\u30f3\u3057\u3066\u307f\u3088\u3046\u3002\u305d\u3057\u3066\u305d\u306e\u60c5\u5831\u3092\u63cf\u753b\u3057\u3066\u307f\u305f\u3044\u3002<\/p>\n<p>\u307e\u305a\u306f\u30d6\u30ed\u30c3\u30af\u30c7\u30fc\u30bf\u306e\u53d6\u5f97\u3002<\/p>\n<p>posPlayer = mc.player.getPos()<br \/>\nfor iGetX in range(int(posPlayer.x-iWidth), int(posPlayer.x+iWidth+1)):<br \/>\nfor iGetY in range(int(posPlayer.y-iWidth), int(posPlayer.y+iWidth+1)):<br \/>\nfor iGetZ in range(int(posPlayer.z-iWidth), int(posPlayer.z+iWidth+1)):<br \/>\nprint(&#8220;Scan : %d, %d, %d = %d&#8221; % (iGetX, iGetY, iGetZ, mc.getBlock(iGetX,iGetY,iGetZ)))<\/p>\n<p>\u3068\u308a\u3042\u3048\u305a\u3001\u3053\u3093\u306a\u611f\u3058\u3067\u81ea\u5206\u306e\u5468\u308a\u306e\u30d6\u30ed\u30c3\u30af\u306e\u60c5\u5831\u3092\u53d6\u5f97\u3057\u3066\u307f\u305f\u3002Python\u521d\u5fc3\u8005\u306a\u306e\u3067\u3001\u304a\u3082\u3044\u3063\u304d\u308a\u5197\u9577\u306a\u30b3\u30fc\u30c9\u3060\u304c\u3001\u6c17\u306b\u3057\u306a\u3044\u3002<\/p>\n<p>\u51fa\u529b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>Scan : -7, -5, -22 = 12<br \/>\nScan : -7, -5, -21 = 12<br \/>\nScan : -7, -5, -20 = 12<br \/>\n\uff1a<br \/>\nScan : 2, 5, -14 = 0<br \/>\nScan : 2, 5, -13 = 0<br \/>\nScan : 2, 5, -12 = 0<\/p>\n<p>\u3067\u306f\u30010\u3067\u306a\u3044\u5ea7\u6a19\u306b\u7403\u3092\u7f6e\u3044\u3066\u63cf\u753b\u3057\u3066\u307f\u305f\u3044\u3002<\/p>\n<p>\u307e\u305a\u306f\u3001Python3.6\u3067\u63cf\u753b\u6a5f\u80fd\u3092\u4f7f\u3044\u305f\u3044\u306e\u3067\u3001VPython\u306a\u308b\u3082\u306e\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3002<\/p>\n<p>&gt; pip install vpython<\/p>\n<p>\u521d\u56de\u5b9f\u884c\u6642\u3001\u6b21\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u304c\u8868\u793a\u3055\u308c\u305f\u304c\u3001\u518d\u5ea6\u4e8b\u9805\u3057\u3066\u307f\u308b\u3068\u3001\u30a8\u30e9\u30fc\u306a\u304f\u7d42\u4e86\u3057\u305f\u3002<\/p>\n<p>NameError: free variable &#8216;install_kernel_spec&#8217; referenced before assignment in enclosing scope<\/p>\n<p>\u539f\u56e0\u4e0d\u660e\u3002\u305d\u306e\u3046\u3061\u89e3\u6790\u3057\u305f\u3044\u3002\u3057\u305f\u3044\u304c\u3059\u308b\u304b\u3069\u3046\u304b\u306f\u5225\u306e\u8a71\u3002<\/p>\n<p>\u3067\u306f\u3001\u63cf\u753b\u3059\u308b\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u307f\u308b\u3002<\/p>\n<p>import mcpi.minecraft as minecraft<br \/>\nimport mcpi.block as block<br \/>\nfrom vpython import *<\/p>\n<p>mc = minecraft.Minecraft()<\/p>\n<p>iWidth = 200<br \/>\nposPlayer = mc.player.getPos()<\/p>\n<p>arrow(pos=vector(posPlayer.x,posPlayer.y,posPlayer.z), axis=vector(iWidth,0,0), color=vector(1,0,0), shaftwidth=5)<br \/>\narrow(pos=vector(posPlayer.x,posPlayer.y,posPlayer.z), axis=vector(0,iWidth,0), color=vector(0,1,0), shaftwidth=5)<br \/>\narrow(pos=vector(posPlayer.x,posPlayer.y,posPlayer.z), axis=vector(0,0,iWidth), color=vector(0,0,1), shaftwidth=5)<\/p>\n<p>for iGetX in range(int(posPlayer.x-iWidth), int(posPlayer.x+iWidth+1), 5):<br \/>\nfor iGetY in range(int(posPlayer.y-10), int(posPlayer.y+iWidth+10), 5):<br \/>\nfor iGetZ in range(int(posPlayer.z-iWidth), int(posPlayer.z+iWidth+1), 5):<br \/>\nidBlock = mc.getBlock(iGetX,iGetY,iGetZ)<br \/>\nif idBlock != 0:<br \/>\nprint(&#8220;Scan : %d, %d, %d = %d&#8221; % (iGetX, iGetY, iGetZ, idBlock))<br \/>\ncolBlock = minecraft.Block(idBlock).getRGBA()<br \/>\nvpython.sphere(pos=vector(iGetX, iGetY, iGetZ), radius=2, color=vector(colBlock[0]\/255,colBlock[1]\/255,colBlock[2]\/255), opacity=colBlock[3]\/255)<\/p>\n<p>\u3067\u3001\u7d30\u304b\u3044\u8aac\u660e\u304c\u9762\u5012\u306b\u306a\u3063\u305f\u306e\u3067\u3001\u63cf\u753b\u3055\u308c\u305f\u7d50\u679c\u304c\u3053\u3061\u3089\u2193<\/p>\n<p>OSError: [WinError 10055] \u30b7\u30b9\u30c6\u30e0\u306e\u30d0\u30c3\u30d5\u30a1\u30fc\u9818\u57df\u304c\u4e0d\u8db3\u3057\u3066\u3044\u308b\u304b\u3001\u307e\u305f\u306f\u30ad\u30e5\u30fc\u304c\u3044\u3063\u3071\u3044\u306a\u305f\u3081\u3001\u30bd\u30b1\u30c3\u30c8\u64cd\u4f5c\u3092\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n<p>\u3002\u3002\u3002<\/p>\n<p>\u3048\u3047\u3001\u3082\u3046\u30d1\u30bd\u30b3\u30f3\u304c\u8ffd\u3044\u3064\u304b\u306a\u3044\u3002<\/p>\n<p>\u3067\u3082\u3001\u306a\u3093\u3068\u304b\u63cf\u753b\u3067\u304d\u305f\u7d50\u679c\u304c\u3053\u3061\u3089\u2193<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2402\" src=\"\/blog\/wp-content\/uploads\/2017\/06\/vpython_mc_scan0.png\" alt=\"\" width=\"638\" height=\"398\" srcset=\"https:\/\/jikoman.sin-cos.com\/blog\/wp-content\/uploads\/2017\/06\/vpython_mc_scan0.png 638w, https:\/\/jikoman.sin-cos.com\/blog\/wp-content\/uploads\/2017\/06\/vpython_mc_scan0-300x187.png 300w\" sizes=\"auto, (max-width: 638px) 100vw, 638px\" \/><\/p>\n<p>\u7dba\u9e97\u3060\u306a\u3002\u3067\u3082\u9045\u3044\u306a\u3002\u5b9f\u7528\u7684\u306a\u7269\u306b\u306a\u308b\u306e\u304b\u306a\uff1f<\/p>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3082\u7f6e\u3044\u3066\u304a\u3053\u3046\u304b\u3002BLOG\u306b\u8f09\u305b\u308b\u3068\u30a4\u30f3\u30c7\u30f3\u30c8\u304c\u306a\u304f\u306a\u3063\u3066\u308b\u307f\u305f\u3044\u3060\u3057\u3002<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2017\/07\/nori_mc_scan.py\">nori_mc_scan.py<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Minecraft\u3092Python\u3067\u5236\u5fa1\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002 \u30d6\u30ed\u30c3\u30af\u3092\u7f6e\u304d\u307e\u304f\u3063\u3066\u904a\u3093\u3060\u5f8c\u306f\u3001\u30de\u30a4\u30af\u30e9\u306e\u4e16\u754c\u3092\u30b9\u30ad\u30e3\u30f3\u3057\u3066\u307f\u3088\u3046\u3002\u305d\u3057\u3066\u305d\u306e\u60c5\u5831\u3092\u63cf\u753b\u3057\u3066\u307f\u305f\u3044\u3002 \u307e\u305a\u306f\u30d6\u30ed\u30c3\u30af\u30c7\u30fc\u30bf\u306e\u53d6\u5f97\u3002 posPlayer = m [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[130],"tags":[],"class_list":["post-2401","post","type-post","status-publish","format-standard","hentry","category-130"],"_links":{"self":[{"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/posts\/2401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/comments?post=2401"}],"version-history":[{"count":0,"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/posts\/2401\/revisions"}],"wp:attachment":[{"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/media?parent=2401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/categories?post=2401"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jikoman.sin-cos.com\/blog\/wp-json\/wp\/v2\/tags?post=2401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}