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

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

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

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

Processing

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

Q&A

解決済

2回答

2989閲覧

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

0pfrn

総合スコア8

Java

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

Processing

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

0グッド

0クリップ

投稿2022/01/10 05:12

前提・実現したいこと

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

該当のソースコード

java

1int X, Y; 2int map[][]={{1,1,1},{1,1,1},{1,1,1}}; 3int turn = 0; 4 5void setup(){ 6 size(600,600); 7 background(255); 8 frameRate(12); 9 strokeWeight(2); 10 smooth(); 11 line(0, 200, width, 200); 12 line(0, 400, width, 400); 13 line(200, 0, 200, height); 14 line(400, 0, 400, height); 15} 16 17void draw(){ 18 myturn(); 19 PCturn(); 20} 21 22void myturn(){ 23 if (turn % 2 == 0){ 24 if(mousePressed == true){ 25 X = mouseX / 200; 26 Y = mouseY / 200; 27 if(map[Y][X] == 1) { 28 fill(255); 29 ellipse(X*200+100, Y*200+100, 150, 150); 30 map[Y][X]=2; 31 win(); 32 turn ++; 33 } 34 } 35 } 36} 37 38void randomCheck(){ 39 do{ 40 X = int(random(3)); 41 Y = int(random(3)); 42 }while(map[Y][X] != 1); 43 map[Y][X] = 3; 44 drawX(X, Y); 45} 46 47boolean reach(){ 48 int line = 1; 49 50 // vertical reach 51 for (X = 0; X < 3; X++){ 52 for (Y = 0; Y < 3; Y++){ 53 line *= map[Y][X]; 54 } 55 if(line == 9){ 56 for (Y = 0; Y < 3; Y ++){ 57 if(map[Y][X] == 1) return true; 58 } 59 } else if(line == 4){ 60 for (Y = 0; Y < 3; Y ++){ 61 if(map[Y][X] == 1) return true; 62 } 63 } 64 } 65 66 //horizontal reach 67 line = 1; 68 for (Y = 0; Y < 3; Y++){ 69 for (X = 0; X < 3; X++){ 70 line *= map[Y][X]; 71 } 72 if(line == 9){ 73 for (X = 0; X < 3; X ++){ 74 if(map[Y][X] == 1) return true; 75 } 76 } else if (line == 4){ 77 for (X = 0; X < 3; X ++){ 78 if(map[Y][X] == 1) return true; 79 } 80 } 81 } 82 83 // cross reach (right-down) 84 line = map[0][0] * map[1][1] * map[2][2]; 85 if(line == 9){ 86 for(int i = 0; i < 3; i++){ 87 if(map[i][i] == 1) { 88 X = i; 89 Y = i; 90 return true; 91 } 92 } 93 } else if (line == 4){ 94 for(int i = 0; i < 3; i++){ 95 if(map[i][i] == 1) { 96 X = i; 97 Y = i; 98 return true; 99 } 100 } 101 } 102 103 // cross reach (right-up) 104 line = map[2][0] * map[1][1] * map[0][2]; 105 if(line == 9){ 106 for(int i = 0; i < 3; i++){ 107 if(map[2-i][i] == 1) { 108 X = i; 109 Y = 2 - i; 110 return true; 111 } 112 } 113 } else if(line == 4){ 114 for(int i = 0; i < 3; i++){ 115 if(map[2-i][i] == 1) { 116 X = i; 117 Y = 2 - i; 118 return true; 119 } 120 } 121 } 122 123 return false; 124} 125 126void win(){ 127 textSize(100); 128 fill(0); 129 textAlign(CENTER, CENTER); 130 131 if ((map[0][0]*map[0][1]*map[0][2] == 8) || 132 (map[1][0]*map[1][1]*map[1][2] == 8) || 133 (map[2][0]*map[2][1]*map[2][2] == 8) || 134 (map[0][0]*map[1][0]*map[2][0] == 8) || 135 (map[0][1]*map[1][1]*map[2][1] == 8) || 136 (map[0][2]*map[1][2]*map[2][2] == 8) || 137 (map[0][0]*map[1][1]*map[2][2] == 8) || 138 (map[2][0]*map[1][1]*map[0][2] == 8)){ 139 text("You WIN‼", width/2, height/2); 140 noLoop(); 141 } 142 else if ((map[0][0]*map[0][1]*map[0][2] == 27) || 143 (map[1][0]*map[1][1]*map[1][2] == 27) || 144 (map[2][0]*map[2][1]*map[2][2] == 27) || 145 (map[0][0]*map[1][0]*map[2][0] == 27) || 146 (map[0][1]*map[1][1]*map[2][1] == 27) || 147 (map[0][2]*map[1][2]*map[2][2] == 27) || 148 (map[0][0]*map[1][1]*map[2][2] == 27) || 149 (map[2][0]*map[1][1]*map[0][2] == 27)){ 150 text("You LOSE;;", width/2, height/2); 151 noLoop(); 152 } 153 154 else if (turn >= 8){ 155 text("DRAW^-^", width/2, height/2); 156 noLoop(); 157 } 158} 159 160void PCturn(){ 161 if((turn % 2 == 1) && (turn < 9)){ 162 if(turn == 1){ 163 if(map[1][1] == 1){ 164 drawX(1, 1); 165 map[1][1] = 3; 166 } 167 else{ 168 drawX(0, 0); 169 map[0][0] = 3; 170 } 171 } 172 else { 173 if(reach()){ 174 drawX(X, Y); 175 map[Y][X] = 3; 176 } 177 else randomCheck(); 178 } 179 win(); 180 turn ++; 181 } 182} 183 184void drawX(int x, int y){ 185 line(x*200, y*200, x*200+200, y*200+200); 186 line(x*200+200, y*200, x*200, y*200+200); 187} 188 189void

試したこと

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

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

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

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

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

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

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

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

TN8001

2022/01/10 09:03

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

回答2

0

学校の授業で制作をしようとしていたのですが、先生に相談したところ初めから自分で考えないといけないらしく断念しました。

解決済みにするだけでなく方法などを記載するということをして質問完了ということをいまいちどヘルプを読んできます。

回答ありがとうございました֊ ̫ ֊

投稿2022/01/16 07:52

0pfrn

総合スコア8

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

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

0

ベストアンサー

一番最後にあるvoidにつながるように作成

??? そんなところにvoidがあったら文法に合致しないのでエラーです。エラーになるものは「プログラム」ではない、とも言えるでしょう。

別に手段は問いません。setupを終わったときと同じになるように変数と画面を設定してやればよいだけでは?

投稿2022/01/10 07:23

thkana

総合スコア7703

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問