基本的に私はゲームボードを持っていて、エッジにない広場に最初の移動をすることは違法にしたいと考えています。フレームは5x5のゲームボードで、その順番に応じてクリック時に色が交互に変わります。WhileループはSwingアプリケーションで使用できませんか?
私の問題:私がプログラムを始めると、私が途中で押しているボタンが違法な動きであるとは言いません。コードが機能しない理由を誰でも説明できますか?ここで
は、いくつかのサンプルコードです:
package fgame;
import java.awt.Color;
import javax.swing.JOptionPane;
public class FooFrame extends javax.swing.JFrame {
private Color whoseTurn = Color.BLACK;
private Color playerOneTurn = Color.BLACK;
private Color playerTwoTurn = Color.ORANGE;
private String playerOne = "You";
private String playerTwo;
private int PlayerOneCount = 21;
private int PlayerTwoCount = 21;
public FooFrame() {
initComponents();
setSize(800,800);
setLocationRelativeTo(null);
humanOrAI();
movesLeft();
endGame();
}
private void humanOrAI()
{
Object[] options = {"Other Human","Computer (EASY)","Computer (HARD)"};
Object input = (Object) JOptionPane.showInputDialog(null,
"Who is your opponent?",
"CHOOSE YOUR FATE!",JOptionPane.QUESTION_MESSAGE,
null,options,
options[0]);
if (input == options[0]){
playerTwo = (String.valueOf(options[0]));
}
else if (input == options[1]){
playerTwo = (String.valueOf(options[1]));
}
else {
playerTwo = (String.valueOf(options[2]));
}
}
private void determineWhoseTurn()
{
if (whoseTurn.equals(playerOneTurn))
{
whoseTurn = Color.orange;
}
else
{
whoseTurn = Color.BLACK;
}
}
public void movesLeft()
{
if (whoseTurn.equals(playerOneTurn))
{
jLabel1.setText(" " + playerOne + " have " + PlayerOneCount+ " pieces left "
+ " "+ playerTwo+ " has " + PlayerTwoCount+ " pieces left");
PlayerOneCount--;
}
else
{
jLabel1.setText(" " + playerOne + " have " + PlayerOneCount+ " pieces left "
+ " "+ playerTwo+ " has " + PlayerTwoCount+ " pieces left");
PlayerTwoCount--;
}
}
//How do I count the amount of black and orange squares?
public void endGame()
{
int black = 0;
int orange = 0;
if (whoseTurn.equals(playerOneTurn))
{
black++;
}
else
{
orange++;
}
if (PlayerTwoCount <= 0 || PlayerOneCount <= 0)
{
JOptionPane.showMessageDialog(rootPane, "Game Over!" + " black: "+ black
+ "orange: "+ orange);
}
}
public void validStartingPoint()
{
Object illStartPoint[] = {B2,B3,B4,C2,C3,C4,D2,D3,D4};
while (PlayerOneCount == 21 || PlayerTwoCount == 21)
if (whoseTurn.equals(illStartPoint[0-8]))
{
JOptionPane.showMessageDialog(rootPane, "Not a valid move! Start "
+ "from an edge square!");
} else
{
break;
}
}
私の質問は、方法validStartingPoint()に関係します。しかし、私はendGame()についての質問もありましたが、それはその上のコメントに置かれています。すべてのメソッドはすべて私のJBUTTONSで呼び出されます
また、これはwhileループとは関係がないことに気付いています。私は世界で最高のコーダーではない。
投票閉じるにはあなたが何を求めているのかは不明です。明らかにあなたのコードでループを使用するのは上手く、私はここに他の質問はありません。私は、あなたが期待していないことが起こっていることの説明を見ていません。 – nhouser9
あなたの主な質問は簡単です:もちろんwhileループはSwingアプリケーションにも当てはまりますが、基本的な質問は実際にはなく、実際は不完全です。あなたのコードの問題については何も教えてくれず、実行できるものを投稿していない。この質問を改善し、[mcve]を提供することを検討してください(リンクの心ではありません)、私たちはより良い回答を見つける能力を持っていきます。 –
@HovercraftFullOfEelsもっとコードを追加しました – lenti