鱼C论坛

 找回密码
 立即注册
查看: 1742|回复: 17

[已解决]hxd萌,这个摇色子的代码有啥问题

[复制链接]
发表于 2020-7-12 20:34:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 我真的是个好人 于 2020-7-12 20:39 编辑

昨天上哔哩哔哩看小甲鱼新版python视频(之前看的旧版想着顺便复习下前面内容,实际我旧版也没学多久),然后看到改进小游戏那两级,心血来潮打算自己编一个摇色子的游戏,然后就出大问题了,语法应该没错,但是运行结果不按我想的来:
图像 2.png
就......挺突然的
代码如下,大家帮忙康康出了啥问题吧,可能有大问题,求别嘲讽
import random
temp = int(input('玩哪种,一个骰子还是两个:'))
if temp == 1:
     number1 = random.randint(1,6)
     answer = str(input('开始摇吗?,按1回车开始:'))
     if answer == 1:
         number2 = random.randint(1,6)
         if number2 > number1:
             print('你好走运,我摇的是' + number1 + ',你摇的是' + number2)
         elif number2 == number1:
             print('我俩摇的都是' + number1 + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + number2 + ',我摇的是' + number1 + ',我比你大,哈哈')
if temp == 2:
     number1 = random.randint(2, 12)
     answer = str(input('开始摇吗?,按1回车开始:'))
     if answer == 1:
         number2 = random.randint(2, 12)
         if number2 > number1:
             print('你好走运,我摇的是' + number1 + ',你摇的是' + number2)
         elif number2 == number1:
             print('我俩摇的都是' + number1 + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + number2 + ',我摇的是' + number1 + ',我比你大,哈哈')
print('游戏结束,不玩啦^_^')


代码是文本,我也不知道为啥粘贴上来是这个古怪黑色
顺便提一下修改意见也是极好的,代码刚才是乱码现在改了,可能代码缩进抄错一些,这里上一张图片:
图像 1.png

最佳答案
2020-7-12 20:45:47


这样试试:
import random
temp = int(input('玩哪种,一个骰子还是两个:'))
if temp == 1:
     number1 = random.randint(1,6)
     answer = str(input('开始摇吗?,按1回车开始:'))
     if answer == '1':    # answer 是字符串,跟整数比较不可能相等,所以将 1 改为字符串
         number2 = random.randint(1,6)
         if number2 > number1:
             print('你好走运,我摇的是' + str(number1) + ',你摇的是' + str(number2))    # 整型要转化为字符串才能跟字符串拼接
         elif number2 == number1:
             print('我俩摇的都是' + str(number1) + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + str(number2) + ',我摇的是' + str(number1) + ',我比你大,哈哈')
if temp == 2:
     number1 = random.randint(2, 12)
     answer = str(input('开始摇吗?,按1回车开始:'))
     if answer == '1':
         number2 = random.randint(2, 12)
         if number2 > number1:
             print('你好走运,我摇的是' + str(number1) + ',你摇的是' + str(number2))
         elif number2 == number1:
             print('我俩摇的都是' + str(number1) + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + str(number2) + ',我摇的是' + str(number1) + ',我比你大,哈哈')
print('游戏结束,不玩啦^_^')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-12 20:35:58 | 显示全部楼层
乱码了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 20:37:36 | 显示全部楼层
重新发一遍吧,乱码了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 20:39:55 | 显示全部楼层

好啦,已经改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 20:40:57 | 显示全部楼层
zltzlt 发表于 2020-7-12 20:37
重新发一遍吧,乱码了

乱码改完啦,hxd快来吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 20:45:47 | 显示全部楼层    本楼为最佳答案   


这样试试:
import random
temp = int(input('玩哪种,一个骰子还是两个:'))
if temp == 1:
     number1 = random.randint(1,6)
     answer = str(input('开始摇吗?,按1回车开始:'))
     if answer == '1':    # answer 是字符串,跟整数比较不可能相等,所以将 1 改为字符串
         number2 = random.randint(1,6)
         if number2 > number1:
             print('你好走运,我摇的是' + str(number1) + ',你摇的是' + str(number2))    # 整型要转化为字符串才能跟字符串拼接
         elif number2 == number1:
             print('我俩摇的都是' + str(number1) + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + str(number2) + ',我摇的是' + str(number1) + ',我比你大,哈哈')
