1

Python (Windows では 3.3.2) でこれに似たゲームを作ろうとしています。ほとんどのプログラミングはかなり基本的なものなので、初心者の私にとっては簡単だと思います。私が理解できないのは、同じ場所に留まりながら常に変更されるコード行を持つ方法です (私はあなたが持っているキャンディーの量を説明しようとしています [行が同じ場所にとどまっているように見える場合)物理的な str が変更されます])。次のようなことをしなければならないことを理解しています:

candiesNbrDisplay = 'You have ' + str(candiesNbrOwned) + ' candies!'
candiesNbrOwned = candiesNbrOwned + 1
time.sleep( 1)

しかし、これなしでどのように番号を変更しますか!

4

2 に答える 2

0

これは Unix (Mac OS X 10.8.5、Python 2.7.2) で動作します:

import time
import sys

for i in xrange(1, 10):
    print "\rThe number of candies is %d and the pile is growing" % i,
    sys.stdout.flush()
    time.sleep(1)
print ""

Windows で動作するのか、Python 3 で動作するのかはわかりません。

于 2013-10-15T04:21:17.423 に答える
0

Jonathan は、各行の終わりに CR を使用することを提案しました。これを行うには、追加のパラメーターを に渡しますprint

candies = 0
while True:
    print('You have', candies, 'candies!', end='\r')
    time.sleep(1)
    candies += 1

通常、「次の行にスキップする」という意味printの NL ( ) 文字を使用します。\n

しかしここでは、\r代わりに CR ( ) を使用するように指示しています。これは、「現在の行の先頭に戻る」ことを意味します。これが私たちが望むものです。

残念ながら、この手法はコマンド ラインでのみ機能し、IDLE では機能しません。したがって、これを機能させるには、スクリプトを直接実行する (アイコンをダブルクリックする) 必要があります。

于 2013-10-15T04:22:14.880 に答える