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

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

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

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

Q&A

2回答

558閲覧

演算子が使えず、int()を使ってもエラーが治らない

tyaina

総合スコア0

Processing

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

0グッド

0クリップ

投稿2023/01/31 02:41

前提

processingでダイスゲームっぽいものを作っているのですが、画面の数字が3つ揃ったときにポイントを追加するという機能を実装中に以下のエラーメッセージが発生しました。

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  •  n,m,lの値が同じとき、xを20追加して、a,b,cが同じ値のとき、yの値を20増やしたい。

発生している問題・エラーメッセージ

The operator == is undefined for the argument type(s) boolean, int

該当のソースコード

java

1void setup() 2{ 3 size(1200,600); 4 textSize(100); 5} 6 7 int n = 0 ; 8 int m = 0 ; 9 int l = 0 ; 10 int a = 0 ; 11 int b = 0 ; 12 int c = 0 ; 13 int x = 0 ; 14 int y = 0 ; 15 int z = 0 ; 16void mousePressed() 17{ 18 n = int(random(1,6)); 19 m = int(random(1,6)); 20 l = int(random(1,6)); 21 a = int(random(1,6)); 22 b = int(random(1,6)); 23 c = int(random(1,6)); 24 z += 1 ; 25} 26 27void draw () 28{ 29 30 background (225); 31 textAlign(CENTER,CENTER); 32 text(n,100,height/2); 33 text(m,200,height/2); 34 text(m,300,height/2); 35 text(a,500,height/2); 36 text(b,600,height/2); 37 text(c,700,height/2); 38 text("you",200,50); 39 text("cpu",600,50); 40 text(x +"pt",200,500); 41 text(y +"pt",600,500); 42 line(400,0,400,600); 43 line(800,0,800,600); 44 noFill(); 45 rect(42,250,318,120); 46 rect(442,250,318,120); 47 line(148,250,148,370); 48 line(248,250,248,370); 49 line(548,250,548,370); 50 line(648,250,648,370); 51 text(z,1150,0); 52 if( z == 6){ 53 x = x * 0 ; 54 y = y * 0 ; 55 z = z * 0 ; 56} 57if ( n == l == m ){ 58 x+= 20 ; 59 } 60 if ( a == b == c ){ 61 y += 20 ; 62 } 63}

試したこと

ifの()の中にある変数を一度int()で囲ってみたのですが、囲っても同じメッセージが出てきてしまい
boolean()で囲ったらxとyの値が無限に増えてしまいました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

1T2R3M4

2023/01/31 02:52

n == l == m はどういう順番で処理される認識なのですか。
guest

回答2

0

a,b,cが同じ値のとき

Javaでは残念ながら、if ( a == b == c )のような比較はできません。
if ( a == b && a == c )if ( a == b && b == c )のようにしてください。

蛇足ながらPythonなら、if a == b == c:と書けます(ProcessingにはPythonモードがあります)
しかしPythonモードは勧めません(Python自体は大変良い言語ですが、Processingでの利用例は非常に少ないです)

n,m,lの値が同じとき、xを20追加して、a,b,cが同じ値のとき、yの値を20増やしたい。

各if文はdrawでなく、mousePressedにあるべきでしょう(揃ったときにすごい勢いでptが増えてしまう)

x = x * 0 ;

x = 0;でいいのでは?
代入ならx = y = z = 0;のように連続して書けます^^

投稿2023/01/31 13:44

TN8001

総合スコア9326

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

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

0

if ( n == l == m ){

コメントの方にも書かれてますが、これダメです
if ( (n == l) == m ){
という風に解釈されますよ。

投稿2023/01/31 03:22

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問