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

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

新規登録して質問してみよう
ただいま回答率
85.50%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

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

Q&A

1回答

2016閲覧

pythonで潜水艦ゲームをつくりたい

A_.

総合スコア5

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

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

0グッド

0クリップ

投稿2021/07/27 11:58

下の潜水艦ゲームに機能を追加したいです。

1.「機雷」を設置する.
機雷の置かれた座標(縦,横)を人間が指定した場合には,即終了とする.
機雷の位置は,乱数で設定すること.
2.「レーダ」の機能を追加する.
座標を入力した際に「はずれ!」の表示と一緒に,指定された座標の周囲に潜水艦がいるかどうかを表示する.

python

1import random 2 3print("機雷のサイズを指定してください") 4x = input("機雷の横のサイズ(マス目の数)を指定してください") 5x = int(x) 6 7y = input("機雷の横のサイズ(マス目の数)を指定してください") 8y = int(y) 9 10a = [[0 for yoko in range(x)] for tate in range(y)] 11 12xx = random.random() * x 13xx = int(xx) 14 15yy = random.random() * y 16yy = int(yy) 17 18a[xx][yy] = 1 19 20i = 1 21while i == 1: 22 print("攻撃目標を入力してください") 23 xxx = input("横の位置は?") 24 xxx = int(xxx) 25 26 yyy = input("縦の位置は?") 27 yyy = int(yyy) 28 29 if xxx != 9: 30 if a[xxx][yyy] == 1: 31 print("撃沈!") 32 i = 2 33 else: 34 print("はずれ!周囲に敵艦!") 35 else: 36 print("残念!また挑戦してください") 37 print("正解は 横=" , xx, "縦=" , yy, " でした") 38print("ゲーム終了!")

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

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

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

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

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

episteme

2021/07/27 12:01

しつもんはなんですか。
A_.

2021/07/27 12:14

追加して作ってほしいのです
episteme

2021/07/27 12:21

それは依頼であって質問ではありません。 「つくりたい」ではなかったのですか?
fiveHundred

2021/07/27 12:21

ここは代わりに作ってもらえるサイトではありません。
BeatStar

2021/07/27 12:34

まず、プログラミングは簡単ではありません。 たかだか一括処理程度ですら1〜2日は使います。 それなのに、『自分では努力せずに』、『他人がやるのが当たり前』なのでしょうか。 回答者は金をもらって回答しているわけではありません。
BeatStar

2021/07/27 12:39 編集

https://note.com/ebiebi_pg/n/nf3519b5041ee にあるように『1,2万円貰っても割りに合わない』のに、 『無報酬でやれ』は正しいのでしょうか。 せめてその手のところに金を払ってやってもらいましょう。
udon-ken

2021/07/27 14:12

まあ、こういう人間性なんですよ・・・ 前回は知恵袋に投稿して回答(やり方の説明のみ)は付いたけどコードが貰えなかったので、知恵袋での回答で得た見識は一切盛り込まず、知恵袋での質問と全く同一のままここにマルチポストしましたからね… しかも、指摘したら返答もなく速攻で知恵袋の質問を削除して無かった事にしましたからね。
guest

回答1

0

teratailのルールとして、作成依頼はこの掲示板の目的ではないのですよ。

そこで、考え方だけ言いますと、日本語の仕様をよく理解することで、
自然とどういうプログラムを書くかが見えてきます。どういうことか。


機雷の置かれた座標(縦,横)を人間が指定した場合には,即終了とする.

たとえば、「Aした場合にはB」という言葉があれば、
IF文」で実装できると、慣れればパッと見で分かります。
英語の翻訳で、いろいろな構文があるのと同じです。

指定された座標の周囲に潜水艦がいるかどうか

Aかどうか」も、IF文の構文で対応できますね。
「周囲」というのは、座標(の変数や配列の値)を
プラスマイナス1した値をチェックすれば分かります。


英語の翻訳で大意をつかむ作業と同じようなことでして、
仕様の文章をよく見るだけでも、大まかな流れが見えてきます。
「名詞を拾って変数にする」とかは、今となっては素朴な手法ですが、
でも、慣れるまでのとっかかりとしては、今でも十分アリだと思います。

応用問題として、この先仕様追加で、たとえば「ステルス艦」を出して、
レーダーには引っかからないけど、でも攻撃時に当たり判定はあるとか、
仕様の翻訳に慣れることで、機能拡張のアイディアも自然と出てきます。

投稿2021/07/27 12:47

LLman

総合スコア5592

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

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

A_.

2021/07/28 10:10

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問