元豪 发表于 2022-8-27 07:13:50

摇色子游戏(两种模式)

自制摇色子游戏
肝了两天,终于是把它整出来了

比我想象中还难!{:10_266:}

不知道有没有大神能缩短一下代码
我实在缩不了了{:10_266:}

上源码:

#-*- coding: <utf-8> -*-
import random
from time import sleep as s

前 = 0
后 = 30
电前 = 0
电后 = 30
奖励 = 0
玩家 = [前 * '-' + '◆' + 后 * '-']
玩家2或电脑 = [电前 * '-' + '◇' + 电后 * '-']
色子1加 = []
色子2或电脑加 = []
玩家色子和 = []
奖判 = random.randint(1, 10)
电脑奖判 = random.randint(1, 10)


def 战况1():
    print('--------------------------------------------\n战况: \n', 名字1, '--', 玩家)
    print('\n', 名字2, '--', 玩家2或电脑)

def 战况2():
    print('--------------------------------------------\n战况: \n', 名字, '--', 玩家)
    print('\n电脑 --', 玩家2或电脑)

def 奖励1():
    print('触发奖励')
    print('前进 5 步. ')
    s(1)
    global 奖励
    奖励 = 5

def 奖励4():
    print('触发惩罚')
    print('后退 5 步. ')
    s(1)
    global 奖励
    奖励 = -5

def 奖励2():
    print('触发奖励')
    print('前进 3 步. ')
    s(1)
    global 奖励
    奖励 = 3

def 奖励3():
    print('触发惩罚')
    print('后退 3 步. ')
    s(1)
    global 奖励
    奖励 = -3

def 奖励5():
    print('触发奖励')
    print('前进 3 步. ')
    s(1)
    global 奖励
    奖励 = 3

def 奖励6():
    print('触发惩罚')
    print('后退 1 步. ')
    s(1)
    global 奖励
    奖励 = -1

def 啥():
    print('啥都没有. ')
    奖励 = 0


#--------------------------------------------------------

print('欢迎来玩摇色子, 请选择: ')
while True:
    print('\n\n1. 玩家 --> 玩家\n2. 玩家 --> 电脑')
    选择 = int(input('[请选择]>>> '))
    if not 1 <= 选择 <= 2:
      break

    elif 选择 == 1:
      名字1 = input('请输入玩家1的名字: ')
      名字2 = input('请输入玩家2的名字: ')
      s(1.5)
      战况1()
      while True:
            print(名字1)
            s(1)
            input('--------------------------------------------\n请摇色子. (回车)')
            色子1 = random.randint(1, 6)
            
            print(名字1, '摇到', 色子1)
            print('前进', 色子1, '步. ')
            if 奖判 == 1:
                奖励1()
            elif 奖判 == 2:
                奖励2()
            elif 奖判 == 3:
                奖励3()
            elif 奖判 == 4:
                奖励4()
            elif 奖判 == 5:
                奖励5()
            elif 奖判 == 6:
                奖励6()
            else:
                啥()
            奖判 = random.randint(1, 10)
            色子1加.append(色子1 + 奖励)
            电脑奖判 = random.randint(1, 10)
            前 = 前 + 色子1 + 奖励
            后 = 后 - 色子1 - 奖励
            玩家 = [前 * '-' + '◆' + 后 * '-']                        
            if sum(色子1加) >= 30:
                print(名字1, '胜利! ')
                print('战况: \n', 名字1, '--', )
                print('\n', 名字2, '--', 玩家或电脑)
                色子1加 = []
                色子2或电脑加 = []
                break
            s(1.5)
            战况1()      
            print(名字2)
            s(1)
            input('--------------------------------------------\n请摇色子. (回车)')
            色子2 = random.randint(1, 6)
            
            print(名字2, '摇到', 色子2)
            print('前进', 色子2, '步. ')
            if 奖判 == 1:
                奖励1()
            elif 奖判 == 2:
                奖励2()
            elif 奖判 == 3:
                奖励3()
            elif 奖判 == 4:
                奖励4()
            elif 奖判 == 5:
                奖励5()
            elif 奖判 == 6:
                奖励6()
            else:
                啥()
            奖判 = random.randint(1, 10)
            电脑奖判 = random.randint(1, 10)
            色子2或电脑加.append(色子2 + 奖励)
            电前 = 电前 + 色子2 + 奖励
            电后 = 电后 - 色子2 - 奖励
            玩家2或电脑 = [电前 * '-' + '◇' + 电后 * '-']            
            if sum(色子2或电脑加) >= 30:
                print(名字2, '胜利! ')
                print('--------------------------------------------\n战况: \n', 名字1, '--', 玩家)
                print('\n', 名字2, '--', )
                色子1加 = []
                色子2或电脑加 = []
                break
            战况1()
            s(1.5)
    else:
      print('输入你的名字: ')
      名字 = input('[请输入]>>> ')
      while True:
            print(名字)
            s(1)
            input('--------------------------------------------\n请摇色子. (回车)')
            s(1.5)
            色子 = random.randint(1, 6)
            
            print(名字, '摇到', 色子)
            print('前进', 色子, '步. ')
            if 奖判 == 1:
                奖励1()
            elif 奖判 == 2:
                奖励2()
            elif 奖判 == 3:
                奖励3()
            elif 奖判 == 4:
                奖励4()
            elif 奖判 == 5:
                奖励5()
            elif 奖判 == 6:
                奖励6()
            else:
                啥()
            奖判 = random.randint(1, 10)
            电脑奖判 = random.randint(1, 10)
            玩家色子和.append(色子 + 奖励)
            前 = 前 + 色子 + 奖励
            后 = 后 - 色子 - 奖励
            玩家 = [前 * '-' + '◆' + 后 * '-']
            奖励 = 0            
            if sum(玩家色子和) >= 30:
                print(名字, '胜利! ')
                print('--------------------------------------------\n战况: \n', 名字, '--', )
                print('\n电脑 --', 玩家2或电脑)
                玩家色子和 = []
                色子2或电脑加 = []
                break
            战况2()
            电脑 = random.randint(1, 6)
            print('--------------------------------------------\n电脑摇到', 电脑)
            print('前进', 电脑, '步. ')
            s(1.5)
            if 电脑奖判 == 1:
                奖励1()
            elif 电脑奖判 == 2:
                奖励2()
            elif 电脑奖判 == 3:
                奖励3()
            elif 电脑奖判 == 4:
                奖励4()
            elif 电脑奖判 == 5:
                奖励5()
            elif 电脑奖判 == 6:
                奖励6()
            else:
                啥()
            奖判 = random.randint(1, 10)
            电脑奖判 = random.randint(1, 10)
            电前 = 电前 + 电脑 + 奖励
            电后 = 电后 - 电脑 - 奖励
            玩家2或电脑 = [电前 * '-' + '◇' + 电后 * '-']
            色子2或电脑加.append(电脑 + 奖励)
            if sum(色子2或电脑加) >= 30:
                print('电脑胜利! ')
                s(1.5)
                print('--------------------------------------------\n战况: \n', 名字, '--', 玩家)
                print('\n电脑 --', )
                玩家色子和 = []
                色子2或电脑加 = []
                break
            战况2()


