Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions access_all.py → Tubes-main/access_all.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,10 @@ def help(role):
#F16 Exit
def exit(users, candi, bahan_bangunan):
masukkan = input("Apakah Anda mau melakukan penyimpanan file yang sudah diubah? (Y/N) ")
if masukkan == "y" or "Y" :
if masukkan == "y" or masukkan == "Y" :
save(users,candi,bahan_bangunan)
sys.exit("Anda telah keluar dari program")
elif masukkan == 'n' or "N" :
elif masukkan == 'n' or masukkan == "N" :
sys.exit("Anda telah keluar dari program")
else :
exit(users,candi,bahan_bangunan)
Expand Down
3 changes: 3 additions & 0 deletions access_bandung.py → Tubes-main/access_bandung.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@ def cekjin(arr): #cek jumlah jin pengumpul
count+=1
return count
jin = cekjin(users)
if jin == 0:
print('Kumpul gagal. Anda tidak punya jin pengumpul, silahkan summon terlebih dahulu.')
return()
batu = 0 # dibedakan dari kumpul biasa
pasir = 0
air = 0
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
12 changes: 6 additions & 6 deletions loadcsv.py → Tubes-main/loadcsv.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
def loaduser():
def loaduser(folder):
"""memasukkan nilai-nilai di user.csv ke dalam matriks"""
arr=[['' for j in range(3)] for i in range (110)]

f=open("user.csv",'r')
f=open(f"save/{folder}/user.csv",'r')
for i in range (0, 110):
r=f.readline().rstrip()
c=0
Expand All @@ -23,12 +23,12 @@ def loaduser():
return(arr)


def loadcandi():
def loadcandi(folder):
"""memasukkan nilai-nilai di candi.csv ke dalam matriks"""

arr=[['' for j in range(5)] for i in range (110)]

f=open("candi.csv",'r')
f=open(f"save/{folder}/candi.csv",'r')
for i in range (0, 110):
r=f.readline().rstrip()
c=0
Expand All @@ -48,12 +48,12 @@ def loadcandi():

return(arr)

def loadbahan():
def loadbahan(folder):
"""memasukkan nilai-nilai di bahan_bangunan.csv ke dalam matriks"""

arr=[['' for j in range(3)] for i in range (4)]

f=open("bahan_bangunan.csv",'r')
f=open(f"save/{folder}/bahan_bangunan.csv",'r')
for i in range (4):
r=f.readline().rstrip()
c=0
Expand Down
193 changes: 193 additions & 0 deletions Tubes-main/loadsave.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
#F13
import os
import sys
# from Type import effective

# # recursive
# # len matrix with mark
# def mtx_len(matrix:list, mark:list, iterate:int) -> int:
# # iterate=0
# if matrix[iterate]==mark:
# return iterate
# else:
# return mtx_len(matrix,mark,iterate+1)

# # read csv
# def read_csv(path_csv:str) -> tuple[list,int]:
# # asumsi csv selalui diakhiri newline
# file = open(path_csv,'r')
# # count line
# count=0

# for line in file:
# # header
# if count==0:
# count+=1

# # determine len arr needed to store the string
# count_delimiter=0
# for char in line:
# if char==";":
# count_delimiter+=1
# # initialization of mtx
# mtx=[["" for i in range (count_delimiter+1)] for i in range (200)]
# mtx_idx=count-1

# # not header
# else:
# str_temp=""
# arr_temp=["" for i in range (count_delimiter+1)]
# # indexing for arr_temp
# arr_idx=0
# mtx_idx=count-1

# for char in range (len(line)):
# if line[char]==";" or line[char]=="\n":
# arr_temp[arr_idx]=str_temp
# arr_idx+=1
# str_temp=""
# else:
# str_temp+=line[char]

# mtx[mtx_idx]=arr_temp
# count+=1

# # csv hanya berisi header: mtx_idx=0
# # asumsi csv diakhiri newline
# if mtx[mtx_idx-1]==["" for i in range (count_delimiter+1)]:
# mtx_idx-=1

# mtx[mtx_idx+1]=["MARK" for i in range(count_delimiter+1)]

# return (mtx, mtx_len(mtx,["MARK" for i in range (count_delimiter+1)], 0))

# def trans_bahan(bahan:effective) -> list[list]:
# # bahan.mtx: [nama,deskripsi,jumlah]
# # nama -> pasir -> batu -> air

# # inisialisasi return matriks
# bahan_bangunan=[["" for i in range (3)] for i in range (3)]

# # load dalam keadaan kosong
# if bahan.mtx[0]==["MARK","MARK","MARK"]:
# bahan_bangunan[0]=["pasir", "merekatkan batu", "0"]
# bahan_bangunan[1]=["batu", "membentuk candi", "0"]
# bahan_bangunan[2]=["air", "dicampur dengan pasir untuk menjadi perekat", "0"]
# else:
# bahan_bangunan[0]=bahan.mtx[0]
# bahan_bangunan[1]=bahan.mtx[1]
# bahan_bangunan[2]=bahan.mtx[2]
# return bahan_bangunan

# # F13
# def load() -> str:
# parser=argparse.ArgumentParser()
# parser.add_argument("folder_name", nargs='?', help='specify your game data location')
# # add_argument() -- add argument to the parser
# # nargs='?' -- minimal zero argument given (to enable zero argument case)
# args=parser.parse_args()

# # get the parameter
# folder_name=args.folder_name
# if folder_name==None:
# print("\nTidak ada nama folder yang diberikan!\n")
# print("Usage: python main.py <nama_folder>")
# exit()

# elif os.path.isdir(folder_name):
# # asumsikan:
# # - seluruh file penyimpanan dalam suatu folder dijamin ada
# # - memiliki nama yang fixed
# # - memiliki format yang sesuai dengan struktur data eksternal.

# # thus
# # from current directory
# # player will specify "save/folder_name" to get saved dataset
# # or "default" to get new game dataset

# print("\nLoading...\n")
# print("Selamat datang di program \"Manajerial Candi\"")
# # print("Silakan masukkan username Anda")

# if os.path.isdir(folder_name): return folder_name
# else: return "save/"+folder_name

# else:
# print("\nFolder \""+folder_name+"\" tidak ditemukan.")
# exit()
def load(folder):
import loadcsv
directory_path = os.getcwd()
items_in_directory = os.listdir(f"{directory_path}/save")
for item in items_in_directory:
if str(item) == str(folder):
print("\nLoading...\n")
users = loadcsv.loaduser(folder) # Matriks data user
candi = loadcsv.loadcandi(folder) # Matriks data candi
bahan_bangunan = loadcsv.loadbahan(folder) # Data bahan bangunan
return (users,candi,bahan_bangunan)
sys.exit(f"Folder {folder} tidak ditemukan.")

#F14 Save
def save(users, candi, bahan_bangunan) :

def saveuser(file_name, users):
directory = os.path.join(path2, file_name) # directory diperlukan agar save bisa dilakukan di folder yang sesuai
f=open(directory, "w")
for user in users:
f.write(f"{user[0]};{user[1]};{user[2]}\n")


def savecandi(file_name, candi):
directory = os.path.join(path2, file_name) # directory diperlukan agar save bisa dilakukan di folder yang sesuai
f=open(directory, "w")
for per_candi in candi:
f.write(f"{per_candi[0]};{per_candi[1]};{per_candi[2]};{per_candi[3]};{per_candi[4]}\n")

def savebahan(file_name, bahan_bangunan):
directory = os.path.join(path2, file_name) # directory diperlukan agar save bisa dilakukan di folder yang sesuai
f=open(directory, "w")
for bahan in bahan_bangunan:
f.write(f"{bahan[0]};{bahan[1]};{bahan[2]}\n")

direct = os.getcwd() # untuk mengetahui directory yang digunakan sekarang
ada_save = "save"
path = os.path.join(direct, ada_save) # penggabungan untuk membuat directory baru yang memunculkan folder save
nama_fol = input("Masukan nama folder : ")
isdir = os.path.isdir(path) # mengecek ada atau tidaknya directory yang diperlukan di dalam system
path2 = os.path.join(path,nama_fol) # penggabungan untuk membuat directory baru yang memunculkan folder sesuai dengan yang diinput
isdir2 = os.path.isdir(path2) # mengecek ada atau tidaknya directory yang diperlukan
print("\n")
print("Saving...")

if isdir == False : # Tidak ada directory \save
os.mkdir("save") # Membuat folder save pada directory
print("Membuat folder save")
if isdir2 == False: # Tidak ada directory \save\nama_fol
os.mkdir(path2) # Membuat folder baru
print("Membuat folder", nama_fol)
saveuser('user.csv', users)
savecandi('candi.csv', candi)
savebahan('bahan_bangunan.csv', bahan_bangunan)
print("Berhasil menyimpan data di folder save/"+nama_fol)

else :
saveuser('user.csv', users)
savecandi('candi.csv', candi)
savebahan('bahan_bangunan.csv', bahan_bangunan)
print("Berhasil menyimpan data di folder save/"+nama_fol)
else :
if isdir2 == False:
os.mkdir(path2)
print("Membuat folder", nama_fol)
saveuser('user.csv', users)
savecandi('candi.csv', candi)
savebahan('bahan_bangunan.csv', bahan_bangunan)
print("Berhasil menyimpan data di folder save/"+nama_fol)

else :
saveuser('user.csv', users)
savecandi('candi.csv', candi)
savebahan('bahan_bangunan.csv', bahan_bangunan)
print("Berhasil menyimpan data di folder save/"+nama_fol)

29 changes: 29 additions & 0 deletions Tubes-main/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import commands
import argparse
import loadsave
import sys
#MATRIKS
users=[]
candi=[]
bahan_bangunan=[]

role="-"
uname="-"

parser = argparse.ArgumentParser()
parser.add_argument('nama_folder',nargs='?', default='__no_value__')
args = parser.parse_args()

if args.nama_folder == '__no_value__':
sys.exit("\nTidak ada nama folder yang diberikan!\n\nUsage: python main.py <nama_folder>.")
else:
users,candi,bahan_bangunan = loadsave.load(args.nama_folder)
print("Selamat datang di Program \"Manajerial Candi\"! ")
print("masukkan menu login dan silahkan isi username anda.")

while True:
masukan = input(">>> ")
role,uname,users,candi,bahan_bangunan=commands.run(masukan,role,uname,users,candi,bahan_bangunan)



File renamed without changes.
4 changes: 4 additions & 0 deletions Tubes-main/save/01-05-2023/bahan_bangunan.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
nama;deskripsi;jumlah
pasir;butiran debu;99
batu;butiran besar;99
air;tak berbutir;99
Loading