前提・実現したいこと
Pythonでブラックジャックを作っているのですが、ソースコードが非常に長くなってしまい、別のファイルに処理を移して必要に応じて読み込むことで、ソースコードを短縮したいと思いました。
発生している問題・エラーメッセージ
関数やクラスをimportする方法は見つかったのですが、どうしてもファイル自体をimportする方法が見つかりませんでした。
該当のソースコード
import random
import sys
import time
import pygame
import mutagen
serect='99'
ranking =[]
playerlist =''
text =''
mainmenu = 'main'
play = open('playerlist.txt','r+', encoding="utf-8")
text = play.read()
for text in play:
playerlist = (playerlist) + (text)
playerlist = text
print('ブラックジャック')
print('メインメニューです。')
while mainmenu ==('main'):
mainmenu =input('ランキングを表示する場合は1、データをロードする場合は2を、新規作成の場合は3、データを削除する場合は4、終了する場合は5を入力してください。:')
if mainmenu ==('1'):
print(playerlist)
mainmenu ='main'
if mainmenu ==('2'):
name =input('プレイヤーネームを入れて下さい')
if name in playerlist:
print(name+"さん、ゲームを開始します。")
elif name not in playerlist:
print("プレイヤーが見つかりませんでした。メインメニューに戻ります。")
mainmenu ='main'
if mainmenu ==('3'):
name = input('登録するプレイヤーネームを入力してください。')
play = open('playerlist.txt','r+', encoding="utf-8")
text = play.read()
playerlist = text
playerlist.write(str(name))
print('登録できました。')
mainmenu ='main'
if mainmenu ==('4'):
name = input('削除したいプレイヤーの名前を入力してください。')
playerlist.remove(name)
print('削除できました。')
mainmenu ==('menu')
if mainmenu == ('5'):
sys.exit()
if mainmenu == ('256'):
serect == ('yes')
while serect ==('yes'):
serect='No'
hand = 0
hand = random.randint(1,10)
hand = hand+random.randint(1,10)
dillerhandA = random.randint(1,10)
dillerhand = dillerhandA+random.randint(1,10)
print('相手の手札')
print(dillerhandA)
print('自分の手札')
print(hand)
serect = input('hitかstandどちらにしますか?')
while serect == ('a'):
hand =21
while serect == ('hit'):
hand = hand+random.randint(1,10)
print('自分の手札')
print(hand)
if hand>21:
print('バースト')
sleep(1)
hand=0
serect = input('続けますか?')
break
serect = input('hitかstandどちらにしますか?')
while serect ==('stand'):
while dillerhand <= 16:
dillerhand = dillerhand+random.randint(1,10)
print('相手の手札')
print(dillerhand)
if dillerhand >=16:
if dillerhand>21:
print('バーストしました')
print('相手の手札')
print(dillerhand)
serect = input('続けますか?')
continue
if dillerhand>hand:
print('あなたの負け')
print('相手の手札')
print(dillerhand)
serect = input('続けますか?')
if dillerhand<hand:
print('あなたの勝ち')
print('相手の手札')
print(dillerhand)
serect = input('続けますか?')
if hand == dillerhand:
print('引き分けです')
print('相手の手札')
serect = input('続けますか?')
while serect == ('no'):
print('お疲れさまでした。')
sleep(3)
sys.exit()
上のソースコードの中の
while serect ==('yes'):
serect='No'
hand = 0
hand = random.randint(1,10)
hand = hand+random.randint(1,10)
dillerhandA = random.randint(1,10)
dillerhand = dillerhandA+random.randint(1,10)
print('相手の手札')
print(dillerhandA)
print('自分の手札')
print(hand)
serect = input('hitかstandどちらにしますか?')
while serect == ('a'):
hand =21
while serect == ('hit'):
hand = hand+random.randint(1,10)
print('自分の手札')
print(hand)
if hand>21:
print('バースト')
sleep(1)
hand=0
serect = input('続けますか?')
break
serect = input('hitかstandどちらにしますか?')
while serect ==('stand'):
while dillerhand <= 16:
dillerhand = dillerhand+random.randint(1,10)
print('相手の手札')
print(dillerhand)
if dillerhand >=16:
if dillerhand>21:
print('バーストしました')
print('相手の手札')
print(dillerhand)
serect = input('続けますか?')
continue
if dillerhand>hand:
print('あなたの負け')
print('相手の手札')
print(dillerhand)
serect = input('続けますか?')
if dillerhand<hand:
print('あなたの勝ち')
print('相手の手札')
print(dillerhand)
serect = input('続けますか?')
if hand == dillerhand:
print('引き分けです')
print('相手の手札')
serect = input('続けますか?')
while serect == ('no'):
print('お疲れさまでした。')
sleep(3)
sys.exit()
ここまでを別のファイルに移し、ブラックジャックの処理が終わったらこれより上の処理に戻したいと思っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。