print(15 * '~', '感谢游玩!', 15 * '~')



有BUG请留言{:5_104:}

aaron0919 发表于 2022-8-27 08:04:22

变量用了英文更好

hveagle 发表于 2022-8-27 09:21:46

本帖最后由 hveagle 于 2022-8-27 13:18 编辑

欢迎来玩摇色子, 请选择:


1. 玩家 --> 玩家
2. 玩家 --> 电脑
[请选择]>>> 1
请输入玩家1的名字: A
请输入玩家2的名字: B
--------------------------------------------
战况:
A -- ['◆------------------------------']

B -- ['◇------------------------------']
A
--------------------------------------------
请摇色子. (回车)
A 摇到 3
前进 3 步.
触发惩罚
后退 5 步.
--------------------------------------------
战况:
A -- ['◆--------------------------------']

B -- ['◇------------------------------']
B
--------------------------------------------
请摇色子. (回车)
B 摇到 4
前进 4 步.
啥都没有.
--------------------------------------------
战况:
A -- ['◆--------------------------------']

B -- ['◇-------------------------------']
A
--------------------------------------------
请摇色子. (回车)
A 摇到 1
前进 1 步.
触发惩罚
后退 3 步.
--------------------------------------------
战况:
A -- ['◆----------------------------------']

B -- ['◇-------------------------------']
B
--------------------------------------------
请摇色子. (回车)
B 摇到 4
前进 4 步.
触发奖励
前进 3 步.
--------------------------------------------
战况:
A -- ['◆----------------------------------']

B -- ['------◇------------------------']
A
--------------------------------------------
请摇色子. (回车)
A 摇到 2
前进 2 步.
啥都没有.
--------------------------------------------
战况:
A -- ['-◆-----------------------------']

B -- ['------◇------------------------']
B
--------------------------------------------
请摇色子. (回车)
B 摇到 3
前进 3 步.
啥都没有.
--------------------------------------------
战况:
A -- ['-◆-----------------------------']

