Wheemangga

[Python] Random Choice & Random Integer

Oct 7th, 2021 (edited)
449
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.58 KB | None | 0 0
  1. '''
  2. [ENGLISH] Dogee, turn-based game w/ random choice & random integer
  3. Player get to choose between 3 options, A, D, S, Q (Attack, Defend, Special, Quit)
  4. Same rules also applied to bot
  5.  
  6. When any of the both side's hp is 0, the game's over.
  7.  
  8. Player + Bot :
  9. Attack + Attack = Both attack
  10. Attack + Defend = Player's atk/2
  11. Attack + Special = Bot atk*2
  12.  
  13. Defend + Attack = Bot atk/2
  14. Defend + Defend = Nothing happen
  15. Defend + Special = Bot atk/2, player has atk*2 buff
  16.  
  17. Special + Attack = Bot atk=0
  18. Special + Defend = Atk/2, bot has atk*2 buff
  19. Special + Special = Both attack
  20.  
  21. Atk*2 buff gained when someone chooses attack,
  22. Buff deplete when player/bot uses Attack.
  23. Attack buff cannot be stacked with special which is not written in the code.
  24.  
  25. Please note that this is a college project | I've been told to make this only by a descriptive instruction aas shown in line 2 - 4 above.
  26. '''
  27.  
  28. # Code starts here
  29. import random
  30. import time
  31.  
  32. buff = False    #Buff jika mendapat serangan Special dari bot ketika bertahan
  33. ebuff = False   #Buff ketika bot bertahan dari serangan Special
  34. hp = int(input('Silakan masukkan jumlah hp (10 - 20) : '))
  35. eHP = 20        #Health point bot, berlaku sama seperti hp
  36. #eHP = random.randint(10, 20)
  37.  
  38. while True:
  39.     bot = ["attack", "defend", "special"]   #Perintah yang digunakan bot
  40.     dmg = random.randint(1,9)               #Serangan acak dari 1 hingga 9
  41.     eDMG = random.randint(1,9)              #Serangan bot
  42.     if hp > 0 and eHP> 0:
  43.         perintah = input('\n'
  44.         '   Dogee\n'
  45.         'HP kamu : {}\n'.format(hp)+
  46.         'HP musuh : {}\n'.format(eHP)+
  47.         '=============\n'
  48.         '[A] - Attack - Menyerang musuh\n'
  49.         '[D] - Bertahan - Tidak menyerang\n'
  50.         '[S] - Ngamuk - Mengeluarkan serangan spesial\n'
  51.         '[Q] - Menyerah - Keluar dari permainan\n'
  52.         '\nMasukkan perintah : ').upper()
  53.         if perintah not in 'ADSQ' or len(perintah) != 1:
  54.             time.sleep(1)
  55.             print('\nMaaf, perintah yang anda masukkan salah.')
  56.             time.sleep(1)
  57.             continue
  58.         if perintah == 'A':                                                                     # Perintah A mulai
  59.             print('\nKamu memilih menyerang bot')
  60.             time.sleep(1)
  61.             if buff is True:
  62.                 print('Kamu mendapat buff bertahan! Seranganmu menjadi special!')
  63.                 dmg = dmg*2
  64.             pbot = random.choice(bot)                           # BOT
  65.             if pbot == 'attack':
  66.                 print ('\nBot menyerang balik!')
  67.                 if ebuff is True:                               # Buff bot setelah bertahan dari Special
  68.                     eDMG = eDMG*2
  69.                     time.sleep(1)
  70.                     print('Bot menyerang dengan buff bertahan! Serangan bot x2!')
  71.                     time.sleep(1)
  72.                 hp = hp - eDMG
  73.                 time.sleep(1)
  74.                 print ('\nKamu menerima {} dmg dari bot!'.format(eDMG))
  75.                 time.sleep(1)
  76.                 eHP = eHP - dmg
  77.             if pbot == 'special':                               # Special
  78.                 print('\nBot melakukan special!')
  79.                 time.sleep(1)
  80.                 print('\nDmg bot {} x2!'.format(eDMG))
  81.                 hp = hp - eDMG*2
  82.                 time.sleep(1)
  83.                 print ('\nKamu menerima {} dmg dari bot!'.format(eDMG*2))
  84.                 eHP = eHP - dmg
  85.                 time.sleep(1)
  86.             print('\nKamu menyerang bot dengan {} dmg!'.format(dmg))
  87.             time.sleep(1)
  88.             if pbot == 'defend':
  89.                 eDMG = 0
  90.                 print('\nBot bertahan!')
  91.                 eHP = eHP - dmg/2
  92.                 time.sleep(1)
  93.                 print ('\nKamu hanya menyerang bot dengan {} dmg!'.format(dmg / 2))
  94.                 continue                                                                        # Perintah A selesai
  95.             buff = False
  96.             ebuff = False
  97.         if perintah == 'D':                                                                     # Perintah D mulai
  98.             print('\nKamu memilih bertahan')
  99.             time.sleep(1)
  100.             pbot = random.choice(bot)                           # BOT
  101.             if pbot == 'attack':
  102.                 print ('\nBot menyerang!')
  103.                 if ebuff is True:                               # Buff bot setelah bertahan dari Special
  104.                     eDMG = eDMG*2
  105.                     time.sleep(1)
  106.                     print('Bot mendapat buff bertahan! Serangan bot x2!')
  107.                     time.sleep(1)
  108.                 hp = hp - eDMG/2                                # Defend = eDMG/2
  109.                 time.sleep(1)
  110.                 print ('\nKamu menerima {} dmg dari bot!'.format(eDMG/2))
  111.                 ebuff = False                                   #Buff hilang setelah terpakai
  112.                 time.sleep(1)
  113.             if pbot == 'special':
  114.                 print('\nBot melakukan special!')
  115.                 hp = hp - eDMG                                  # Special tdk berpengaruh pd defend
  116.                 time.sleep(1)
  117.                 print ('\nKamu menerima {} dmg dari bot!'.format(eDMG*2))
  118.                 time.sleep(1)
  119.                 buff = True
  120.                 print('Kamu mendapat buff special setelah bertahan!')
  121.             time.sleep(1)
  122.             if pbot == 'defend':
  123.                 print('\nBot bertahan!')
  124.                 time.sleep(1)
  125.                 print ('\nTidak ada yang terluka')
  126.                 time.sleep(1)
  127.                 continue                                                                        # Perintah D selesai
  128.         if perintah == 'S':                                                                     # Perintah A mulai
  129.             print('\nKamu memilih Special!')
  130.             time.sleep(1)
  131.             pbot = random.choice(bot)                           # BOT
  132.             if pbot == 'defend':                                 # Defend
  133.                 eDMG = 0
  134.                 print('\nBot bertahan!')
  135.                 eHP = eHP - dmg             #Special tidak berpengaruh karena bot bertahan
  136.                 time.sleep(1)
  137.                 print ('\nKamu hanya menyerang bot dengan {} dmg!'.format(dmg)) #Dmg tdk berubah krn bot defend
  138.                 time.sleep(1)
  139.                 ebuff = True
  140.                 print('Bot mendapat buff special setelah bertahan!')
  141.                 time.sleep(1)
  142.                 continue
  143.             if pbot == 'attack':
  144.                 print ('\nBot menyerang balik!')
  145.                 if ebuff is True:                               # Buff bot setelah bertahan dari Special
  146.                     eDMG = eDMG*2
  147.                     time.sleep(1)
  148.                     print('\nBot mendapat buff bertahan! Serangan bot x2!')
  149.                     time.sleep(1)
  150.                 time.sleep(1)
  151.                 buff = False
  152.                 print ('\nSerangan bot tidak berpengaruh!')
  153.                 time.sleep(1)
  154.                 eHP = eHP - dmg*2
  155.             if pbot == 'special':                                # Special
  156.                 print('\nBot melakukan special!')
  157.                 time.sleep(1)
  158.                 print('\nDmg bot {} x2!'.format(eDMG))
  159.                 hp = hp - eDMG*2
  160.                 time.sleep(1)
  161.                 print ('\nKamu menerima {} dmg dari bot!'.format(eDMG*2))
  162.                 eHP = eHP - dmg*2
  163.                 time.sleep(1)
  164.             print('\nKamu berhasil menyerang bot dengan {} dmg!'.format(dmg*2))
  165.             time.sleep(1)
  166.             continue                                                                            # Perintah S selesai
  167.         if perintah == 'Q':                                                                     # Perintah Q mulai
  168.             perintah = input('\nApakah kamu ingin menyerah?\n'
  169.                      '[Y] - Ya | [T] - Tidak : ').upper()
  170.             if perintah == 'Y':
  171.                 time.sleep(1)
  172.                 print('\nTerimakasih telah bermain')
  173.                 time.sleep(1)
  174.                 exit()
  175.             if perintah == 'T':
  176.                 time.sleep(1)
  177.                 print('\nKemenangan hanya untuk mereka yang berusaha.')
  178.                 time.sleep(1)
  179.                 continue
  180.             break                                                                               # Perintah Q selesai
  181.         continue                                                                                # Kembali ke Main Menu
  182.     else:                                                                                       # Jika hp atau eHP = 0
  183.         time.sleep(1)
  184.         print('\nPermainan berakhir\n'
  185.               'HP kamu : {}\n'.format(hp)+
  186.               'HP musuh : {}\n'.format(eHP))
  187.         if hp < 0:                                  # Mati, kalah
  188.             print('\nKamu kalah')
  189.         else:                                       # Menang
  190.             print('Selamat! Kamu menang!')
  191.         perintah = input('\nApakah kamu ingin bermain lagi?\n'   #Ngulang kl mati
  192.                     '[Y] - Ya | [T] - Tidak : ').upper()
  193.         if perintah == 'Y':                         # Permainan diulang, mereset hp masing-masing
  194.             hp = 20
  195.             eHP = 20
  196.             continue
  197.         if perintah == 'T':                         # Permainan berakhir, exit program
  198.             time.sleep(1)
  199.             print('Terimakasih telah bermain')
  200.             time.sleep(1)
  201.             exit()
  202.         while perintah not in 'YT' or len(perintah) != 1:           # Jika perintah bukan Y atau T
  203.             print('\nMaaf, perintah yang anda masukkan salah.')
  204.             time.sleep(1)
  205.             break
Advertisement
Add Comment
Please, Sign In to add comment