yoscruizer

Aplikasi Tebak kata Python

Mar 14th, 2019
565
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.95 KB | None | 0 0
  1. import random
  2. def acakkata(): # list kata
  3. katakata = ['mutlak',
  4. 'benar',
  5. 'terserap',
  6. 'menonjolkan',
  7. 'aktivis',
  8. 'quit',
  9. 'zombie',
  10. 'batam',
  11. 'sebenarnya',
  12. 'aktualitas',
  13. 'remaja',
  14. 'mempengaruhi',
  15. 'terpengaruh',
  16. 'udara',
  17. 'waspada',
  18. 'sepanjangwaktu',
  19. 'mengalegorisasikan',
  20. 'persekutuan',
  21. 'aliansi',
  22. 'kiasan',
  23. 'sindiran',
  24. 'baik',
  25. 'samasekali',
  26. 'memperkuat',
  27. 'analisis',
  28. 'semu',
  29. 'tampaknya',
  30. 'penampilan',
  31. 'menangkap',
  32. 'menilai',
  33. 'penilaian',
  34. 'anggapan',
  35. 'astronomis',
  36. 'sikap',
  37. 'rata-rata',
  38. 'sadar',
  39. 'kesadaran',
  40. 'bayi',
  41. 'padadasarnya',
  42. 'tongkat',
  43. 'kepercayaan',
  44. 'keyakinan',
  45. 'besar',
  46. 'darah',
  47. 'berbasisluas',
  48. 'tanpahenti',
  49. 'pusat',
  50. 'bersertifikat',
  51. 'nyanyian',
  52. 'klaim',
  53. 'rahasia',
  54. 'memikirkan',
  55. 'tanggungjawab',
  56. 'komentar',
  57. 'komentator',
  58. 'lengkap',
  59. 'samasekali',
  60. 'memahami',
  61. 'terpadu',
  62. 'curhat',
  63. 'dugaan',
  64. 'hatinurani',
  65. 'kesadaran',
  66. 'besar',
  67. 'sangat']
  68. kataterpilih = random.choice(katakata)
  69. return kataterpilih
  70.  
  71.  
  72. def cektebakan(parsekata, huruftebakan=None): # cek apakan huruf ada di kata
  73. if huruftebakan in parsekata:
  74. return True
  75. else:
  76. return False
  77. def hitunginput(huruftebakan): # menghitung jumlah input tebakan
  78. count = 0
  79. for i in huruftebakan:
  80. count += 1
  81. return count
  82. def progresskata(parsekata, progress, huruftebakan=None): # fungsi tebak per 1 kata
  83. if progress == None: # jika game baru di mulai progress masih * semua
  84. progress = []
  85. for i in parsekata:
  86. progress.append('*')
  87. for i in (i for i, x in enumerate(parsekata) if x == huruftebakan):
  88. progress[i] = str(huruftebakan) # ubah * jd huruf
  89. return progress
  90. def tebaklangsung(parsekata, huruftebakan): # fungsi tebakan langsung
  91. kata = ''.join(parsekata)
  92. tebak = ''.join(huruftebakan)
  93.  
  94. if kata == tebak:
  95. return True
  96. else:
  97. return False
  98.  
  99.  
  100. def cekselesai(progress): # cek progress kata yang di tebak
  101. ada = -1
  102. for i in (i for i, x in enumerate(progress) if x == '*'):
  103. ada = i
  104.  
  105. if ada != -1:
  106. return True
  107. else:
  108. return False
  109.  
  110.  
  111. def join(kata): # menggabungkan isi list
  112. kata = ' '.join(kata)
  113. return kata
  114.  
  115.  
  116. def sudahdipilih(baghuruf, pilihan): # fungsi cek huruf pernah dipilih
  117. ada = -1
  118. for i in (i for i, x in enumerate(baghuruf) if x == pilihan):
  119. ada = i
  120.  
  121. if ada != -1:
  122. return True
  123. else:
  124. return False
  125.  
  126.  
  127. def main():
  128. kata = acakkata()
  129. parsekata = list(kata)
  130. panjangkata = len(parsekata)
  131. progress = None
  132. tertebak = False
  133. telahdipilih = []
  134.  
  135. # print(parsekata)
  136. print('Selamat datang pada GAME TEBAK KATA.')
  137.  
  138. langkah = 0
  139. while not tertebak:
  140. print('Kata berisi %d huruf, ' % panjangkata, end='')
  141. huruftebakan = input('silahkan masukan huruf a : ')
  142.  
  143. jmltebakan = hitunginput(huruftebakan)
  144. if jmltebakan == 1: # jika input hanya 1 huruf
  145. # S: cek huruf sudah pernah di pilih
  146. cektlhdipilih = sudahdipilih(telahdipilih, huruftebakan)
  147. if cektlhdipilih:
  148. print('Anda sudah menebak hurur %s sebelumnya.' % huruftebakan)
  149. print(join(progress))
  150. continue # lansung langkah berikutnya
  151. else:
  152. telahdipilih.append(huruftebakan)
  153. # E: cek huruf sudah pernah di pilih
  154.  
  155. # S: cek jika huruf tebakan ada dalam kata
  156. cekada = cektebakan(parsekata, huruftebakan)
  157. if cekada:
  158. progress = progresskata(parsekata, progress, huruftebakan)
  159. print(join(progress))
  160. else:
  161. print('Tidak mengandung huruf ', huruftebakan)
  162. print(join(progress))
  163. # E: cek jika huruf tebakan ada dalam kata
  164.  
  165. # S: cek jika huruf sudah berhasil tertebak
  166. selesai = cekselesai(progress)
  167. if not selesai:
  168. print('Selamat Anda berhasil!!!')
  169. print('Kata ''%s'' tertebak dalam %d langkah.' % (join(parsekata), langkah))
  170. tertebak = True
  171. # E: cek jika huruf sudah berhasil tertebak
  172. else: # jika input lebih dari 1 huruf
  173. if jmltebakan == 0: # tidak ada input
  174. print('Tidak ada input, masukkna satu huruf.')
  175. print(join(progress))
  176. else: # input lebih dari satu, tebakan langsung
  177. langsung = tebaklangsung(parsekata, huruftebakan)
  178. if langsung == True: # jika tebakan langsung benar
  179. print('Selamat tebakan langsung anda berhasil!!!')
  180. print('Kata ''%s'' tertebak dalam %d langkah.' % (join(parsekata), langkah))
  181. tertebak = True
  182. else: # tebakan langsung salah
  183. print('Tebakan langsung anda belum tepat.')
  184. print(join(progress))
  185. langkah += 1
  186. #yoscruizer
  187.  
  188. main()
Advertisement
Add Comment
Please, Sign In to add comment