求问,Playgrounds中双峰问题~
swift吧
全部回复
仅看楼主
level 2
salmonxn 楼主
在Playgrounds的双峰中,使用while gemcounter!=totalGems 在宝石收集好后为什么无法停止?求大神赐教~
2017年07月12日 07点07分 1
level 1
for循环在while循环里面,循环For的1-6次之间似乎不再判断while循环的条件
大概是这样,个人猜测
2017年07月13日 01点07分 2
谢谢~已解决~
2017年07月14日 12点07分
level 2
salmonxn 楼主
我把解决的编写发出来,方便大家探讨~
2017年07月14日 12点07分 3
level 2
salmonxn 楼主
2017年07月14日 12点07分 4
level 2
说起来,我没有用jump()……没注意这个图可以用……
然后我写了这个东西,如图
2017年07月18日 23点07分 5
level 2
写了个新的。
let exp1 = Expert()
let cha1 = Character()
world.place(exp1, facing: .north, atColumn: 1, row: 4)
world.place(cha1,facing: . north, atColumn: 4, row: 0)
exp1.turnLockUp()
var gemnumber = 0
func searchwalk() {
while !cha1.isBlocked {
if !cha1.isOnGem{
cha1.moveForward()
}else{
cha1.collectGem()
gemnumber = gemnumber + 1
cha1.moveForward()}}
if cha1.isOnGem{
cha1.collectGem()
gemnumber = gemnumber + 1}}
func searchjump(){
for i in 1 ... 6 {
if cha1.isOnGem{
cha1.collectGem()
gemnumber = gemnumber + 1
cha1.jump()
}else{
cha1.jump()
}}}
func BandF(){
searchjump()
cha1.turnLeft()
cha1.turnLeft()
searchjump()
}
while gemnumber < totalGems {
searchwalk()
cha1.turnLeft()
cha1.moveForward()
cha1.turnLeft()
BandF()
cha1.turnRight()
cha1.moveForward()
cha1.turnRight()
}
2333这次用上跳跃功能了。
2017年07月19日 00点07分 6
我也发个
2018年01月03日 03点01分
level 1
//west西 , east东 , north北 , south南
let expert = Expert()
let character = Character()
world.place(expert, facing: north, atColumn: 1, row: 4)
world.place(character, facing: north, atColumn: 3, row: 0)
var Baoshi = 0
func IsOnGmeNumer() {
if character.isOnGem {
character.collectGem()
Baoshi += 1
}
}
func MoveNumber (Number:Int){
IsOnGmeNumer()
character.move(distance: Number)
}
func JumpNumber(Number: Int) {
for i in 1 ... Number {
IsOnGmeNumer()
character.jump()
}
}
func LeftRightMove(TlNumber: Bool){
if TlNumber {
IsOnGmeNumer()
character.turnLeft()
character.moveForward()
character.turnLeft()
}
else {
IsOnGmeNumer()
character.turnRight()
character.moveForward()
character.turnRight()
}
}
expert.turnLockUp()
while Baoshi != totalGems {
JumpNumber(Number: 6)
LeftRightMove(TlNumber: false)
MoveNumber(Number: 6)
LeftRightMove(TlNumber: true)
JumpNumber(Number: 6)
character.turnLeft()
character.turnLeft()
}
2018年01月23日 14点01分 8
level 1
可以升降的那一条路其实不用走的。因为仔细观察你会发现,红宝石只出现在这条路的两端。
2018年08月04日 05点08分 9
你多运行几次
2019年01月13日 16点01分
level 1
let 小魔王 = Character()
let 大魔王 = Expert()
world.place(小魔王, facing: north, atColumn: 4, row: 0)
world.place(大魔王, facing: north, atColumn: 0, row: 4)
大魔王.turnLock(up: true, numberOfTimes: 2)
var gem = 0
func 跳取() {
小魔王.jump()
if 小魔王.isOnGem{
小魔王.collectGem()
gem += 1
}
}
func 一半() {
if gem != totalGems {
for i in 1 ... 6 {
跳取()}
小魔王.turnLeft()
for i in 1 ... 2 {
跳取()}
小魔王.turnLeft()
}
}
while gem != totalGems {
一半()
}
2018年12月07日 05点12分 10
level 3
一口气放了四个,配合jump() ,专家先走,然后直接for I in 1…7,简直不要太简单。
2019年01月04日 09点01分 11
你只运行了一次吧,多运行几次你会发现你的for i 1…7很可能一次根本收集不满,别说开四个了,全屏开满差不多,都不用动了,冒出一个宝石就收集一个,岂不更容易? 他只是给了你最多十几个宝石而已,如果是10000颗随机呢,你还要人工智能吗?按你这法子还简不简单了?
2019年01月13日 16点01分
回复 Ipanda🐼 :是的,后面改成条件循环了。
2019年01月14日 14点01分
level 1
暴力破解香的一批
2022年07月26日 06点07分 12
你笑死我了
2023年04月10日 14点04分
level 2
3个角色
let E1 = Expert()
let C1 = Character()
let C2 = Character()
world.place(E1, facing: .north, atColumn: 3, row: 0)
world.place(C1, facing: .north, atColumn: 2, row: 0)
world.place(C2, facing: .north, atColumn: 4, row: 0)
func MoveAndGetGem(char : Character) {
for i in 1 ... 7 {
if char.isOnGem {
char.collectGem()
Gemcon+=1
}
char.jump()
}
char.turnLeft()
char.turnLeft()
}
func EGetGem(exp :Expert) {
for i in 1 ... 7 {
if exp.isOnGem {
exp.collectGem()
Gemcon+=1
}
if exp.isBlocked {
exp.turnLeft()
exp.turnLeft()
}else
{
exp.moveForward()
}
}
}
var Gemcon = 0
while Gemcon != totalGems {
MoveAndGetGem(char: C1)
MoveAndGetGem(char: C2)
EGetGem(exp: E1)
}
2022年12月07日 09点12分 13
1