Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Silmukka ei katkea

Jormapythoni [23.08.2014 23:08:39]

#

Mod. siirsi kommentin Python-oppaasta.

Tein tuommosen muunnelman labyrintistä mutta en saanut tuota breik:kiä jostain syystä toimimaan (while True ei `katkea`)

# -*- coding: latin-1 -*-
kartta = [[1, 1, 1, 1, 1, 1, 1, 1, 1],
          [1, 2, 1, 0, 0, 0, 0, 1, 1],
          [1, 0, 0, 0, 1, 1, 0, 0, 1],
          [1, 1, 1, 1, 1, 1, 1, 0, 1],
          [1, 0, 0, 0, 0, 0, 0, 0, 1],
          [1, 0, 1, 1, 1, 1, 0, 1, 1],
          [1, 1, 1, 0, 0, 1, 0, 0, 1],
          [0, 0, 1, 1, 0, 0, 1, 0, 1],
          [1, 0, 1, 1, 1, 0, 1, 0, 1],
          [1, 0, 0, 0, 1, 0, 0, 0, 1],
          [1, 1, 1, 0, 0, 0, 1, 1, 1],
          [1, 1, 1, 1, 1, 1, 1, 1, 1]]
pisteet = 0
omay = 1
omax = 1
merkit = " XO"
while True:
    for rivi in kartta:
        for ruutu in rivi:
            print merkit[ruutu],
        print
    if omay == 7 and omax == 0:
        pisteet +=10
        print "Pääsit maaliin, Saat 10 lisäpistettä!"
    if pisteet == 12:
        print "Löysit myös kummankin kaverisi! Pisteet: ", pisteet
    if pisteet == 11:
        print "Löysit yhden kaverinkin matkanvarrelta! Pisteet: ", pisteet
    if pisteet == 10:
        print "Et löytänyt yhtään kaveria.. Pisteet: ", pisteet
        break

    if omay == 5 and omax == 1:
        print "Löysit kaverin! +1 piste"
        pisteet +=1
    if omay == 6 and omax == 3:
        print "Löysit kaverin! +1 piste"
        pisteet +=1


    suunta = raw_input("Suunta (y/a/v/o): ")
    uusix = omax
    uusiy = omay
    if suunta == "y":
        uusiy = omay - 1
    if suunta == "a":
        uusiy = omay + 1
    if suunta == "v":
        uusix = omax - 1
    if suunta == "o":
        uusix = omax + 1
    if kartta[uusiy][uusix] == 0:
        kartta[omay][omax] = 0
        kartta[uusiy][uusix] = 2
        omay = uusiy
        omax = uusix

Metabolix [24.08.2014 16:49:12]

#

Silmukassasi on break vain tapauksessa, jossa pisteet == 10 eli päästiin maaliin mutta yhtään kaveria ei löytynyt. Pelissäsi voi myös löytää saman kaverin monta kertaa liikkumalla edestakaisin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta