├── P9j8.py ├── h9BY.py ├── Vh2i.py ├── Ch9H.py ├── An2k.py ├── 002_fc.pdf ├── 001_Root.pdf ├── invader ├── hit.wav ├── lose.wav ├── win.wav ├── shoot.wav ├── player_hit.wav ├── gene-sound.py └── hajimete.py ├── 000_テックジム 入校案内.pdf ├── 002_fc_susume.pdf ├── 00_python_open.pdf ├── 00_テックジム導入テキスト.pdf ├── Techgym20240412.pdf ├── million_respos.png ├── 000_techgym_info.pdf ├── 00_python_manual.pdf ├── Vu2x.py ├── x8UH.py ├── xS7K.py ├── 000_tokyo_chirashi.pdf ├── 000_tokyo_chirashi2.pdf ├── 01_Introduction_en.pdf ├── 01_python_traial_en.pdf ├── D3mW.py ├── rR76.py ├── techgym_group_lesson.pdf ├── 000_techgym_for_media.pdf ├── chirashi ├── techgym-omo_ol.pdf └── techgym-ura_ol.pdf ├── 01_Pythonオープン講座(6題バージョン).pdf ├── Lb65.py ├── x2Ns.py ├── U2gr.py ├── Jw2U.py ├── a5Qm.py ├── y5YT.py ├── gP6s.py ├── v7Pi.py ├── hit_ball_2.py ├── .gitignore ├── hit_ball.py ├── chat_bot.yml └── kessan.html /P9j8.py: -------------------------------------------------------------------------------- 1 | def calc(): 2 | 3 | calc() 4 | -------------------------------------------------------------------------------- /h9BY.py: -------------------------------------------------------------------------------- 1 | number = 2 2 | 3 | print('2です') 4 | -------------------------------------------------------------------------------- /Vh2i.py: -------------------------------------------------------------------------------- 1 | def calc(): 2 | print('calcの中身') 3 | 4 | calc() 5 | -------------------------------------------------------------------------------- /Ch9H.py: -------------------------------------------------------------------------------- 1 | number = 2 2 | 3 | if number == 2: 4 | print('2です') 5 | -------------------------------------------------------------------------------- /An2k.py: -------------------------------------------------------------------------------- 1 | def calc(a): 2 | print('a = ' + str(a)) 3 | 4 | calc(3) 5 | -------------------------------------------------------------------------------- /002_fc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/002_fc.pdf -------------------------------------------------------------------------------- /001_Root.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/001_Root.pdf -------------------------------------------------------------------------------- /invader/hit.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/invader/hit.wav -------------------------------------------------------------------------------- /invader/lose.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/invader/lose.wav -------------------------------------------------------------------------------- /invader/win.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/invader/win.wav -------------------------------------------------------------------------------- /000_テックジム 入校案内.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/000_テックジム 入校案内.pdf -------------------------------------------------------------------------------- /002_fc_susume.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/002_fc_susume.pdf -------------------------------------------------------------------------------- /00_python_open.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/00_python_open.pdf -------------------------------------------------------------------------------- /00_テックジム導入テキスト.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/00_テックジム導入テキスト.pdf -------------------------------------------------------------------------------- /Techgym20240412.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/Techgym20240412.pdf -------------------------------------------------------------------------------- /invader/shoot.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/invader/shoot.wav -------------------------------------------------------------------------------- /million_respos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/million_respos.png -------------------------------------------------------------------------------- /000_techgym_info.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/000_techgym_info.pdf -------------------------------------------------------------------------------- /00_python_manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/00_python_manual.pdf -------------------------------------------------------------------------------- /Vu2x.py: -------------------------------------------------------------------------------- 1 | number = 1 2 | 3 | if number == 1: 4 | print('1です') 5 | elif number == 2: 6 | print('2です') 7 | -------------------------------------------------------------------------------- /x8UH.py: -------------------------------------------------------------------------------- 1 | def calc(a, b): 2 | result = a * b 3 | print(str(a) + ' x ' + str(b)) 4 | 5 | calc(3, 4) 6 | -------------------------------------------------------------------------------- /xS7K.py: -------------------------------------------------------------------------------- 1 | def calc(a, b): 2 | print('a = ' + str(a)) 3 | print('b = ' + str(b)) 4 | 5 | calc(3, 4) 6 | -------------------------------------------------------------------------------- /000_tokyo_chirashi.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/000_tokyo_chirashi.pdf -------------------------------------------------------------------------------- /000_tokyo_chirashi2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/000_tokyo_chirashi2.pdf -------------------------------------------------------------------------------- /01_Introduction_en.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/01_Introduction_en.pdf -------------------------------------------------------------------------------- /01_python_traial_en.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/01_python_traial_en.pdf -------------------------------------------------------------------------------- /D3mW.py: -------------------------------------------------------------------------------- 1 | number = 1 2 | 3 | if number == 1: 4 | print('1です') 5 | 6 | if number == 2: 7 | print('2です') 8 | -------------------------------------------------------------------------------- /invader/player_hit.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/invader/player_hit.wav -------------------------------------------------------------------------------- /rR76.py: -------------------------------------------------------------------------------- 1 | number = 2 2 | 3 | if number == 1: 4 | print('1です') 5 | 6 | if number == 2: 7 | print('2です') 8 | -------------------------------------------------------------------------------- /techgym_group_lesson.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/techgym_group_lesson.pdf -------------------------------------------------------------------------------- /000_techgym_for_media.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/000_techgym_for_media.pdf -------------------------------------------------------------------------------- /chirashi/techgym-omo_ol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/chirashi/techgym-omo_ol.pdf -------------------------------------------------------------------------------- /chirashi/techgym-ura_ol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/chirashi/techgym-ura_ol.pdf -------------------------------------------------------------------------------- /01_Pythonオープン講座(6題バージョン).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techgymjp/techgym_python_open/HEAD/01_Pythonオープン講座(6題バージョン).pdf -------------------------------------------------------------------------------- /Lb65.py: -------------------------------------------------------------------------------- 1 | def calc(a, b): 2 | result = a * b 3 | print(str(a) + ' x ' + str(b)) 4 | return result 5 | 6 | calc_result = calc(3, 4) 7 | -------------------------------------------------------------------------------- /x2Ns.py: -------------------------------------------------------------------------------- 1 | number = 3 2 | 3 | if number == 1: 4 | print('1です') 5 | elif number == 2: 6 | print('2です') 7 | else: 8 | print('条件に当てはまりません') -------------------------------------------------------------------------------- /U2gr.py: -------------------------------------------------------------------------------- 1 | number = 3 2 | 3 | if number == 1: 4 | print('1です') 5 | elif number == 2 or number == 3: 6 | print('2か3です') 7 | else: 8 | print('条件に当てはまりません') -------------------------------------------------------------------------------- /Jw2U.py: -------------------------------------------------------------------------------- 1 | def calc(a, b): 2 | result = a * b 3 | print(str(a) + ' x ' + str(b)) 4 | return result 5 | 6 | calc_result = calc(3, 4) 7 | print(str(calc_result)) 8 | -------------------------------------------------------------------------------- /a5Qm.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | print('じゃんけんスタート') 4 | 5 | print('あなたの手を入力してください') 6 | my_hand = int(input('0:グー, 1:チョキ, 2:パー')) 7 | you_hand = random.randint(0, 2) 8 | 9 | hand_diff = my_hand - you_hand 10 | 11 | if hand_diff == 0: 12 | print('あいこ') 13 | elif hand_diff == -1 or hand_diff == 2: 14 | print('勝ち') 15 | else: 16 | print('負け') 17 | -------------------------------------------------------------------------------- /y5YT.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | print('じゃんけんスタート') 4 | 5 | print('あなたの手を入力してください') 6 | my_hand = int(input('0:グー, 1:チョキ, 2:パー')) 7 | you_hand = random.randint(0, 2) 8 | 9 | if my_hand == 0: 10 | if you_hand == 0: 11 | print('あいこ') 12 | elif you_hand == 1: 13 | print('勝ち') 14 | elif my_hand == 1: 15 | if you_hand == 0: 16 | print('負け') 17 | elif you_hand == 1: 18 | print('あいこ') 19 | -------------------------------------------------------------------------------- /gP6s.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | def start_message(): 4 | print('じゃんけんスタート') 5 | 6 | def get_my_hand(): 7 | print('あなたの手を入力してください') 8 | return int(input('0:グー, 1:チョキ, 2:パー')) 9 | 10 | def get_you_hand(): 11 | return random.randint(0, 2) 12 | 13 | def view_result(hand_diff): 14 | if hand_diff == 0: 15 | print('あいこ') 16 | elif hand_diff == -1 or hand_diff == 2: 17 | print('勝ち') 18 | else: 19 | print('負け') 20 | 21 | start_message() 22 | 23 | my_hand = get_my_hand() 24 | you_hand = get_you_hand() 25 | hand_diff = my_hand - you_hand 26 | 27 | view_result(hand_diff) 28 | -------------------------------------------------------------------------------- /v7Pi.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | print('じゃんけんスタート') 4 | 5 | print('あなたの手を入力してください') 6 | my_hand = int(input('0:グー, 1:チョキ, 2:パー')) 7 | you_hand = random.randint(0, 2) 8 | 9 | if my_hand == 0: 10 | if you_hand == 0: 11 | print('あいこ') 12 | elif you_hand == 1: 13 | print('勝ち') 14 | elif you_hand == 2: 15 | print('負け') 16 | elif my_hand == 1: 17 | if you_hand == 0: 18 | print('負け') 19 | elif you_hand == 1: 20 | print('あいこ') 21 | elif you_hand == 2: 22 | print('勝ち') 23 | elif my_hand == 2: 24 | if you_hand == 0: 25 | print('勝ち') 26 | elif you_hand == 1: 27 | print('負け') 28 | elif you_hand == 2: 29 | print('あいこ') 30 | -------------------------------------------------------------------------------- /invader/gene-sound.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import wave 3 | import struct 4 | 5 | def generate_tone(filename, freq=440, duration_ms=200, volume=0.5, sample_rate=44100): 6 | n_samples = int(sample_rate * duration_ms / 1000) 7 | t = np.linspace(0, duration_ms / 1000, n_samples, False) 8 | tone = np.sin(freq * 2 * np.pi * t) * volume 9 | 10 | # 16bit PCMデータに変換 11 | audio = (tone * 32767).astype(np.int16) 12 | 13 | with wave.open(filename, "w") as f: 14 | f.setparams((1, 2, sample_rate, n_samples, "NONE", "not compressed")) 15 | for sample in audio: 16 | f.writeframes(struct.pack('h', sample)) 17 | 18 | # 例:各効果音の生成 19 | generate_tone("shoot.wav", freq=800, duration_ms=100, volume=0.4) 20 | generate_tone("hit.wav", freq=600, duration_ms=150, volume=0.5) 21 | generate_tone("player_hit.wav", freq=300, duration_ms=300, volume=0.5) 22 | generate_tone("win.wav", freq=1000, duration_ms=500, volume=0.6) 23 | generate_tone("lose.wav", freq=200, duration_ms=500, volume=0.6) 24 | 25 | print("効果音ファイルを生成しました。") 26 | -------------------------------------------------------------------------------- /hit_ball_2.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | def play(try_count): 4 | hit_count = 0 5 | ball_count = 0 6 | my_answers = [] 7 | 8 | input_string = "" 9 | while True: 10 | tmp_string = input('【' + str(try_count) + '回目】違う数字4つの組み合わせを答えてください') 11 | if len(tmp_string) == 4 and tmp_string.isdigit(): 12 | input_string = tmp_string 13 | break 14 | #回答のリスト生成 15 | for i in range(0, 4): 16 | my_answers.append(int(input_string[i])) 17 | #ヒット探し 18 | for i in range(0, 4): 19 | if my_answers[i] == answers[i]: 20 | hit_count += 1 21 | #ボール探し 22 | for i in range(0, 4): 23 | if my_answers[i] in answers: 24 | ball_count += 1 #hit数が重複している 25 | ball_count -= hit_count 26 | #判定結果表示 27 | if hit_count == 4: 28 | print('おめでとう') 29 | print('正解は') 30 | print(answers) 31 | print(str(try_count) + '回目での成功。お疲れ様でした') 32 | return False 33 | else: 34 | print(str(hit_count) + 'ヒット' + str(ball_count) + 'ボールです') 35 | return True 36 | 37 | #正解リスト設定 38 | numbers = list(range(0, 10)) 39 | answers = random.sample(numbers, 4) 40 | 41 | try_count = 1 42 | while True: 43 | if play(try_count): 44 | try_count += 1 45 | else: 46 | break 47 | 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | MANIFEST 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | .pytest_cache/ 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | local_settings.py 57 | db.sqlite3 58 | 59 | # Flask stuff: 60 | instance/ 61 | .webassets-cache 62 | 63 | # Scrapy stuff: 64 | .scrapy 65 | 66 | # Sphinx documentation 67 | docs/_build/ 68 | 69 | # PyBuilder 70 | target/ 71 | 72 | # Jupyter Notebook 73 | .ipynb_checkpoints 74 | 75 | # pyenv 76 | .python-version 77 | 78 | # celery beat schedule file 79 | celerybeat-schedule 80 | 81 | # SageMath parsed files 82 | *.sage.py 83 | 84 | # Environments 85 | .env 86 | .venv 87 | env/ 88 | venv/ 89 | ENV/ 90 | env.bak/ 91 | venv.bak/ 92 | 93 | # Spyder project settings 94 | .spyderproject 95 | .spyproject 96 | 97 | # Rope project settings 98 | .ropeproject 99 | 100 | # mkdocs documentation 101 | /site 102 | 103 | # mypy 104 | .mypy_cache/ 105 | -------------------------------------------------------------------------------- /hit_ball.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | try_count = 1 4 | 5 | #ランダムの違う4つの数字の配列を作る 6 | def rand_ints_nodup(a, b, k): 7 | ns = [] 8 | while len(ns) < k: 9 | n = random.randint(a, b) 10 | if not n in ns: 11 | ns.append(n) 12 | return ns 13 | 14 | def play(): 15 | global try_count 16 | hit_count = 0 17 | ball_count = 0 18 | my_answer = input('【' + str(try_count) + '回目】違う数字4つの組み合わせを答えてください') 19 | my_1000s_number = my_answer[-4] 20 | my_100s_number = my_answer[-3] 21 | my_10s_number = my_answer[-2] 22 | my_1s_number = my_answer[-1] 23 | #ヒット探し 24 | if my_1000s_number == con_1000s_number: 25 | hit_count += 1 26 | if my_100s_number == con_100s_number: 27 | hit_count += 1 28 | if my_10s_number == con_10s_number: 29 | hit_count += 1 30 | if my_1s_number == con_1s_number: 31 | hit_count += 1 32 | #ボール探し 33 | if my_1000s_number == con_1s_number or my_1000s_number == con_10s_number or my_1000s_number == con_100s_number: 34 | ball_count += 1 35 | if my_100s_number == con_1s_number or my_100s_number == con_10s_number or my_100s_number == con_1000s_number: 36 | ball_count += 1 37 | if my_10s_number == con_1s_number or my_10s_number == con_100s_number or my_10s_number == con_1000s_number: 38 | ball_count += 1 39 | if my_1s_number == con_10s_number or my_1s_number == con_100s_number or my_1s_number == con_1000s_number: 40 | ball_count += 1 41 | #判定結果表示 42 | if hit_count == 4: 43 | print('おめでとう') 44 | print('正解は' + my_answer + 'です') 45 | print(str(try_count) + '回目での成功。お疲れ様でした') 46 | else: 47 | print(str(hit_count) + 'ヒット' + str(ball_count) + 'ボールです') 48 | try_count += 1 49 | play() 50 | 51 | #正解設定 52 | answer = rand_ints_nodup(0, 9, 4) 53 | con_1s_number = str(answer[3]) 54 | con_10s_number = str(answer[2]) 55 | con_100s_number = str(answer[1]) 56 | con_1000s_number = str(answer[0]) 57 | 58 | play() -------------------------------------------------------------------------------- /invader/hajimete.py: -------------------------------------------------------------------------------- 1 | import pygame 2 | import random 3 | import sys 4 | 5 | # ゲームの初期化 6 | pygame.init() 7 | 8 | # 効果音の初期化 9 | pygame.mixer.init() 10 | try: 11 | shoot_sound = pygame.mixer.Sound("shoot.wav") 12 | invader_hit_sound = pygame.mixer.Sound("hit.wav") 13 | player_hit_sound = pygame.mixer.Sound("player_hit.wav") 14 | win_sound = pygame.mixer.Sound("win.wav") 15 | lose_sound = pygame.mixer.Sound("lose.wav") 16 | except Exception: 17 | class DummySound: 18 | def play(self): pass 19 | shoot_sound = invader_hit_sound = player_hit_sound = win_sound = lose_sound = DummySound() 20 | 21 | # 画面サイズ 22 | WIDTH, HEIGHT = 600, 800 23 | screen = pygame.display.set_mode((WIDTH, HEIGHT)) 24 | pygame.display.set_caption("インベーダーゲーム") 25 | 26 | # 色 27 | WHITE = (255, 255, 255) 28 | BLACK = (0, 0, 0) 29 | GREEN = (0, 255, 0) 30 | RED = (255, 0, 0) 31 | 32 | # プレイヤー設定 33 | player_width, player_height = 60, 20 34 | player_x = WIDTH // 2 - player_width // 2 35 | player_y = HEIGHT - 60 36 | player_speed = 7 37 | 38 | # 弾設定 39 | bullet_width, bullet_height = 5, 15 40 | bullet_speed = 10 41 | bullets = [] 42 | 43 | # インベーダー設定 44 | invader_rows = 5 45 | invader_cols = 8 46 | invader_width, invader_height = 50, 30 47 | invader_padding = 20 48 | invader_offset_x = 50 49 | invader_offset_y = 60 50 | invader_speed = 2 51 | invader_direction = 1 # 1:右, -1:左 52 | 53 | invaders = [] 54 | for row in range(invader_rows): 55 | for col in range(invader_cols): 56 | x = invader_offset_x + col * (invader_width + invader_padding) 57 | y = invader_offset_y + row * (invader_height + invader_padding) 58 | invaders.append(pygame.Rect(x, y, invader_width, invader_height)) 59 | 60 | # 敵の弾 61 | enemy_bullets = [] 62 | enemy_bullet_speed = 5 63 | 64 | # フォント 65 | font = pygame.font.SysFont(None, 48) 66 | 67 | # ゲームオーバー 68 | game_over = False 69 | win = False 70 | 71 | clock = pygame.time.Clock() 72 | 73 | def draw(): 74 | screen.fill(BLACK) 75 | # プレイヤー 76 | pygame.draw.rect(screen, GREEN, (player_x, player_y, player_width, player_height)) 77 | # 弾 78 | for b in bullets: 79 | pygame.draw.rect(screen, WHITE, b) 80 | # インベーダー 81 | for inv in invaders: 82 | pygame.draw.rect(screen, RED, inv) 83 | # 敵の弾 84 | for eb in enemy_bullets: 85 | pygame.draw.rect(screen, (0, 200, 255), eb) 86 | if game_over: 87 | msg = font.render("GAME OVER", True, WHITE) 88 | screen.blit(msg, (WIDTH//2 - msg.get_width()//2, HEIGHT//2 - msg.get_height()//2)) 89 | if win: 90 | msg = font.render("YOU WIN!", True, WHITE) 91 | screen.blit(msg, (WIDTH//2 - msg.get_width()//2, HEIGHT//2 - msg.get_height()//2)) 92 | pygame.display.flip() 93 | 94 | sound_played = False 95 | player_hit_played = False 96 | 97 | while True: 98 | clock.tick(60) 99 | for event in pygame.event.get(): 100 | if event.type == pygame.QUIT: 101 | pygame.quit() 102 | sys.exit() 103 | if not game_over and not win: 104 | if event.type == pygame.KEYDOWN: 105 | if event.key == pygame.K_SPACE: 106 | # 弾を発射 107 | bullet = pygame.Rect(player_x + player_width//2 - bullet_width//2, player_y, bullet_width, bullet_height) 108 | bullets.append(bullet) 109 | # 効果音を確実に再生するためにstopしてからplay 110 | shoot_sound.stop() 111 | shoot_sound.play() 112 | 113 | keys = pygame.key.get_pressed() 114 | if not game_over and not win: 115 | if keys[pygame.K_LEFT] and player_x > 0: 116 | player_x -= player_speed 117 | if keys[pygame.K_RIGHT] and player_x < WIDTH - player_width: 118 | player_x += player_speed 119 | 120 | # 弾の移動 121 | for b in bullets[:]: 122 | b.y -= bullet_speed 123 | if b.y < 0: 124 | bullets.remove(b) 125 | else: 126 | # インベーダーとの当たり判定 127 | for inv in invaders[:]: 128 | if b.colliderect(inv): 129 | invaders.remove(inv) 130 | if b in bullets: 131 | bullets.remove(b) 132 | # 効果音を確実に再生するためにstopしてからplay 133 | invader_hit_sound.stop() 134 | invader_hit_sound.play() 135 | break 136 | 137 | # インベーダーの移動 138 | move_down = False 139 | for inv in invaders: 140 | inv.x += invader_speed * invader_direction 141 | if inv.x <= 0 or inv.x + invader_width >= WIDTH: 142 | move_down = True 143 | if move_down: 144 | invader_direction *= -1 145 | for inv in invaders: 146 | inv.y += invader_height // 2 147 | 148 | # 敵の弾発射 149 | if random.randint(0, 60) == 0 and invaders: 150 | shooter = random.choice(invaders) 151 | eb = pygame.Rect(shooter.x + invader_width//2 - bullet_width//2, shooter.y + invader_height, bullet_width, bullet_height) 152 | enemy_bullets.append(eb) 153 | 154 | # 敵の弾の移動 155 | for eb in enemy_bullets[:]: 156 | eb.y += enemy_bullet_speed 157 | if eb.y > HEIGHT: 158 | enemy_bullets.remove(eb) 159 | elif eb.colliderect(pygame.Rect(player_x, player_y, player_width, player_height)): 160 | game_over = True 161 | if not player_hit_played: 162 | player_hit_sound.stop() 163 | player_hit_sound.play() 164 | player_hit_played = True 165 | 166 | # インベーダーが下まで来たらゲームオーバー 167 | for inv in invaders: 168 | if inv.y + invader_height >= player_y: 169 | game_over = True 170 | if not player_hit_played: 171 | player_hit_sound.stop() 172 | player_hit_sound.play() 173 | player_hit_played = True 174 | 175 | # 勝利判定 176 | if not invaders: 177 | win = True 178 | if not sound_played: 179 | win_sound.stop() 180 | win_sound.play() 181 | sound_played = True 182 | 183 | elif game_over and not sound_played: 184 | lose_sound.stop() 185 | lose_sound.play() 186 | sound_played = True 187 | 188 | draw() 189 | 190 | 191 | 192 | 193 | -------------------------------------------------------------------------------- /chat_bot.yml: -------------------------------------------------------------------------------- 1 | app: 2 | description: Dify講座用に制作したアプリです。 3 | icon: 🤖 4 | icon_background: '#FFEAD5' 5 | mode: advanced-chat 6 | name: udemy-テックジムのチャットボット 7 | use_icon_as_answer_icon: false 8 | dependencies: 9 | - current_identifier: null 10 | type: marketplace 11 | value: 12 | marketplace_plugin_unique_identifier: langgenius/openai:0.0.11@390c87cc0f17370a70d3b214cd71a8de81fe9d6b52e6a38287acde034138b672 13 | kind: app 14 | version: 0.1.5 15 | workflow: 16 | conversation_variables: [] 17 | environment_variables: [] 18 | features: 19 | file_upload: 20 | allowed_file_extensions: 21 | - .JPG 22 | - .JPEG 23 | - .PNG 24 | - .GIF 25 | - .WEBP 26 | - .SVG 27 | allowed_file_types: 28 | - image 29 | allowed_file_upload_methods: 30 | - local_file 31 | - remote_url 32 | enabled: false 33 | fileUploadConfig: 34 | audio_file_size_limit: 50 35 | batch_count_limit: 5 36 | file_size_limit: 15 37 | image_file_size_limit: 10 38 | video_file_size_limit: 100 39 | workflow_file_upload_limit: 10 40 | image: 41 | enabled: false 42 | number_limits: 3 43 | transfer_methods: 44 | - local_file 45 | - remote_url 46 | number_limits: 3 47 | opening_statement: '' 48 | retriever_resource: 49 | enabled: false 50 | sensitive_word_avoidance: 51 | enabled: false 52 | speech_to_text: 53 | enabled: false 54 | suggested_questions: [] 55 | suggested_questions_after_answer: 56 | enabled: false 57 | text_to_speech: 58 | enabled: false 59 | language: '' 60 | voice: '' 61 | graph: 62 | edges: 63 | - data: 64 | isInIteration: false 65 | sourceType: question-classifier 66 | targetType: code 67 | id: 1739284487784-2-1739284505764-target 68 | selected: false 69 | source: '1739284487784' 70 | sourceHandle: '2' 71 | target: '1739284505764' 72 | targetHandle: target 73 | type: custom 74 | zIndex: 0 75 | - data: 76 | isInIteration: false 77 | sourceType: if-else 78 | targetType: answer 79 | id: 1739286297063-false-answer-target 80 | selected: false 81 | source: '1739286297063' 82 | sourceHandle: 'false' 83 | target: answer 84 | targetHandle: target 85 | type: custom 86 | zIndex: 0 87 | - data: 88 | isInIteration: false 89 | sourceType: code 90 | targetType: answer 91 | id: 1739284505764-source-1739284498867-target 92 | selected: false 93 | source: '1739284505764' 94 | sourceHandle: source 95 | target: '1739284498867' 96 | targetHandle: target 97 | type: custom 98 | zIndex: 0 99 | - data: 100 | isInIteration: false 101 | sourceType: if-else 102 | targetType: code 103 | id: 1739286297063-true-1739283045971-target 104 | selected: false 105 | source: '1739286297063' 106 | sourceHandle: 'true' 107 | target: '1739283045971' 108 | targetHandle: target 109 | type: custom 110 | zIndex: 0 111 | - data: 112 | isInIteration: false 113 | sourceType: code 114 | targetType: answer 115 | id: 1739283045971-source-1739284338072-target 116 | selected: false 117 | source: '1739283045971' 118 | sourceHandle: source 119 | target: '1739284338072' 120 | targetHandle: target 121 | type: custom 122 | zIndex: 0 123 | - data: 124 | isInIteration: false 125 | sourceType: start 126 | targetType: question-classifier 127 | id: 1739280377346-source-1739284487784-target 128 | selected: false 129 | source: '1739280377346' 130 | sourceHandle: source 131 | target: '1739284487784' 132 | targetHandle: target 133 | type: custom 134 | zIndex: 0 135 | - data: 136 | isInIteration: false 137 | sourceType: question-classifier 138 | targetType: knowledge-retrieval 139 | id: 1739284487784-1-1739530240931-target 140 | selected: false 141 | source: '1739284487784' 142 | sourceHandle: '1' 143 | target: '1739530240931' 144 | targetHandle: target 145 | type: custom 146 | zIndex: 0 147 | - data: 148 | isInIteration: false 149 | sourceType: knowledge-retrieval 150 | targetType: llm 151 | id: 1739530240931-source-llm-target 152 | selected: false 153 | source: '1739530240931' 154 | sourceHandle: source 155 | target: llm 156 | targetHandle: target 157 | type: custom 158 | zIndex: 0 159 | - data: 160 | isInIteration: false 161 | sourceType: llm 162 | targetType: if-else 163 | id: llm-source-1739530513253-target 164 | selected: false 165 | source: llm 166 | sourceHandle: source 167 | target: '1739530513253' 168 | targetHandle: target 169 | type: custom 170 | zIndex: 0 171 | - data: 172 | isInIteration: false 173 | sourceType: if-else 174 | targetType: code 175 | id: 1739530513253-true-1739280589362-target 176 | selected: false 177 | source: '1739530513253' 178 | sourceHandle: 'true' 179 | target: '1739280589362' 180 | targetHandle: target 181 | type: custom 182 | zIndex: 0 183 | - data: 184 | isInIteration: false 185 | sourceType: if-else 186 | targetType: answer 187 | id: 1739530513253-false-1739530749873-target 188 | source: '1739530513253' 189 | sourceHandle: 'false' 190 | target: '1739530749873' 191 | targetHandle: target 192 | type: custom 193 | zIndex: 0 194 | - data: 195 | isInIteration: false 196 | sourceType: code 197 | targetType: llm 198 | id: 1739280589362-source-1739530786233-target 199 | source: '1739280589362' 200 | sourceHandle: source 201 | target: '1739530786233' 202 | targetHandle: target 203 | type: custom 204 | zIndex: 0 205 | - data: 206 | isInIteration: false 207 | sourceType: llm 208 | targetType: if-else 209 | id: 1739530786233-source-1739286297063-target 210 | source: '1739530786233' 211 | sourceHandle: source 212 | target: '1739286297063' 213 | targetHandle: target 214 | type: custom 215 | zIndex: 0 216 | nodes: 217 | - data: 218 | desc: '' 219 | selected: false 220 | title: 開始 221 | type: start 222 | variables: [] 223 | height: 53 224 | id: '1739280377346' 225 | position: 226 | x: 750.0809449645283 227 | y: 202.00574104931894 228 | positionAbsolute: 229 | x: 750.0809449645283 230 | y: 202.00574104931894 231 | selected: false 232 | sourcePosition: right 233 | targetPosition: left 234 | type: custom 235 | width: 243 236 | - data: 237 | context: 238 | enabled: true 239 | variable_selector: 240 | - '1739530240931' 241 | - result 242 | desc: '' 243 | memory: 244 | query_prompt_template: '{{#sys.query#}}' 245 | role_prefix: 246 | assistant: '' 247 | user: '' 248 | window: 249 | enabled: false 250 | size: 3 251 | model: 252 | completion_params: 253 | temperature: 0.7 254 | mode: chat 255 | name: gpt-4o-mini 256 | provider: langgenius/openai/openai 257 | prompt_template: 258 | - id: 0d6fd02f-75e6-4119-99c0-f5f7bf7d9526 259 | role: system 260 | text: 'ユーザーからの質問に対して、情報をもとに回答を生成してください。もし近しい情報がない場合は「unanswerable」とだけ回答すること。  261 | 262 | 263 | 情報 264 | 265 | {{#context#}}' 266 | selected: false 267 | title: LLM 268 | type: llm 269 | variables: [] 270 | vision: 271 | enabled: false 272 | height: 89 273 | id: llm 274 | position: 275 | x: 1046.8950060160985 276 | y: 347.04731647655007 277 | positionAbsolute: 278 | x: 1046.8950060160985 279 | y: 347.04731647655007 280 | selected: false 281 | sourcePosition: right 282 | targetPosition: left 283 | type: custom 284 | width: 243 285 | - data: 286 | answer: '{{#1739530786233.text#}}' 287 | desc: '' 288 | selected: false 289 | title: 回答 290 | type: answer 291 | variables: [] 292 | height: 104 293 | id: answer 294 | position: 295 | x: 2212.0551952319747 296 | y: 609.4486616537449 297 | positionAbsolute: 298 | x: 2212.0551952319747 299 | y: 609.4486616537449 300 | selected: false 301 | sourcePosition: right 302 | targetPosition: left 303 | type: custom 304 | width: 243 305 | - data: 306 | code: "import requests\n\ndef main() -> dict:\n url = \"https://script.google.com/macros/s/AKfycbx55X2Ry4ywhUid1R_MrOTB_mkYLny04lTkhwxzDpAzejRe40mILJjJSAEnTGWsJfQu/exec\"\ 307 | \n \n try:\n response = requests.get(url)\n response.raise_for_status()\n\ 308 | \ data = response.json()\n return {'result': str(data)}\n\ 309 | \ except requests.exceptions.RequestException:\n return {'result':\ 310 | \ None}" 311 | code_language: python3 312 | desc: '' 313 | outputs: 314 | result: 315 | children: null 316 | type: string 317 | selected: false 318 | title: スプレッドシートから情報取得 319 | type: code 320 | variables: [] 321 | height: 53 322 | id: '1739280589362' 323 | position: 324 | x: 1631.6836915425356 325 | y: 202.00574104931894 326 | positionAbsolute: 327 | x: 1631.6836915425356 328 | y: 202.00574104931894 329 | selected: false 330 | sourcePosition: right 331 | targetPosition: left 332 | type: custom 333 | width: 243 334 | - data: 335 | code: "import requests\nimport urllib.parse\nURL = \"https://script.google.com/macros/s/AKfycbx55X2Ry4ywhUid1R_MrOTB_mkYLny04lTkhwxzDpAzejRe40mILJjJSAEnTGWsJfQu/exec\"\ 336 | \ndef main(id: str, content: str):\n data = {\n \"action\": \"\ 337 | add_question\",\n \"id\": id,\n \"content\": urllib.parse.quote(content)\n\ 338 | \ }\n try:\n response = requests.post(URL, data=data)\n \ 339 | \ response.raise_for_status()\n return {'result': 'ok'}\n \ 340 | \ except requests.exceptions.RequestException as e:\n print(f\"Error\ 341 | \ posting question: {e}\")\n return None" 342 | code_language: python3 343 | desc: '' 344 | outputs: 345 | result: 346 | children: null 347 | type: string 348 | selected: false 349 | title: 回答できなかった質問を記録 350 | type: code 351 | variables: 352 | - value_selector: 353 | - sys 354 | - conversation_id 355 | variable: id 356 | - value_selector: 357 | - sys 358 | - query 359 | variable: content 360 | height: 53 361 | id: '1739283045971' 362 | position: 363 | x: 2212.0551952319747 364 | y: 202.00574104931894 365 | positionAbsolute: 366 | x: 2212.0551952319747 367 | y: 202.00574104931894 368 | selected: false 369 | sourcePosition: right 370 | targetPosition: left 371 | type: custom 372 | width: 243 373 | - data: 374 | answer: 'ご質問に関する情報が取得できませんでした。 375 | 376 | ご質問の内容については記録させていただき、後日学習します。 377 | 378 | 379 | 回答の用意が出来次第、お客様にご連絡することも可能ですので、お名前とご連絡先を教えていただけますか?追加での質問もあればご記載ください。 380 | 381 | 382 | 連絡を希望しない場合も引き続きご質問いただけます。 383 | 384 | 385 | (コピーの上お使いください) 386 | 387 | お名前: 388 | 389 | メールアドレス: 390 | 391 | その他ご質問・ご要望など:' 392 | desc: '' 393 | selected: false 394 | title: 回答 2 395 | type: answer 396 | variables: [] 397 | height: 277 398 | id: '1739284338072' 399 | position: 400 | x: 2212.0551952319747 401 | y: 275.4407625154072 402 | positionAbsolute: 403 | x: 2212.0551952319747 404 | y: 275.4407625154072 405 | selected: false 406 | sourcePosition: right 407 | targetPosition: left 408 | type: custom 409 | width: 243 410 | - data: 411 | classes: 412 | - id: '1' 413 | name: 質問 414 | - id: '2' 415 | name: ユーザーの連絡先に関する情報 416 | desc: '' 417 | instructions: '' 418 | model: 419 | completion_params: 420 | temperature: 0.7 421 | mode: chat 422 | name: gpt-4o-mini 423 | provider: langgenius/openai/openai 424 | query_variable_selector: 425 | - '1739280377346' 426 | - sys.query 427 | selected: false 428 | title: 質問かどうか分類 429 | topics: [] 430 | type: question-classifier 431 | vision: 432 | enabled: false 433 | height: 171 434 | id: '1739284487784' 435 | position: 436 | x: 750.0809449645283 437 | y: 297.60729519228016 438 | positionAbsolute: 439 | x: 750.0809449645283 440 | y: 297.60729519228016 441 | selected: false 442 | sourcePosition: right 443 | targetPosition: left 444 | type: custom 445 | width: 243 446 | - data: 447 | answer: '連絡先をご教示いただきありがとうございました。 448 | 449 | 後日担当者よりご連絡いたしますので、しばらくお待ちください。 450 | 451 | 452 | 引き続き質問があればお伝えください。' 453 | desc: '' 454 | selected: false 455 | title: 返答 456 | type: answer 457 | variables: [] 458 | height: 165 459 | id: '1739284498867' 460 | position: 461 | x: 1342.1398014648446 462 | y: 491.7071183576908 463 | positionAbsolute: 464 | x: 1342.1398014648446 465 | y: 491.7071183576908 466 | selected: false 467 | sourcePosition: right 468 | targetPosition: left 469 | type: custom 470 | width: 243 471 | - data: 472 | code: "import requests\nimport urllib.parse\nURL = \"https://script.google.com/macros/s/AKfycbx55X2Ry4ywhUid1R_MrOTB_mkYLny04lTkhwxzDpAzejRe40mILJjJSAEnTGWsJfQu/exec\"\ 473 | \ndef main(id: str, address: str):\n data = {\n \"action\": \"\ 474 | add_contact\",\n \"id\": id,\n \"address\": urllib.parse.quote(address)\n\ 475 | \ }\n try:\n response = requests.post(URL, data=data)\n \ 476 | \ response.raise_for_status()\n return {'result': 'ok'}\n \ 477 | \ except requests.exceptions.RequestException as e:\n print(f\"Error\ 478 | \ posting contact: {e}\")\n return None" 479 | code_language: python3 480 | desc: '' 481 | outputs: 482 | result: 483 | children: null 484 | type: string 485 | selected: false 486 | title: 連絡先の追加 487 | type: code 488 | variables: 489 | - value_selector: 490 | - sys 491 | - conversation_id 492 | variable: id 493 | - value_selector: 494 | - sys 495 | - query 496 | variable: address 497 | height: 53 498 | id: '1739284505764' 499 | position: 500 | x: 1046.8950060160985 501 | y: 491.7071183576908 502 | positionAbsolute: 503 | x: 1046.8950060160985 504 | y: 491.7071183576908 505 | selected: true 506 | sourcePosition: right 507 | targetPosition: left 508 | type: custom 509 | width: 243 510 | - data: 511 | cases: 512 | - case_id: 'true' 513 | conditions: 514 | - comparison_operator: contains 515 | id: 399635ad-3805-4c3a-a582-261cd3319aa9 516 | value: No Item 517 | varType: string 518 | variable_selector: 519 | - '1739530786233' 520 | - text 521 | id: 'true' 522 | logical_operator: and 523 | desc: '' 524 | selected: false 525 | title: IF/ELSE 526 | type: if-else 527 | height: 125 528 | id: '1739286297063' 529 | position: 530 | x: 1922.6467080715329 531 | y: 325.0905254879139 532 | positionAbsolute: 533 | x: 1922.6467080715329 534 | y: 325.0905254879139 535 | selected: false 536 | sourcePosition: right 537 | targetPosition: left 538 | type: custom 539 | width: 243 540 | - data: 541 | dataset_ids: 542 | - XxMv5UYyUFPV2auBF3R9IPGrsaGIfsDVb37ftcclPgNvRzkdkF69rJ75HUsNjnNY 543 | desc: '' 544 | multiple_retrieval_config: 545 | reranking_enable: true 546 | reranking_mode: weighted_score 547 | reranking_model: 548 | model: '' 549 | provider: '' 550 | score_threshold: null 551 | top_k: 4 552 | weights: 553 | keyword_setting: 554 | keyword_weight: 0.3 555 | vector_setting: 556 | embedding_model_name: text-embedding-3-large 557 | embedding_provider_name: langgenius/openai/openai 558 | vector_weight: 0.7 559 | query_variable_selector: 560 | - '1739280377346' 561 | - sys.query 562 | retrieval_mode: multiple 563 | selected: false 564 | title: 知識取得 565 | type: knowledge-retrieval 566 | height: 91 567 | id: '1739530240931' 568 | position: 569 | x: 1046.8950060160985 570 | y: 202.00574104931894 571 | positionAbsolute: 572 | x: 1046.8950060160985 573 | y: 202.00574104931894 574 | selected: false 575 | sourcePosition: right 576 | targetPosition: left 577 | type: custom 578 | width: 243 579 | - data: 580 | cases: 581 | - case_id: 'true' 582 | conditions: 583 | - comparison_operator: contains 584 | id: 4baa4561-1094-4dc5-97ca-33f20cb2b90c 585 | value: unanswerable 586 | varType: string 587 | variable_selector: 588 | - llm 589 | - text 590 | id: 'true' 591 | logical_operator: and 592 | desc: '' 593 | selected: false 594 | title: IF/ELSE 2 595 | type: if-else 596 | height: 125 597 | id: '1739530513253' 598 | position: 599 | x: 1342.1398014648446 600 | y: 202.00574104931894 601 | positionAbsolute: 602 | x: 1342.1398014648446 603 | y: 202.00574104931894 604 | selected: false 605 | sourcePosition: right 606 | targetPosition: left 607 | type: custom 608 | width: 243 609 | - data: 610 | answer: '{{#llm.text#}}' 611 | desc: '' 612 | selected: false 613 | title: 回答 4 614 | type: answer 615 | variables: [] 616 | height: 104 617 | id: '1739530749873' 618 | position: 619 | x: 1631.6836915425356 620 | y: 275.4407625154072 621 | positionAbsolute: 622 | x: 1631.6836915425356 623 | y: 275.4407625154072 624 | selected: false 625 | sourcePosition: right 626 | targetPosition: left 627 | type: custom 628 | width: 243 629 | - data: 630 | context: 631 | enabled: false 632 | variable_selector: [] 633 | desc: '' 634 | model: 635 | completion_params: 636 | temperature: 0.7 637 | mode: chat 638 | name: gpt-4o-mini 639 | provider: langgenius/openai/openai 640 | prompt_template: 641 | - id: 163dfa4b-d4a0-40d9-bc31-ad234424e752 642 | role: system 643 | text: 'ユーザーからの質問に対して、以下のFAQリストをもとに回答を生成してください。もし当てはまる情報がない場合は「No Item」とだけ回答すること。  644 | 645 | 646 | FAQリスト 647 | 648 | {{#1739280589362.result#}}' 649 | - id: 34e820d3-fa23-478c-a3f7-e45d447a53b8 650 | role: user 651 | text: '{{#sys.query#}}' 652 | selected: false 653 | title: LLM 2 654 | type: llm 655 | variables: [] 656 | vision: 657 | enabled: false 658 | height: 89 659 | id: '1739530786233' 660 | position: 661 | x: 1922.6467080715329 662 | y: 202.00574104931894 663 | positionAbsolute: 664 | x: 1922.6467080715329 665 | y: 202.00574104931894 666 | selected: false 667 | sourcePosition: right 668 | targetPosition: left 669 | type: custom 670 | width: 243 671 | viewport: 672 | x: -623.9074262194733 673 | y: -13.01811518137373 674 | zoom: 0.8307422529795685 675 | -------------------------------------------------------------------------------- /kessan.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 決算書作成スプレッドシート 7 | 129 | 130 | 131 |
132 |
133 | 134 | 135 | 136 | 137 |
138 | 139 | 140 |
141 |

取引入力シート

142 |
143 | 使い方: 144 |
    145 |
  1. 銀行口座の取引データを下の表に入力してください
  2. 146 |
  3. 各取引に適切な勘定科目を選択してください
  4. 147 |
  5. 事業用の取引のみチェックを入れてください
  6. 148 |
  7. 入力後、「計算実行」ボタンを押してください
  8. 149 |
150 |
151 | 借入金返済について:
152 | • 借入時:勘定科目「借入金(借入時)」を選択、入金額に金額を入力
153 | • 返済時(元本):勘定科目「借入金返済(元本)」を選択、出金額に元本返済額を入力
154 | • 返済時(利息):勘定科目「支払利息」を選択、出金額に利息分を入力
155 | ※ 元本返済と利息支払いは別々の行で入力してください 156 |
157 |
158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 204 | 205 | 206 | 207 | 208 |
日付摘要入金額出金額勘定科目事業用削除
179 | 203 |
209 | 210 |
211 | 212 | 213 |
214 |

試算表

215 |
216 | 注意: 取引入力シートで「計算実行」を押してから確認してください。 217 |
218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 |
勘定科目借方合計貸方合計差額(借方)差額(貸方)
231 |
232 | 233 | 234 |
235 |

損益計算書

236 |
237 | 注意: 取引入力シートで「計算実行」を押してから確認してください。 238 |
239 | 240 |

収益の部

241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 |
科目金額
251 | 252 |

費用の部

253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 |
科目金額
263 | 264 |

税金・損益

265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 287 | 288 |
税引前当期純利益0
当期純利益(税引後)0
280 |
281 | 税金について:
282 | • 法人の場合:税引前利益に約30%の法人税等がかかります
283 | • 個人事業主の場合:所得税・住民税・事業税等の計算が必要です
284 | • 正確な税額は税理士にご相談ください 285 |
286 |
289 |
290 | 291 | 292 |
293 |

貸借対照表

294 |
295 | 注意: 取引入力シートで「計算実行」を押してから確認してください。 296 |
297 | 298 |
299 |
300 |

資産の部

301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 |
科目金額
311 |
312 | 313 |
314 |

負債・純資産の部

315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 |
科目金額
325 |
326 |
327 |
328 |
329 | 330 | 722 | 723 | --------------------------------------------------------------------------------