質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

290閲覧

index = 0について

dareshi

総合スコア16

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/07/27 11:03

import random

自分のヒットポイント

my_hit_point = 15
#スライムのヒットポイント
slime_hit_point = 8
#こうげきの順番
#ここでは自分からこうげきするものとする
index = 0
#どちらかのヒットポイントがあるまで戦う
#ヒットポイントが0以下になると繰り返しが終わる
while slime_hit_point > 0 and my_hit_point > 0:
#ランダムに与えるダメージを決定
attack = random.randint(1,7)
#自分とスライムが交互に攻撃を与える
if index % 2 == 0:
print('スライムに'+ str(attack) + 'のダメージ')
slime_hit_point -= attack
else:
print('ゆうしゃに'+ str(attack) + 'のダメージ')
my_hit_point -= attack
index += 1

#whileを抜けたらどっちかが死んでる #自分のヒットポイントが残っていれば、スライム撃破!

if my_hit_point > 0:
print('スライムをやっつけた')
else:
print('ゆうしゃは死んでしまった')
このコードでのindex = 0とはどのような意味なのでしょうか。解説お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

整形してみました(多分あっていると思いますが---できれば質問者にしてほしかった)。

python

1import random 2my_hit_point = 15 3slime_hit_point = 8 4index = 0 5while slime_hit_point > 0 and my_hit_point > 0: 6 attack = random.randint(1,7) 7 if index % 2 == 0: 8 print('スライムに'+ str(attack) + 'のダメージ') 9 slime_hit_point -= attack 10 else: 11 print('ゆうしゃに'+ str(attack) + 'のダメージ') 12 my_hit_point -= attack 13 index += 1 14if my_hit_point > 0: 15 print('スライムをやっつけた') 16else: 17 print('ゆうしゃは死んでしまった')

この整形後のコードで説明すると、indexは攻撃の順番を決めるための変数ですね。indexが偶数(0,2,4,・・・)の時はスライムのHPをそぎ、そうでない場合(indexが奇数の時)スライムのHPをそぎます。

このコードでのindex = 0とはどのような意味なのでしょうか。

との質問ですが、indexは上記の説明にあった用途のための変数で、初期化しているとしかお答えできません。初期化は必要ですよ。
ちなみにindex = 0とすると、スライムが初めにHPをそがれ、index = 1とするとゆうしゃが初めにHPをそがれますよ。

投稿2018/07/27 11:29

ikapy

総合スコア1167

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

if index % 2 == 0:
がindexの値を2で割ってあまりが0の時ゆうしゃの攻撃なので
0ゆうしゃ
1スライム
2ゆうしゃ



と攻撃順が変わるので、「ここでは自分から攻撃するものとする」ためにindexの初期値を0としているのではないでしょうか

投稿2018/07/27 11:14

yuasap

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問