B -- ['------------◇------------------']
A
--------------------------------------------
请摇色子. (回车)
A 摇到 2
前进 2 步.
啥都没有.
--------------------------------------------
战况:
A -- ['------◆------------------------']

B -- ['------------◇------------------']
B
--------------------------------------------
请摇色子. (回车)
B 摇到 6
前进 6 步.
啥都没有.
--------------------------------------------
战况:
A -- ['------◆------------------------']

B -- ['---------------------◇---------']
A
--------------------------------------------
请摇色子. (回车)
A 摇到 2
前进 2 步.
触发奖励
前进 5 步.
--------------------------------------------
战况:
A -- ['-------------◆-----------------']

B -- ['---------------------◇---------']
B
--------------------------------------------
请摇色子. (回车)
B 摇到 5
前进 5 步.
触发惩罚
后退 1 步.
--------------------------------------------
战况:
A -- ['-------------◆-----------------']

B -- ['-------------------------◇-----']
A
--------------------------------------------
请摇色子. (回车)
A 摇到 1
前进 1 步.
触发惩罚
后退 5 步.
--------------------------------------------
战况:
A -- ['---------◆---------------------']

B -- ['-------------------------◇-----']
B
--------------------------------------------
请摇色子. (回车)
B 摇到 6
前进 6 步.
触发奖励
前进 3 步.
B 胜利!
--------------------------------------------
战况:
A -- ['---------◆---------------------']

B -- ['------------------------------◇']


1. 玩家 --> 玩家
2. 玩家 --> 电脑
[请选择]>>>
欢迎来玩摇色子, 请选择:


1. 玩家 --> 玩家
2. 玩家 --> 电脑
[请选择]>>> 2
输入你的名字:
[请输入]>>> 小汉成都红
小汉成都红
--------------------------------------------
请摇色子. (回车)
小汉成都红 摇到 3
前进 3 步.
触发奖励
前进 3 步.
--------------------------------------------
战况:
小汉成都红 -- ['------◆------------------------']

电脑 -- ['◇------------------------------']
--------------------------------------------
电脑摇到 5
前进 5 步.
触发奖励
前进 5 步.
--------------------------------------------
战况:
小汉成都红 -- ['------◆------------------------']

电脑 -- ['----------◇--------------------']
小汉成都红
--------------------------------------------
请摇色子. (回车)

小汉成都红 摇到 4
前进 4 步.
啥都没有.
--------------------------------------------
战况:
小汉成都红 -- ['---------------◆---------------']

电脑 -- ['----------◇--------------------']
--------------------------------------------
电脑摇到 3
前进 3 步.
触发奖励
前进 3 步.
--------------------------------------------
战况:
小汉成都红 -- ['---------------◆---------------']

电脑 -- ['----------------◇--------------']
小汉成都红
--------------------------------------------
请摇色子. (回车)小汉成都红 摇到 1

前进 1 步.
啥都没有.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------◆-----------']

电脑 -- ['----------------◇--------------']
--------------------------------------------
电脑摇到 4
前进 4 步.
触发惩罚
后退 3 步.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------◆-----------']

电脑 -- ['-----------------◇-------------']
小汉成都红
--------------------------------------------
请摇色子. (回车)
小汉成都红 摇到 1
前进 1 步.
触发惩罚
后退 1 步.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------◆-----------']

电脑 -- ['-----------------◇-------------']
--------------------------------------------
电脑摇到 6
前进 6 步.
啥都没有.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------◆-----------']

电脑 -- ['-----------------------◇-------']
小汉成都红
--------------------------------------------
请摇色子. (回车)
小汉成都红 摇到 3
前进 3 步.
触发奖励
前进 3 步.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------------◆-----']

电脑 -- ['-----------------------◇-------']
--------------------------------------------
电脑摇到 5
前进 5 步.
触发惩罚
后退 5 步.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------------◆-----']

电脑 -- ['-----------------------◇-------']
小汉成都红
--------------------------------------------
请摇色子. (回车)
小汉成都红 摇到 3
前进 3 步.
啥都没有.
--------------------------------------------
战况:
小汉成都红 -- ['-----------------------◆-------']

电脑 -- ['-----------------------◇-------']
--------------------------------------------
电脑摇到 5
前进 5 步.
触发奖励
前进 5 步.
电脑胜利!
--------------------------------------------
战况:
小汉成都红 -- ['-----------------------◆-------']

电脑 -- ['------------------------------◇']


1. 玩家 --> 玩家
2. 玩家 --> 电脑
[请选择]>>>

元豪 发表于 2022-8-27 11:58:59

aaron0919 发表于 2022-8-27 08:04
变量用了英文更好

我英文太拉了{:10_266:}{:10_266:}

