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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

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

解決済

ゲームの初期化をさせたい

0pfrn
0pfrn

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

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

2回答

0評価

0クリップ

405閲覧

投稿2022/01/10 05:12

前提・実現したいこと

processingを使用したゲームを作成しています。
〇✕ゲームです。
ゲームをし終わったあともう一回したい時などにやり直してできるようにリセットボタン(ゲームの初期化)ができるようにしたいと考えています。

該当のソースコード

java

int X, Y; int map[][]={{1,1,1},{1,1,1},{1,1,1}}; int turn = 0; void setup(){ size(600,600); background(255); frameRate(12); strokeWeight(2); smooth(); line(0, 200, width, 200); line(0, 400, width, 400); line(200, 0, 200, height); line(400, 0, 400, height); } void draw(){ myturn(); PCturn(); } void myturn(){ if (turn % 2 == 0){ if(mousePressed == true){ X = mouseX / 200; Y = mouseY / 200; if(map[Y][X] == 1) { fill(255); ellipse(X*200+100, Y*200+100, 150, 150); map[Y][X]=2; win(); turn ++; } } } } void randomCheck(){ do{ X = int(random(3)); Y = int(random(3)); }while(map[Y][X] != 1); map[Y][X] = 3; drawX(X, Y); } boolean reach(){ int line = 1; // vertical reach for (X = 0; X < 3; X++){ for (Y = 0; Y < 3; Y++){ line *= map[Y][X]; } if(line == 9){ for (Y = 0; Y < 3; Y ++){ if(map[Y][X] == 1) return true; } } else if(line == 4){ for (Y = 0; Y < 3; Y ++){ if(map[Y][X] == 1) return true; } } } //horizontal reach line = 1; for (Y = 0; Y < 3; Y++){ for (X = 0; X < 3; X++){ line *= map[Y][X]; } if(line == 9){ for (X = 0; X < 3; X ++){ if(map[Y][X] == 1) return true; } } else if (line == 4){ for (X = 0; X < 3; X ++){ if(map[Y][X] == 1) return true; } } } // cross reach (right-down) line = map[0][0] * map[1][1] * map[2][2]; if(line == 9){ for(int i = 0; i < 3; i++){ if(map[i][i] == 1) { X = i; Y = i; return true; } } } else if (line == 4){ for(int i = 0; i < 3; i++){ if(map[i][i] == 1) { X = i; Y = i; return true; } } } // cross reach (right-up) line = map[2][0] * map[1][1] * map[0][2]; if(line == 9){ for(int i = 0; i < 3; i++){ if(map[2-i][i] == 1) { X = i; Y = 2 - i; return true; } } } else if(line == 4){ for(int i = 0; i < 3; i++){ if(map[2-i][i] == 1) { X = i; Y = 2 - i; return true; } } } return false; } void win(){ textSize(100); fill(0); textAlign(CENTER, CENTER); if ((map[0][0]*map[0][1]*map[0][2] == 8) || (map[1][0]*map[1][1]*map[1][2] == 8) || (map[2][0]*map[2][1]*map[2][2] == 8) || (map[0][0]*map[1][0]*map[2][0] == 8) || (map[0][1]*map[1][1]*map[2][1] == 8) || (map[0][2]*map[1][2]*map[2][2] == 8) || (map[0][0]*map[1][1]*map[2][2] == 8) || (map[2][0]*map[1][1]*map[0][2] == 8)){ text("You WIN‼", width/2, height/2); noLoop(); } else if ((map[0][0]*map[0][1]*map[0][2] == 27) || (map[1][0]*map[1][1]*map[1][2] == 27) || (map[2][0]*map[2][1]*map[2][2] == 27) || (map[0][0]*map[1][0]*map[2][0] == 27) || (map[0][1]*map[1][1]*map[2][1] == 27) || (map[0][2]*map[1][2]*map[2][2] == 27) || (map[0][0]*map[1][1]*map[2][2] == 27) || (map[2][0]*map[1][1]*map[0][2] == 27)){ text("You LOSE;;", width/2, height/2); noLoop(); } else if (turn >= 8){ text("DRAW^-^", width/2, height/2); noLoop(); } } void PCturn(){ if((turn % 2 == 1) && (turn < 9)){ if(turn == 1){ if(map[1][1] == 1){ drawX(1, 1); map[1][1] = 3; } else{ drawX(0, 0); map[0][0] = 3; } } else { if(reach()){ drawX(X, Y); map[Y][X] = 3; } else randomCheck(); } win(); turn ++; } } void drawX(int x, int y){ line(x*200, y*200, x*200+200, y*200+200); line(x*200+200, y*200, x*200, y*200+200); } void

試したこと

以前Greenowlさんの緑を救えというゲームを見て同じものを作成させていただきましたが、そのときに使用したゲームの初期化のところを参考に一度実行してみましたができなかったです。
一番最後にあるvoidにつながるように作成すればいいのでしょうか。
それとも別の変数を使用したほうがいいのでしょうか

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

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

TN8001

2022/01/10 09:03

> processingを使用したゲームを作成しています。 > 〇✕ゲームです。 こちらですね? [○×ゲームを作る (6) 仕上げ – ゲーム考](http://yutakana.org/gamekou/2017/01/09/tictactoe6/ 参考にしたものがある場合は、出典を明示してください。 特に記述がない場合、提示コードは本人が書いたものと(回答者は)考えます。 「ここまで書けているのになんでそのくらいできないんだろう??」と、不思議に感じてしまいます。 コードはほぼそのままのようですから、何一つわかっていない可能性すら考えなければならなくなります。 > そのときに使用したゲームの初期化のところを参考に一度実行してみましたができなかったです。 > 一番最後にあるvoidにつながるように作成すればいいのでしょうか。 別に間違っていてもいいので、書いてみたコードがあるならそれも提示してください。 > それとも別の変数を使用したほうがいいのでしょうか まあ何かしらあったほうが楽でしょうね。 例えば「やり直し」がキー入力でいいなら、比較的簡単に実装できます。 「やり直し」をマウスクリックによってやりたいとなると、元コードの作りがあまりよくないので結構な変更が必要になりそうです^^;

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

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