|  |  | @@ -52,10 +52,10 @@ class Main: | 
		
	
		
			
			|  |  |  | observer = ephem.Observer () | 
		
	
		
			
			|  |  |  | observer.lat, observer.lon = '35', '139' | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # き太く陽 | 
		
	
		
			
			|  |  |  | # き太く陽オブジェクト | 
		
	
		
			
			|  |  |  | sun = ephem.Sun () | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 大月ヨヨコ | 
		
	
		
			
			|  |  |  | # 大月ヨヨコ・オブジェクト | 
		
	
		
			
			|  |  |  | moon = ephem.Moon () | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 吹き出し | 
		
	
	
		
			
				|  |  | @@ -79,6 +79,19 @@ class Main: | 
		
	
		
			
			|  |  |  | pygame.image.load ('bg-night.jpg'), | 
		
	
		
			
			|  |  |  | (CWindow.WIDTH, CWindow.HEIGHT)) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 背景の草 | 
		
	
		
			
			|  |  |  | bg_grass: pygame.Surface = pygame.transform.scale ( | 
		
	
		
			
			|  |  |  | pygame.image.load ('bg-grass.png'), | 
		
	
		
			
			|  |  |  | (CWindow.WIDTH, CWindow.HEIGHT)) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # き太く陽 | 
		
	
		
			
			|  |  |  | kita: pygame.Surface = pygame.transform.scale ( | 
		
	
		
			
			|  |  |  | pygame.image.load ('sun.png'), (200, 200)) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 大月ヨヨコ | 
		
	
		
			
			|  |  |  | jojoko: pygame.Surface = pygame.transform.scale ( | 
		
	
		
			
			|  |  |  | pygame.image.load ('moon.png'), (200, 200)) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 音声再生器の初期化 | 
		
	
		
			
			|  |  |  | pygame.mixer.init (frequency = 44100) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -110,7 +123,7 @@ class Main: | 
		
	
		
			
			|  |  |  | histories: list = [] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | while (True): | 
		
	
		
			
			|  |  |  | # 観測値の日づけ更新 | 
		
	
		
			
			|  |  |  | # 観測地の日づけ更新 | 
		
	
		
			
			|  |  |  | observer.date: datetime = datetime.now ().date () | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 日の出開始 | 
		
	
	
		
			
				|  |  | @@ -129,9 +142,6 @@ class Main: | 
		
	
		
			
			|  |  |  | # 日の入終了 | 
		
	
		
			
			|  |  |  | sunset_end: datetime = sunset_start + timedelta (hours = 1) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | cls.draw_bg (screen, bg_day, bg_evening, bg_night, | 
		
	
		
			
			|  |  |  | sunrise_start, sunrise_end, sunset_start, sunset_end) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 月の出開始 | 
		
	
		
			
			|  |  |  | 'todo' | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -144,6 +154,18 @@ class Main: | 
		
	
		
			
			|  |  |  | # 月の入終了 | 
		
	
		
			
			|  |  |  | 'todo' | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 日の角度 | 
		
	
		
			
			|  |  |  | observer_with_time: ephem.Observer = observer | 
		
	
		
			
			|  |  |  | observer_with_time.date = datetime.now () - timedelta (hours = 9) | 
		
	
		
			
			|  |  |  | sun.compute (observer_with_time) | 
		
	
		
			
			|  |  |  | sun_alt: float = CommonModule.rad_to_deg (sun.alt) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 背景描画 | 
		
	
		
			
			|  |  |  | cls.draw_bg (screen, bg_day, bg_evening, bg_night, bg_grass, | 
		
	
		
			
			|  |  |  | kita, jojoko, | 
		
	
		
			
			|  |  |  | sunrise_start, sunrise_end, sunset_start, sunset_end, | 
		
	
		
			
			|  |  |  | sun_alt) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 左上に時刻表示 | 
		
	
		
			
			|  |  |  | for i in range (4): | 
		
	
		
			
			|  |  |  | screen.blit ( | 
		
	
	
		
			
				|  |  | @@ -182,11 +204,13 @@ class Main: | 
		
	
		
			
			|  |  |  | # 履歴に追加 | 
		
	
		
			
			|  |  |  | histories = (histories | 
		
	
		
			
			|  |  |  | + [{'role': 'user',      'content': message}, | 
		
	
		
			
			|  |  |  | {'role': 'assistant', 'content': answer}])[(-12):] | 
		
	
		
			
			|  |  |  | {'role': 'assistant', 'content': answer}])[(-12):] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # ログ書込み | 
		
	
		
			
			|  |  |  | with open ('log.txt', 'a') as f: | 
		
	
		
			
			|  |  |  | f.write (f'{datetime.now ()}\t{json.dumps (chat_item.__dict__)}\t{answer}\n') | 
		
	
		
			
			|  |  |  | f.write (f'{datetime.now ()}\t' | 
		
	
		
			
			|  |  |  | + f'{json.dumps (chat_item.__dict__)}\t' | 
		
	
		
			
			|  |  |  | + f'{answer}\n') | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # 吹出し描画(ニジカは上,ゴートうは下) | 
		
	
		
			
			|  |  |  | if nizika_mode: | 
		
	
	
		
			
				|  |  | @@ -204,7 +228,8 @@ class Main: | 
		
	
		
			
			|  |  |  | screen.blit ( | 
		
	
		
			
			|  |  |  | user_font.render ( | 
		
	
		
			
			|  |  |  | '> ' + (message | 
		
	
		
			
			|  |  |  | if (CommonModule.len_by_full (message) | 
		
	
		
			
			|  |  |  | if (CommonModule.len_by_full ( | 
		
	
		
			
			|  |  |  | message) | 
		
	
		
			
			|  |  |  | <= 21) | 
		
	
		
			
			|  |  |  | else (CommonModule.mid_by_full ( | 
		
	
		
			
			|  |  |  | message, 0, 19.5) | 
		
	
	
		
			
				|  |  | @@ -266,8 +291,10 @@ class Main: | 
		
	
		
			
			|  |  |  | break | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | cls.draw_bg (screen, bg_day, bg_evening, bg_night, | 
		
	
		
			
			|  |  |  | bg_grass, kita, jojoko, | 
		
	
		
			
			|  |  |  | sunrise_start, sunrise_end, | 
		
	
		
			
			|  |  |  | sunset_start, sunset_end) | 
		
	
		
			
			|  |  |  | sunset_start, sunset_end, | 
		
	
		
			
			|  |  |  | sun_alt) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | chat_item.author = {'name':     'ゴートうひとり' if goatoh_talking else '伊地知ニジカ', | 
		
	
		
			
			|  |  |  | 'id':       '', | 
		
	
	
		
			
				|  |  | @@ -297,10 +324,14 @@ class Main: | 
		
	
		
			
			|  |  |  | bg_day:         pygame.Surface, | 
		
	
		
			
			|  |  |  | bg_evening:     pygame.Surface, | 
		
	
		
			
			|  |  |  | bg_night:       pygame.Surface, | 
		
	
		
			
			|  |  |  | bg_grass:       pygame.Surface, | 
		
	
		
			
			|  |  |  | kita:           pygame.Surface, | 
		
	
		
			
			|  |  |  | jojoko:         pygame.Surface, | 
		
	
		
			
			|  |  |  | sunrise_start:  datetime, | 
		
	
		
			
			|  |  |  | sunrise_end:    datetime, | 
		
	
		
			
			|  |  |  | sunset_start:   datetime, | 
		
	
		
			
			|  |  |  | sunset_end:     datetime) \ | 
		
	
		
			
			|  |  |  | sunset_end:     datetime, | 
		
	
		
			
			|  |  |  | sun_alt:        float) \ | 
		
	
		
			
			|  |  |  | -> None: | 
		
	
		
			
			|  |  |  | sunrise_centre: datetime = ( | 
		
	
		
			
			|  |  |  | sunrise_start + (sunrise_end - sunrise_start) / 2) | 
		
	
	
		
			
				|  |  | @@ -321,10 +352,17 @@ class Main: | 
		
	
		
			
			|  |  |  | bg_evening.set_alpha (255 - ((abs (dt - sunset_centre) * 510) | 
		
	
		
			
			|  |  |  | / (sunset_end - sunset_centre))) | 
		
	
		
			
			|  |  |  | else: | 
		
	
		
			
			|  |  |  | return | 
		
	
		
			
			|  |  |  | bg_evening.set_alpha (0) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | screen.blit (bg_evening, (0, 0)) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if -10 <= sun_alt < 40: | 
		
	
		
			
			|  |  |  | y = ((CWindow.HEIGHT / 2 + 100) | 
		
	
		
			
			|  |  |  | - (CWindow.HEIGHT / 2 + 200) / 30 * sun_alt) | 
		
	
		
			
			|  |  |  | screen.blit (kita, kita.get_rect (center = (400, y))) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | screen.blit (bg_grass, (0, 0)) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if __name__ == '__main__': | 
		
	
		
			
			|  |  |  | Main.main (sys.argv, len (sys.argv)) | 
		
	
	
		
			
				|  |  | 
 |