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

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

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

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

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

1回答

345閲覧

pytonのコードをprocessing pytonモードで書き換え

t82992

総合スコア1

Python

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

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

1グッド

0クリップ

投稿2022/07/10 05:16

processing pytonモードで、数当てゲームを作りたいのですが、実行すると灰色の画面しか表示されません。どうすればいいでしょうか。

import random
count = 1
answer = random.randint(1,100)

x = 200
y = 300

def setup():
size(600, 600)
textSize(20)

def draw():
background(0)

global x, y, answer, count while True: number = key(0,9) print("Enter 1~100 ") if number.isdecimal(): number = int(number) else: print("Wrong Enter.Please enter the numbers again") continue if answer == number: print("correct. correct is " + str(answer)) print("Correctly answered in the" + str(count)+ "challenge+" ) break elif answer > number: print(str(number) + "is a larger number") count += 1 else: print(str(number) + "is a smaller number") count += 1
TN8001👍を押しています

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

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

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

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

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

meg_

2022/07/10 06:21

コードはコード全体を「コードの挿入」で記入してください。 Processingのバージョンは何ですか?
t82992

2022/07/11 02:17

バージョン4です。
guest

回答1

0

ベストアンサー

processing pytonモードで、数当てゲームを作りたい

ウィンドウを出している(size(600, 600))以上そこに表示をしたいんですよね?
まあコンソール出力はできても、コンソール入力ができないわけですが^^;

実行すると灰色の画面しか表示されません。どうすればいいでしょうか。

draw()は毎フレーム(デフォルトでは1秒に60回)呼ばれます。
その中で無限ループのようなことをしてはいけません(無限ではないですが^^;

あるいはエラーになって止まっているのかもしれません(Processing4だとエラーがなんも見えないですね^^;


Processingではユーザーから文字列を入力させる手軽な方法がありません(1文字の入力なら簡単に扱えます)
回答ではkeyTyped()で改行が入力されるまで、文字をため込むようにしてみました(バックスペースや矢印キーは未対応)

Processing

1count = 1 2answer = int(random(100)) + 1 3input = "" 4 5def setup(): 6 size(600, 600) 7 textSize(20) 8 textAlign(CENTER, CENTER) 9 background(0) 10 text("Enter 1~100", 0, 0, width, height) 11 12def draw(): 13 pass 14 15def keyTyped(): 16 global count, input 17 background(0) 18 19 if key != '\n': 20 input += key 21 text(input, 0, 0, width, height) 22 return 23 24 if not input.isdecimal(): 25 text("Wrong Enter. Please enter the numbers again", 0, 0, width, height) 26 input = "" 27 return 28 29 number = int(input) 30 input = "" 31 32 if answer == number: 33 s = "correct. correct is " + str(answer) \ 34 + "\nCorrectly answered in the " + str(count) + " challenge+" 35 text(s, 0, 0, width, height) 36 return 37 elif answer < number: 38 text(str(number) + " is a larger number", 0, 0, width, height) 39 else: 40 text(str(number) + " is a smaller number", 0, 0, width, height) 41 42 count += 1

random() \ Language (API)
textAlign() \ Language (API)
text() \ Language (API)
keyTyped() \ Language (API)


コンソールプログラムとGUIプログラムでは、考え方(作り方)をガラッと変える必要があります。
コンソールプログラムに適した入力法と、GUIプログラムに適した入力法も当然変わってきます。

一例としてマウスホイールで、入力を決めるようにしてみました(使いやすいかどうかはまた別の話^^;

Processing

1count = 1 2answer = int(random(100)) + 1 3number = 50 4s = " " 5 6def setup(): 7 size(600, 600) 8 textFont(createFont(u"メイリオ", 30)) # 適当な日本語フォント 9 textAlign(CENTER, CENTER) 10 rectMode(CORNERS) 11 12def draw(): 13 background(0) 14 15 textSize(30) 16 text(u"1~100の数字を当ててね", 0, 0, width, height/2) 17 18 textSize(20) 19 text(u"ホイールで変更 クリックで確定", 0, 80, width, height/2) 20 21 textSize(100) 22 text(str(number), 0, 0, width, height) 23 24 textSize(30) 25 text(s, 0, height/2, width, height) 26 27def mouseClicked(): 28 global count, answer, number, s 29 30 if s[-1] == u"!": 31 count = 1 32 answer = int(random(100)) + 1 33 number = 50 34 s = " " 35 return 36 37 if answer == number: 38 s = str(count) + u"回で正解!!" 39 elif answer < number: 40 s = u"大きすぎます" 41 else: 42 s = u"小さすぎます" 43 44 count += 1 45 46def mouseWheel(event): 47 global number 48 49 if event.getCount() < 0: 50 number += 1 51 else: 52 number -= 1 53 54 number = constrain(number, 1, 100)

textFont() \ Language (API)
createFont() \ Language (API)
rectMode() \ Language (API)
mouseClicked() \ Language (API)
mouseWheel() \ Language (API)
constrain() \ Language (API)
アプリ画像

投稿2022/07/10 11:00

編集2023/07/30 11:38
TN8001

総合スコア9326

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

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

t82992

2022/07/11 02:28

回答ありがとうございます。修正してもらったコードで作りたかったものが作れたので、知らなかった部分を学習したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問