かんたんコーディング

Hit&Blow を Ruby で

qiita.comおもしろそうなので、自分でも書いてみた。 ルール コンピュータの決めた、各桁に重複のない3桁の数を当てるゲーム。 当たらなかった場合、 入力と桁の合っている数字の数を、ヒット 入力と桁は合っていないが重複はしている数字の数を、ブロウ と…

Rubyでファイルのツリー構造を出力する

qiita.com これを見て Ruby でもやってみたくなりました。 実行例 <kaki-utils> ├<lib> │ └<kaki> │ ├<utils> │ │ ├add_methods.rb │ │ ├all.rb │ │ ├check_fname_overlapping.rb │ │ ├es.rb │ │ ├imgsuffix.rb │ │ ├nest_loop.rb │ │ ├po.rb │ │ ├rec_decimal.rb │ │ ├retry.rb │ │ └safe_</utils></kaki></lib></kaki-utils>…

文字列を一文字づつ飛ばし文字にするのこと(Ruby)

まず、「esehara」という文字列がある。この文字列を「eeaa」といったように、一文字ずつ飛ばし文字にするにはどうしたらいいか http://bugrammer.hateblo.jp/entry/2016/10/24/175704 あるブログでこんなのを見て考えてみた。コード例。 def one_jump(str) …

推理判断のプレゼント交換の問題

rsc.hatenablog.comrsc さんのブログから問題を拝借しました。# 問題: A~Eの5人がプレゼント交換をした。5人とも自分以外の人から1つずつプレゼントを受け取ったが、プレゼントを渡した相手からプレゼントを受け取った人はいなかったという。さらに…

「Ruby初心者向けのプログラミング問題」を解いてみる

blog.jnito.comやってみました。 カレンダー作成問題 ここで似たようなことをやっているので省略。(ただし、Date クラスは使っていません。) カラオケマシン問題 class KaraokeMachine Key = %w(C C# D D# E F F# G G# A A# B) def initialize(melody) @sc…

ブログ「hp12c」の一問題(Ruby)

またまた Ruby ブログ「hp12c」からの問題(?)です。 melborne.github.io さて、データ data = <

Gem 'Ruby2D' でライフゲーム

いつもの得意技(?)のライフゲームです。Ruby 用のグラフィック・ライブラリ 'Ruby2D' を使っています。コード。 lifegame_for_Ruby2D.rb require 'ruby2d' include Ruby2D::DSL class LifeGame CellWidth = 10 Margin = 20 Space = 2 SideWidth = 35 W = …

4つの数で 10 を作る(Ruby)

テンパズル - Wikipedia 1桁の4つの数と四則演算で、10 を作るコードを Ruby で書いてみました。括弧は使ってもよいことにします。実行例。 $ ruby make_ten.rb [2, 7, 3, 9] で 10 を作る (2 + 3) * (9 - 7) (7 + 9) - (2 * 3) 9 + (7 - (2 * 3)) 9 - ((2 *…

Ruby/SDL でランダム・ウォーク

Ruby/SDL(参照)を使ってランダム・ウォークしてみました。Linux Mint 19、Ruby 2.5.1 で確認しました。コード。 sdl_random_walk.rb require_relative 'sdl_draw' WindowWidth = 300 FieldWidth = 50.0 N = 30 class Agent def initialize(ob) @x = @y = 0…

連続数字をハイフンでつなぐ(Ruby)

既に更新はされていませんが、僕はブログ「hp12c」をよく読んでいます。Ruby 好きには楽しいですね。そこで、「Rubyで連続数字をハイフンでつなぐよ」というエントリがありました。元ネタはここということです。やることは要するに、「スペース区切りの数字…

Go言語でカレンダーを出力してみた

obelisk.hatenablog.comここの Ruby 版の移植です。出力例。 $ go run calender.go 2018/10 sun mon tue wed thu fri sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 コード。 calender.go package main import …

ズンドコキヨシ(Ruby)

Javaの講義、試験が「自作関数を作り記述しなさい」って問題だったから「ズン」「ドコ」のいずれかをランダムで出力し続けて「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら「キ・ヨ・シ!」って出力した後終了って関数作ったら満点で単位貰ってた—…

ひとつのサイコロの配置の数

ひとつのサイコロを特定の方向から見たばあい、その「見かけ」は全部で何とおりあるのでしょうか。 Ruby で解いてみました。コード。 table = {E: [3, 2, 6, 1, 5, 4], N: [5, 1, 3, 4, 6, 2], S: [2, 6, 3, 4, 1, 5], W: [4, 2, 1, 6, 5, 3], R: [1, 4, 2, …

カードゲーム「ブラックジャック」を Ruby で実装する

Qiita を見ていたら「初心者はブラックジャックを実装してみるといいよ」とかいう記事があったので、おもしろそうだと Ruby で実装してみました。とりあえず実行例を見て下さい。 $ ruby blackjack.rb カードをシャッフルします コイン: 10000 点 ベットは?…

「モンティ・ホール問題」をシミュレートする(Ruby)

rubyでモンティホール問題に挑戦 - Qiita ここでいわゆる「モンティ・ホール問題」を Ruby でシミュレートしているのを目にして、自分なりにやってみたくなりました。「モンティ・ホール問題」とはこういうものです。 三つの扉があり、その向こうのひとつに…

格子点の列挙(Ruby)

格子点の列挙 - みずぴー日記 ここの問題で遊んでみました。問題を再掲しておきます。 二次元平面上の格子点(X,Y座標がともに整数の点)を、原点から近い順に列挙してください。 同じ距離の点はどういう順番でも構いませんが、可能であればX軸に一番近い第一…

RubyPico でライフゲーム

RubyPico には clearprint という独自のメソッドがあるので、文字でアニメーションのようなことができます。なので、いわゆる「コンウェイのライフゲーム」を実装してみました。またライフゲームかって言わない。こんな感じです。iPad mini の画面です。 コ…

RubyPico でカレンダーを表示させてみた

obelisk.hatenablog.com ここでの Ruby スクリプトを移植してみました。 入力はこんな感じ。 出力。 コードはこちらです。もともと(遊びで)Date クラスを使わずにコーディングしていたので、Date クラスのない mruby でも動いてちょうどよかったな。 obeli…

パスカルの三角形(Haskell)

「パスカルの三角形」というのはこういうやつですね。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 この出力を目標に、Haskell で書いてみます。以前に Ruby で書いてみました。そのコードを再掲しましょう。 pascal…

和暦 (明治 大正 昭和 平成) と西暦の変換をおこなう(Ruby)

簡単な遊びのプログラムが作りたかったのでやってみました。Date クラスは使っていません。こんな感じです。コマンドライン引数を指定します。 #西暦から和暦 $ ruby gengou.rb 2018 平成30年 $ ruby gengou.rb 1945 昭和20年 $ ruby gengou.rb 1912 明治45…

Ruby でカレンダーを出力してみた

特定の年と月を指定して、カレンダーを出力するプログラムを書いてみました。標準添付ライブラリの Date クラスを使ってはつまらないので、自力で計算しました。 calender.rb month_table = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] #うるう年…

パスカルの三角形(Ruby)

パスカルの三角形とは、こんな感じのものです。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 規則性がわかりますね。多項式 (a + b)n を展開すると、係数がこんな風に並びます。Ruby で関数型プログラミングっぽく書…

オブジェクト指向じゃんけんゲームの Ruby 移植版

前回エントリの C# バージョンの、Ruby 移植版です。 module JankenAsobi class Player def initialize @wincount = 0 end attr_reader :wincount, :name def count @wincount += 1 end end class Cp < Player def initialize @name = "Computer" super end …