Skip to content

Instantly share code, notes, and snippets.

@kujirahand
kujirahand / fireworks.html
Created July 5, 2023 13:08
Canvas APIを使って花火を打ち上げる
<!DOCTYPE html><html><head>
<meta name="viewport" content="width=device-width,initial-scale=1">
<body style="background-color: black;">
<!-- 花火を描画するキャンバス-->
<canvas id="fireworks" width="400" height="400"
style="border: 1px solid silver;"></canvas>
</body>
<script>
// HTMLの<canvas>要素を取得
const canvas = document.getElementById('fireworks');
@kujirahand
kujirahand / coin_gpt.lua
Created May 23, 2023 11:51
ChatGPTが作成したコイン計算のプログラム
--[[
【お題】
次のようなプログラムをLuaで作ってください。
財布の中に硬貨があります。
1640円を支払いたいのですが、最も少ない枚数で支払える組合せを求めたいです。
なお、財布の中には次の枚数の硬貨があるものとし、値をテーブルで指定してください。
・500円硬貨が5枚
・100円硬貨が20枚
・50円硬貨が8枚
@kujirahand
kujirahand / split_file.py
Last active April 20, 2023 14:40
ファイルの分割スクリプト(python3版)
import os, sys, re
# ファイルを分割する関数 --- (*1)
def split_file(file_path, chunk_size):
# ファイルを開く --- (*2)
with open(file_path, 'rb') as f:
fileno = 0
chunk = f.read(chunk_size) # 分割サイズ分読み込む --- (*3)
while chunk:
# 出力ファイル名を決める --- (*4)
@kujirahand
kujirahand / main.rs
Created March 30, 2023 08:43
穴掘り法で迷路を生成して画像で保存するプログラム
use image::{imageops, ImageBuffer};
const ROAD: u8 = 0; // 道を表す値
const WALL: u8 = 1; // 壁を表す値
// 迷路自動生成する関数
fn make_maze(width: usize, height: usize) -> Vec<u8> {
// 迷路データを壁で初期化
let mut maze = vec![];
for _ in 0..(width * height) {
@kujirahand
kujirahand / maze02.py
Last active March 22, 2023 09:25
AI頼みで作った迷路自動生成のプログラムを改良したもの
import random
import pygame
# 迷路をランダムに自動生成する
# - 迷路の壁は1、通路は0とする
# - 迷路のサイズはwidth * heightとする
# - 座標(1,1)をスタート地点とする
# - 座標(width-2,height-2)をゴール地点とする
# 次の手順で迷路を完成させる
# 1. まず、全てのマスを壁にする
@kujirahand
kujirahand / maze01.py
Created March 21, 2023 14:59
AI頼みで作成した迷路ゲーム
import random
import pygame
# 迷路をランダムに自動生成する
# - 迷路の壁は1、通路は0とする
# - 迷路のサイズはwidth * heightとする
# - 座標(1,1)をスタート地点とする
# - 座標(width-2,height-2)をゴール地点とする
# - 迷路の外側は壁とする
# 次の手順で迷路を生成する
@kujirahand
kujirahand / main.rs
Created March 7, 2023 05:25
Bitmap writer for Rust
use std::io::Write;
fn main() { // メイン処理 --- (*1)
let data = make_bitmap(8, 8); // 画像を作成
let mut f = std::fs::File::create("test.bmp").unwrap(); // ファイル生成
f.write(&data).unwrap(); // ファイルに書き出す
println!("画像を書き出しました。");
}
// ビットマップ画像データを作成する --- (*2)
fn make_bitmap(width: u32, height: u32) -> Vec<u8> {
let mut data = vec![];
@kujirahand
kujirahand / calc.html
Last active February 24, 2023 12:55
HTML/JavaScriptで作った電卓アプリ(完成版)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>電卓アプリ</title>
<style>
input[type="text"] {
padding: 10px;
font-size: 24px;
border: 1px solid #ccc;
@kujirahand
kujirahand / fruits.jsonc
Created August 5, 2022 04:13
果物の商品データをJSONCで記述したもの
/**
* 果物の商品データをJSONCで記述したもの
* JSONCのサンプル
*/
[
// マンゴー
{"名称": "沖縄マンゴー", "値段": 3240, "産地": "沖縄"},
// ミカン
{"名称": "愛媛ミカン", "値段": 3200, "産地": "愛媛"},
// 梨
@kujirahand
kujirahand / memo.md
Last active August 9, 2022 10:49
セキュリティキャンプ2022 - プログラミング言語の開発 - 演習資料

演習リスト [N4,N12] プログラミング言語を自作しよう

  • 2022年8月9日(火)13:30~15:30
  • 2022年8月11日(木)13:30~15:30

演習の準備

  • Node.jsが動く環境を用意しておく
  • リポジトリがダウンロードできるよう、Gitをインストールしておく