
Pythonの問題です
whileは使わないでかきたいのですが
どなたかやり方教えてください
for文を利用して隠された単語を当てるゲームを作成してください。
出題する単語リスト:["banana", "orange", "apple", "kiwi"]
条件:
・単語リストからランダムに出題
・初期状態はすべて"-"で隠された状態にすること
・プレイヤーが挑戦できる回数は、文字数分可能(文字数はlen()でカウントすること)
・単語を当てる際は1文字ずつ受け取る想定でOK
・文字が問題の単語に含まれる場合はどこと一致しているのか表示
・不正解の場合は、残りの挑戦回数を表示、挑戦回数がゼロになったら正解を表示
・単語を全て当てた際は、コメントと当てた単語を表示
・ゲーム終了後は、終了した旨を表示すること(繰り返し処理が終了後に表示)
表示例については以下の実行結果を参考にしてください!
【実行結果】
単語当てゲームへようこそ!
挑戦回数は4回です!
単語: ['_', '_', '_', '_']
1文字、入力してください: a
不正解!残りの挑戦回数: 3
1文字、入力してください: i
正解!現在の単語: ['_', 'i', '_', 'i']
1文字、入力してください: k
正解!現在の単語: ['k', 'i', '_', 'i']
1文字、入力してください: w
正解!現在の単語: ['k', 'i', 'w', 'i']
おめでとう!単語は 'kiwi' でした!
ゲーム終了。
単語当てゲームへようこそ!
挑戦回数は4回です!
単語: ['_', '_', '_', '_']
1文字、入力してください: a
不正解!残りの挑戦回数: 3
1文字、入力してください: z
不正解!残りの挑戦回数: 2
1文字、入力してください: q
不正解!残りの挑戦回数: 1
1文字、入力してください: e
不正解!残りの挑戦回数: 0
残念!正解は 'kiwi' でした。
ゲーム終了。
No.3
- 回答日時:
chatGPTに問い合わせました。
問い合わせ内容は、以下のようにしました。
----------------------------------------------
言語 Python
隠された単語を当てるゲームを作成してください。
出題する単語リスト:["banana", "orange", "apple", "kiwi"]
条件:
・単語リストからランダムに出題
・初期状態はすべて"-"で隠された状態にすること
・プレイヤーが挑戦できる最大回数は、単語の文字数分とする。(文字数はlen()でカウントすること)
・for文を使用して最大回数以内の繰り返しを行うこと。
・単語を当てる際は1文字のみが入力されることを前提として良い。
・文字が問題の単語に含まれる場合はどこと一致しているのか表示
・不正解の場合は、残りの挑戦回数を表示、挑戦回数がゼロになったら正解を表示
・単語を全て当てた際は、コメントと当てた単語を表示
・ゲーム終了後は、終了した旨を表示すること(繰り返し処理が終了後に表示)
表示例については以下の実行結果を参考にしてください!
【実行結果例1】
単語当てゲームへようこそ!
挑戦回数は4回です!
単語: ['_', '_', '_', '_']
1文字、入力してください: a
不正解!残りの挑戦回数: 3
1文字、入力してください: i
正解!現在の単語: ['_', 'i', '_', 'i']
1文字、入力してください: k
正解!現在の単語: ['k', 'i', '_', 'i']
1文字、入力してください: w
正解!現在の単語: ['k', 'i', 'w', 'i']
おめでとう!単語は 'kiwi' でした!
ゲーム終了。
【実行結果例2】
単語当てゲームへようこそ!
挑戦回数は4回です!
単語: ['_', '_', '_', '_']
1文字、入力してください: a
不正解!残りの挑戦回数: 3
1文字、入力してください: z
不正解!残りの挑戦回数: 2
1文字、入力してください: q
不正解!残りの挑戦回数: 1
1文字、入力してください: e
不正解!残りの挑戦回数: 0
残念!正解は 'kiwi' でした。
ゲーム終了。
----------------------------------------------
chatGPTが作成したコードは、以下の通りです。
実際に動かしてみると正常に動作します。
このサイトにアップすると、インデントが崩れるので、あなたのほうで
インデントは正しく修正してください。
インデントの修正が難しい場合は、私がした質問と全く同じ内容の質問を
chatGPTになげてください。そうすると、正しいインデントのコードが入手できます。
import random
def hide_word(word):
return ['_' for _ in word]
def reveal_letter(word, hidden_word, letter):
found = False
for i in range(len(word)):
if word[i] == letter:
hidden_word[i] = letter
found = True
return found
def game():
words = ["banana", "orange", "apple", "kiwi"]
word = random.choice(words)
hidden_word = hide_word(word)
max_attempts = len(word)
print("単語当てゲームへようこそ!")
print(f"挑戦回数は{max_attempts}回です!")
print(f"単語: {hidden_word}")
for attempts in range(max_attempts, 0, -1):
guess = input("1文字、入力してください: ")
if len(guess) != 1:
print("1文字だけ入力してください。")
continue
if reveal_letter(word, hidden_word, guess):
print("正解!現在の単語:", hidden_word)
else:
print(f"不正解!残りの挑戦回数: {attempts - 1}")
if '_' not in hidden_word:
print(f"おめでとう!単語は '{word}' でした!")
break
else:
print(f"残念!正解は '{word}' でした。")
print("ゲーム終了。")
# ゲームの実行
game()
No.1
- 回答日時:
作成条件を元に、ソフトウェアを実装するやり方
1. 大雑把な流れ図を書く
2. 作成条件の各項目を満たすように流れ図を詳細化
3. 流れ図の箱ごとの処理を実装
3.1. 難しい処理ならば、箱の中身だけで別の流れ図を書いて関数化する
4. 流れ図通りに、箱ごとの処理を並べて動作確認
例) 大雑把な流れ図
出題単語, 表示単語, 挑戦回数 を計算する
挨拶文 を表示
挑戦回数 だけ繰り返し
_ 入力促進文 を表示し1文字を受け取る
_ 入力から表示単語を更新
_ 正解文 または 不正解文 を表示
_ 出題単語 == 表示単語 なら 繰り返し終了
繰り返し終了
祝福文 または 残念文 を表示
終了した旨 を表示
参考)
https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AD …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Created by~それともProduc...
-
ワードの単語数文字数の違い、...
-
縦書きの場合の※の位置は?
-
「気付く」と打ちたい
-
高一七月進研模試にLEAP Basic...
-
飲食店やホテルの「店舗一覧」...
-
「ぜひもの」という言葉の意味は?
-
高3です 英単語を覚えようと思...
-
quantitation と quantificatio...
-
discretionとdecisionってどう...
-
日本語の単語を五十音別に分類...
-
10月11月12月の覚え方。
-
Full(フル)の対義語・反意語が...
-
英単語の後方一致検索
-
N日目の訳
-
英語の文章
-
○○一家という英語表現について。
-
英語で「算数」は?
-
数字を入れ替えるときの英語
-
「けち」の反対語
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Created by~それともProduc...
-
縦書きの場合の※の位置は?
-
ワードの単語数文字数の違い、...
-
「気付く」と打ちたい
-
Full(フル)の対義語・反意語が...
-
英単語の後方一致検索
-
高一七月進研模試にLEAP Basic...
-
飲食店やホテルの「店舗一覧」...
-
スマホでメールを送るさい、辻...
-
ice cream というスペルを、ice...
-
高沸
-
日本語の単語を五十音別に分類...
-
漢字「渣」のシフトJISコー...
-
JRの車内アナウンスで「お出口...
-
「当然に」とは?
-
味をリニューアルし、新しく生...
-
quantitation と quantificatio...
-
『最後通告』?は、正しい言葉??
-
「手書き修正した」という意味...
-
"administrative assistant"の...
おすすめ情報