2020-09-01から1ヶ月間の記事一覧

カタン、Pythonでは?―― タイルの位置の保存

タイルの位置を外に保存したい。各六角形の頂点だけでなく、全部。 しかし、CSVに保存しようとしたら見事に失敗。 なんせ、3次元。CVSは2次元までしかダメ見たい。そうか、ダメか。毎回計算させなきゃいけないの? いや、ズラーっと並べる形で保存して、読み…

カタン、Pythonでは?―― タイルを大きく

正六角形19個を並べることができた。6種類に色分けできた。しかし、どうも小さい。大きくしよう。単に、screenを大きくして、それに合わせて正六角形の頂点の位置を調整すればいいだけ、、、のはず。 調整してみよう。 screenの大きさを1280、720に拡大。つ…

カタン、Pythonでは?―― 資源のタイルをランダムに

正六角形を19個、それに色を付けて資源の区別をした。次は、資源をランダムに並べねばならない。 numpy配列のランダムシャッフルは難しくなかった。for文で回す前に、 np.random.shuffle(tile2) を挿入するだけ。実行すると、そのたびに違うマップができる。…

カタン、Pythonでは?―― タイルの色を変えてみる

正六角形19枚を並べることができたので、今度は、タイルの色を変えてみることに挑戦。タイルの色は、はやりCSV形式で保存して、numpyの配列として読み込む。 2つの配列から要素を一つずつ読み込んで作業するには、for〜zipというやり方を使うらしい。やって…

カタン、Pythonでは?―― リストの場合

numpyの3次元配列で要素を追加していく手段で、すっきりしたやり方がすぐにわからなかったので、リストならばどうか、見てみる。 といっても、CSVファイルをリストの形で読み込む方法は、もちろんあるのだが、これはこれで面倒くさい。また二つのリストの要…

カタン、Pythonでは?―― データをCSVに

正六角形の頂点19個を毎回コードの中に書くと場所をとる。上を見たり、下を見たりするときに邪魔。ということで、外に出すことにした。どうやって外のファイルを読み込むかを調べると、CSVファイルがいいらしい。いったん計算して出した頂点の位置、19行2列…

カタン、Pythonでは?―― 正六角形19個を並べる

正六角形の、一つの頂点の位置から、他の5つの頂点の位置の計算ができたので、今度は19個の頂点を一気に計算し、描画してみる。できるかな。 import numpy as np import pygame # 長すぎるので、t1に頂点19個の位置を入れるところまでは省略 t3 = np.array([…

カタン、Pythonでは?―― 正六角形の各頂点の位置を計算させる

六角形19個の各頂点を、外から中に向かう渦巻き状に並べる、その前に、できた19個の頂点が正しいかどうか、確認してみよう。 まずは、頂点から、残りの5つの頂点を計算し、それをもとに図形を表示してみる。 import numpy as np import pygame t11 = np.arra…

カタン、Pythonでは?―― 正六角形の頂点を19個

全然、どうしよう、ではなかった。 np.append で作った新たな配列を、t1に入れればいいだけだった。 import numpy as np t1 = np.empty((0, 2), dtype = float) t1a = np.array([217.32, 200.00]) t2a = np.array([34.64, 0.00]) t2b = t1a + t2a t1 = np.ap…

カタン、Pythonでは?―― 正六角形を19個

六角形を1個表示させることはできた。カタンでは19個並べなければならない。19個の六角形の頂点の横、縦の位置を指定しなければならない。 もちろん、六角形の頂点は、重なっているところが多いので、全部で54ヵ所である。それぞれについて横、縦の二つずつ…

カタン、Pythonでは?――screenの表示の続き

Pythonでカタンをやってみよう。 screenができたら、次は六角形の表示。draw.polygonを使う。 poslist = [(200,210), (200,230), (217.32,240), (234.64, 230), (234.64, 210), (217.32, 200)] これは、六角形の各頂点の位置。正六角形に見えるように、計算…

カタン、Pythonでは?――screenの表示

Pythonでカタンをやってみよう。ということで1行目。 import pygame GUIとして何を使おうかなどとは特に考えず、一番最初に勉強した本(『初心者のためのPython活用術』)のゲームの例でpygameが使われていたのでそれにした。 次。 width = 640 height = 480…

カタン、Pythonでは?――画面からして大変

エクセルでカタンのマクロを手掛けてみて、まあエクセルに考えさせるには程遠いものの、一人カタンぐらいはできるところまではいったことについて書いていたら、もっといろいろ改良したくなってきた。エクセルに最適手を見つけ出させるアルゴリズムを組むの…

『カタンの開拓者』のアプリを作・・・れるかな?―― 一人カタンでの発展カード

ちなみに、一人カタンで発展カードを引くやり方も、何通りか考えられるが、とりあえず作ったのがこんなかんじ。 Sub 発展カード() Dim h1, h2 h1 = Range("u1") h2 = Range("a42") * 3 + 31 Call Cells(h2, 20).Insert(xlShiftToRight) Cells(h2, 20).Value …

『カタンの開拓者』のアプリを作・・・れるかな?―― 一人カタンぐらいなら

カタンのためのマップ作りをまとめるとこんなかんじ。 Sub マップ作り() Dim i, j, d ‘ タイル(資源)の順番 For i = 1 To 19 Randomize Cells(i, 1).Value = Rnd Next Range("a1:a19").Copy Range("a1:a19").PasteSpecial Paste:=xlPasteValues Call Range…

『カタンの開拓者』のアプリを作・・・れるかな?――発展カードの準備

ゲームを始める前の準備としては、発展カードもシャッフルしておかなければいけない。シャッフル自体は難しくない。 Sub 発展カードシャッフル() For d = 1 To 25 Randomize Cells(d, 18).Value = Rnd Next Range("r1:r25").Copy Range("r1:r25").PasteSpeci…

『カタンの開拓者』のアプリを作・・・れるかな?――トークン(生産力)の配置

資源の配置が決まったら、そこにトークン(生産力)の数値を入れていく。順番は決まっているのだが、砂漠はとばすのがミソ。 いろいろなやり方はあるのだろうけど、やってみたのは、まずJ1からJ18にトークンの数字を並べる。5、2、6、3、8、10、9、12、11、4…

『カタンの開拓者』のアプリを作・・・れるかな?――マップをランダムに

大体の形はできた。資源の配置は、一枚づつ手で色を変更して、なんてことはもちろんせず、エクセル君にやってもらおう。やってもらおうという意気込みはいいが、でもどうやって? 資源の配置はランダムにする。トークン(資源タイルごとの生産力)はABC順に…

『カタンの開拓者』のアプリを作・・・れるかな?――エクセルシートつくり

(大体)正六角形19枚をどんなシートの上に置くか。それそれの六角形の真ん中に数字が見えるようにしたい。さらに、各角に、見えないけれどその角の生産力の数値を入れたい。正確には、資源の生産力だけでなく、資源の種類、港との関係、他の家の生産力・資…

『カタンの開拓者』のアプリを作・・・れるかな?――六角形の色付け

大体正六角形に見える図形ができれば、それを19枚並べる。色は6種類。麦、木、羊が4枚ずつ、土と鉄が3枚ずつ、砂漠が1枚。本当は、それらしい模様、絵柄を入れた方がいいのかもしれないが、図形の下のセルに数字を入れて、それが見えるようにしたい。とする…

『カタンの開拓者』のアプリを作・・・れるかな?――正六角形は難しい

エクセルでカタンを作ろう! まずはマップからだ。マップは、正六角形が19枚。「挿入」、「図形」で六角形を選ぶ。オートシェイプってやつだ。そして、Shiftを押しながら正六角形を描きたい場所でドラッグすればいいんだよね。 やってみる。 ??? おかしい…

『カタンの開拓者』のアプリを作・・・れるかな?――どっちで作る?

ボードゲーム『カタンの開拓者』のアプリを作りたい、と思った。このゲームが好きなのだが、する場所、時間、相手を探すのがなかなか大変だ。じゃあコンピュータ相手に、と思ったが、その時に手に入るアプリはCatan Universe ぐらいだったが、ネットでの評判…

Outlookで添付ファイルの自動保存を目指して―― とりあえずお終い

With の使い方で、 FileName1 = objAttach.FileName という行は、 FileName1 = .FileName でもよいのではないか、と思って試してみたら、ちゃんと動いた。 With objAttach と宣言しているのだから、その後はobjAttach という言葉は使わずに、「.(ピリオド)…

Outlookで添付ファイルの自動保存を目指して―― 微修正

objFSO って変数、要らないんじゃないか?と思って外してみたら、無事に動いた。まあ、当然だ。どうして気がつかなかった、というレベル。 ということで、外した版が以下。保存するフォルダ名をちょっと隠したけど、それでも動くはず。動いてください。 Priv…

Outlookで添付ファイルの自動保存を目指して―― しかし、完全理解は遠い

いろいろ遊んでみようと思いつつ、他のことが面白くて、Outlookの事ばかりしていられない。Outlookのマクロを極めるのは、興味のあることではあるが、道は遠い。1行ずつ、完全に理解していこう、とかいったら、永久に終わらない可能性がある。 ということで…

Outlookで添付ファイルの自動保存を目指して―― もっといろいろやってみたい

メールに添付されて送られてきたPDFファイルを、一つはそのまま、もう一つはファイル名を加工して保存するOutlookのマクロ。一応、できたけど、その中身はちゃんとわかっているわけじゃない。もう少し勉強しよう。 まず、一番最初。 Private Sub Application…

Outlookで添付ファイルの自動保存を目指して―― 一応、できたけど

メールに添付されて送られてきたPDFファイルを、一つはそのまま、もう一つはファイル名を加工して保存するOutlookのマクロ。一応、できたけど、その中身はちゃんとわかっているわけじゃない。ちょいと、勉強しよう。 まず、一番最初。 Private Sub Applicati…

Outlookで添付ファイルの自動保存を目指して――一応、完成品

メールに添付されて送られてきたPDFファイルを、一つはそのまま、もう一つはファイル名を加工して保存するOutlookのマクロ。OUTLOOK研究所さんをはじめ、多くの先人の知恵を借りて作ったのが下のマクロ。 件名が「ファイルです」となっているメールに対して…

Outlookで添付ファイルの自動保存を目指して――まずは写経、丸写し

けっこう苦労したが、なんとかマクロはできた。というか、OUTLOOK研究所の「受信したメールの添付ファイルを自動保存するマクロ」という、私のやりたいことそのもののタイトルの記事で紹介されていたマクロに微調整を加えただけ。OUTLOOK研究所のマクロは、…

Outlookで添付ファイルの自動保存を目指して――Outlook のマクロは一味違う

OutlookでVBAを書く際、一番驚いたのが、コードを書く場所である。最初知らなくて、全然動かない、なんでだ、、、とかなり悩んだ。 VBAのコードを書くための最初の一歩はエクセルなどと同じ。リボン部分に「開発」を表示させる。表示させるための手順も同じ…