Skip to content

Instantly share code, notes, and snippets.

View shiracamus's full-sized avatar

@shiracamus shiracamus

View GitHub Profile
import random
import pygame
from abc import ABC, abstractmethod
from typing import Generator
PLACE = tuple[int, int] # (x, y)
COLOR = tuple[int, int, int] # (Red, Green, Blue)

本質的な話題から離れて恐縮ですが・・・

無名関数とクロージャは違う概念だと思うのですが、PHPでは無名関数のことをクロージャと呼ぶのですね。 クローズ(抱える、閉じ込める)しないのにクロージャと呼ぶのが奇妙に思えました。

  • 関数 (function)
    • 処理のまとまり
    • 関数名を付けて定義するのが一般的
    • 関数名付き関数を変数に代入したり関数の引数に渡すことができる言語とできない言語がある
  • 無名関数 (anonymous function, lambda expression)

https://qiita.com/decopon1476052/items/7227fcd2f233a3ad481e#comment-29474b93d4f66bb74094

名称 郵便 インターネット
8 ユーザ層 伝えたい・届けたい内容 データ
7 アプリケーション層 郵送手段、手順
(葉書、封書、小包など)
アプリが使うプロトコル
(SMTP、FTP、HTTP等)
6 プレゼンテーション層 見せ方、構成
(文、絵、点字など)
コード、フォーマット
5 セッション層 往復葉書、返信封筒、文通 サービス継続管理
4 トランスポート層 人まで、配達証明
(氏名)
サービスに届くまで
(ポート番号)
3 ネットワーク層 建物まで
(住所)
ホストに届くまで
(IPアドレス)
2 データリンク層 最寄りのポスト・郵便局まで(目印) 最寄りの中継地点まで(MACアドレス)
import random
import numpy as np
import pygame
from abc import ABC, abstractmethod
from typing import Generator
from numpy.typing import NDArray
class Color:
GREEN = (34, 139, 34)
@shiracamus
shiracamus / bf2py.py
Last active December 15, 2024 19:31
Brainf*ck to Python transpiler
#!/usr/bin/env python3
import sys
import argparse
TRANS = {
# op: (nest, python_code)
'>': (0, 'index += 1'),
'<': (0, 'index -= 1'),
'+': (0, 'memory[index] = (memory[index] + 1) & 0xff'),
'-': (0, 'memory[index] = (memory[index] - 1) & 0xff'),
from itertools import permutations
def exp(a, b, *c):
if c:
for op in '+-*/':
yield from exp(f'({a}{op}{b})', *c)
yield from exp(f'({b}{op}{a})', *c)
for i in range(1, len(c) + 1):
yield from exp(*c[:i], f'({a}{op}{b})', *c[i:])
yield from exp(*c[:i], f'({b}{op}{a})', *c[i:])
def two_digit_sieve(digits: tuple[int], numbers: list[int], i: int = 0) -> bool:
"""
1桁数列digitsのi番目から順に1桁または2桁の数を作ってnumbersに追加し、digits
をすべて使って数の重複がないnumbersが完成したらTrue、失敗したらFalseを返す
"""
if i == len(digits):
return True # 完成
if (i + 1 < len(digits) and digits[i] != 0 and
(number := digits[i]*10 + digits[i+1]) not in numbers):
numbers.append(number) # 2桁数で試行
### tic-tac-toe game
from tkinter import *
from tkinter.messagebox import *
class Board:
def __init__(self, size=3):
self.size = size
import random
class Answer:
"""出題者"""
def __init__(self, digits: int) -> None:
"""digits桁の重複しない数を作って隠し持つ"""
self._number = ''.join(map(str, random.sample(range(0, 10), digits)))
public class ParkingSimulator {
public static void main(String[] args) {
Parking parking = new Parking("駅前駐車場", 2);
Car car1 = new Car("品川33 あ 1234");
Car car2 = new Car("横浜555 い 5678");
Car car3 = new Car("多摩345 う 9012");
car1.park(parking);
car2.park(parking);
car3.park(parking);