aaron0919 发表于 2022-8-27 12:28:10

元豪 发表于 2022-8-27 11:58
我英文太拉了

我都直接翻译的,后面还得写上中文的注释

aaron0919 发表于 2022-8-27 12:28:45

元豪 发表于 2022-8-27 11:58
我英文太拉了

否则都不知道自己在写什么❓

元豪 发表于 2022-8-27 12:42:02

aaron0919 发表于 2022-8-27 12:28
否则都不知道自己在写什么❓

还是中文香{:10_264:}

hveagle 发表于 2022-8-27 13:18:53

没有BUG啊

asky533 发表于 2022-8-27 14:48:58

建议使用英文,因为到时候养成用中文变量名的习惯再去学别的编程语言就不太好啦^_^

python0729 发表于 2022-8-28 11:14:16

牛,学到了

元豪 发表于 2022-9-3 08:43:21

asky533 发表于 2022-8-27 14:48
建议使用英文,因为到时候养成用中文变量名的习惯再去学别的编程语言就不太好啦^_^

{:10_323:}

asky533 发表于 2022-9-3 10:01:25

欢迎来玩摇色子, 请选择:


1. 玩家 --> 玩家
2. 玩家 --> 电脑
[请选择]>>> 2
输入你的名字:
[请输入]>>> 小汉成都红
小汉成都红
--------------------------------------------
请摇色子. (回车)
小汉成都红 摇到 3
前进 3 步.
触发奖励
前进 3 步.
--------------------------------------------
战况:
小汉成都红 -- ['------◆------------------------']

电脑 -- ['◇------------------------------']
--------------------------------------------
电脑摇到 5
前进 5 步.
触发奖励
前进 5 步.
--------------------------------------------
战况:
小汉成都红 -- ['------◆------------------------']

电脑 -- ['----------◇--------------------']
小汉成都红
--------------------------------------------
请摇色子. (回车)

小汉成都红 摇到 4
前进 4 步.
啥都没有.
--------------------------------------------
战况:
小汉成都红 -- ['---------------◆---------------']

电脑 -- ['----------◇--------------------']
--------------------------------------------
电脑摇到 3
前进 3 步.
触发奖励
前进 3 步.
--------------------------------------------
战况:
小汉成都红 -- ['---------------◆---------------']

电脑 -- ['----------------◇--------------']
小汉成都红
--------------------------------------------
请摇色子. (回车)小汉成都红 摇到 1

前进 1 步.
啥都没有.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------◆-----------']

电脑 -- ['----------------◇--------------']
--------------------------------------------
电脑摇到 4
前进 4 步.
触发惩罚
后退 3 步.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------◆-----------']

电脑 -- ['-----------------◇-------------']
小汉成都红
--------------------------------------------
请摇色子. (回车)
小汉成都红 摇到 1
前进 1 步.
触发惩罚
后退 1 步.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------◆-----------']

电脑 -- ['-----------------◇-------------']
--------------------------------------------
电脑摇到 6
前进 6 步.
啥都没有.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------◆-----------']

电脑 -- ['-----------------------◇-------']
小汉成都红
--------------------------------------------
请摇色子. (回车)
小汉成都红 摇到 3
前进 3 步.
触发奖励
前进 3 步.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------------◆-----']

电脑 -- ['-----------------------◇-------']
--------------------------------------------
电脑摇到 5
前进 5 步.
触发惩罚
后退 5 步.
--------------------------------------------
战况:
小汉成都红 -- ['-------------------------◆-----']

电脑 -- ['-----------------------◇-------']
小汉成都红
--------------------------------------------
请摇色子. (回车)
小汉成都红 摇到 3
前进 3 步.
啥都没有.
--------------------------------------------
战况:
小汉成都红 -- ['-----------------------◆-------']

电脑 -- ['-----------------------◇-------']
--------------------------------------------
电脑摇到 5
前进 5 步.
触发奖励
前进 5 步.
电脑胜利!
--------------------------------------------
战况:
小汉成都红 -- ['-----------------------◆-------']

电脑 -- ['------------------------------◇']


1. 玩家 --> 玩家
2. 玩家 --> 电脑
[请选择]>>>
请注意看第114行和第125行,为什么“小汉成都红”明明是摇到了三,前进三步,啥也没有,但是“战况”却显示“小汉成都红”是往后退了呀

元豪 发表于 2022-9-3 10:05:59

asky533 发表于 2022-9-3 10:01
请注意看第114行和第125行,为什么“小汉成都红”明明是摇到了三,前进三步,啥也没有,但是“战况”却显 ...

可能是BUG了{:10_272:}
页: [1]
查看完整版本: 摇色子游戏(两种模式)