if temp == 2:
     number1 = random.randint(2, 12)
     answer = str(input('开始摇吗?,按1回车开始:'))
     if answer == '1':
         number2 = random.randint(2, 12)
         if number2 > number1:
             print('你好走运,我摇的是' + str(number1) + ',你摇的是' + str(number2))
         elif number2 == number1:
             print('我俩摇的都是' + str(number1) + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + str(number2) + ',我摇的是' + str(number1) + ',我比你大,哈哈')
print('游戏结束,不玩啦^_^')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 21:02:16 | 显示全部楼层

可以啦,str我待会再去复习下,谢谢大佬!
图像 1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 21:38:26 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-12 21:58 编辑
我真的是个好人 发表于 2020-7-12 21:02
可以啦,str我待会再去复习下,谢谢大佬!




帮你稍微优化了下:
import random
temp = input('玩哪种,一个骰子还是两个:')

while temp not in ['1','2']:
    temp = input('输入错误,请重新输入(1 or 2):')

if temp == '1':
    max_num = 6
else:
    max_num = 12

number1 = random.randint(1,max_num)
answer = input('开始摇吗?,按1回车开始:')
while answer != '1':
    answer = input('输入错误!准备开始摇吗?,按1回车开始:')
if answer == '1':
    number2 = random.randint(1,max_num)
    if number2 > number1:
        print('你好走运,我摇的是' + str(number1) + ',你摇的是' + str(number2))    # 整型要转化为字符串才能跟字符串拼接
    elif number2 == number1:
        print('我俩摇的都是' + str(number1) + ',不分胜负哦')
    else:
        print('你摇的是' + str(number2) + ',我摇的是' + str(number1) + ',我比你大,哈哈')

print('游戏结束,不玩啦^_^')

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
我真的是个好人 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-12 21:56:44 | 显示全部楼层
Twilight6 发表于 2020-7-12 21:38
帮你稍微优化了下:

代码优化了很多欸,厉害厉害,就是没看懂怎么把两段差不多的代码合二为一的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 21:58:51 | 显示全部楼层
我真的是个好人 发表于 2020-7-12 21:56
代码优化了很多欸,厉害厉害,就是没看懂怎么把两段差不多的代码合二为一的

if temp == '1':
    max_num = 6
else:
    max_num = 12

number1 = random.randint(1,max_num)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 22:01:21 | 显示全部楼层

这四行代码的效果啊,看懂了,但是还没学到这,等以后学会了就可以自己用了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 22:02:37 | 显示全部楼层
我真的是个好人 发表于 2020-7-12 22:01
这四行代码的效果啊,看懂了,但是还没学到这,等以后学会了就可以自己用了


不会啊,你肯定学了,这就只判断下你输入的是 1 还是 2 来设置参数的最大值....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 22:06:16 | 显示全部楼层
Twilight6 发表于 2020-7-12 22:02
不会啊,你肯定学了,这就只判断下你输入的是 1 还是 2 来设置参数的最大值....

啊这,我以为max_num才是主角
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 22:07:35 | 显示全部楼层
我真的是个好人 发表于 2020-7-12 22:06
啊这,我以为max_num才是主角


max_num 你瞎设置也行比如设置成   a 、b、c 就是个普通的变量,确实这个变量是主角,因为是这个变量控制大小的,但是控制大小的前提还是 if 判断你输入的是 1 还是 2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 22:19:08 | 显示全部楼层
Twilight6 发表于 2020-7-12 22:07
max_num 你瞎设置也行比如设置成   a 、b、c 就是个普通的变量,确实这个变量是主角,因为是这个变量控 ...

嗷,懂了,找到了一个小bug,摇两个骰子最小数仍然是1,我试着自己给它改下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 22:20:07 | 显示全部楼层
我真的是个好人 发表于 2020-7-12 22:19
嗷,懂了,找到了一个小bug,摇两个骰子最小数仍然是1,我试着自己给它改下

是我疏忽了,你自己改改吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 22:25:18 | 显示全部楼层
Twilight6 发表于 2020-7-12 22:20
是我疏忽了,你自己改改吧

改好啦
图像 1.png
应该懂了,原来max只是一个变量名,之前看得迷迷糊糊


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 01:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表