public class CoordinateScore{
public int getSumOfScore(int x,int y){
int ans=0;
Circle c[] = {new Circle(0,0,5),
new Circle(3,0,2),
new Circle(-2,0,3),
new Circle(3,3,3),
};
for(int i=0;i<c.length;i++)ans+=c[i].getScore(x,y);
return ans;
}
}
class Circle{
int xx; //円の中心のx座標
int yy; //円の中心のy座標
int rr; //円の半径の長さ
public Circle(int x,int y,int r){
xx=x;
yy=y;
rr=r;
}
public int getScore(int x,int y){
//x,yで示される座標が円の内側にあるときは2,円周上にあるときは1,円の外側にある場合は0を返すメソッド。
int l=(xx-x)*(xx-x)+(yy-y)*(yy-y);
int h=0;
if(l<rr*rr)h=2;
if(l==rr*rr)h=1;
if(l>rr*rr)h=0;
return h;
}
}
public class CalcPanel extends Panel implements ActionListener{
JTextField hyouji = new JTextField(12);
public CalcPanel() {
setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints(); // the default setting
import base.*;
class Main {
public static void main(String args[]) {
AFrame frame= new AFrame();
CalcPanel p = new CalcPanel();
frame.add(p);
frame.pack();
frame.setTitle("calculator");
frame.setSize(frame.getPreferredSize());
frame.setVisible(true);
}
}
if(keisan[i] == "="){
if(i == 0){
hyouji.setText("計算式を入力");}
else{
for(int i= 0; i!=close.length(); i++){
char c= close.charAt(i);
switch( state ){
case 0:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= register*10+(c-'0'); break;
case '+': case '-': case '*': case '/':
x= register; tentativeOp= c;
state= 1; break;
case '=': break;
case 'c':
clearAll(); break;
default:
} break;
case 1:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
x= register; register= c-'0';
lastOp= tentativeOp; tentativeOp= NONE;
state= 2; break;
case '+': case '-': case '*': case '/':
tentativeOp= c; break;
case '=':
register= calc(x,tentativeOp,register);
lastOp= tentativeOp; tentativeOp= NONE;
state= 3; break;
case 'c':
clearAll(); break;
default:
} break;
case 2:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= register*10+(c-'0'); break;
case '+': case '-': case '*': case '/':
w= register; register= calc(x,lastOp,w); x= w;
tentativeOp= c;
state= 1; break;
case '=':
w= register; register= calc(x,lastOp,w); x= w;
state= 3; break;
case 'c':
clearAll(); break;
default:
} break;
case 3:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= c-'0';
state= 2; break;
case '+': case '-': case '*': case '/':
x= register;
tentativeOp= c;
state= 1; break;
case '=':
register= calc(register,lastOp,x); break;
case 'c':
clearAll(); break;
default:
} break;
}
}
}
Double r = new Double(register);
String k = r.toString(r);
hyouji.setText(k);
}
else{
if(keisan[i] == "C"){
hyouji.setText(null);
open = " ";
close = "";
}
else{
open = open.concat(keisan[i]);
hyouji.setText(open);
i++;}
}
}
private static void clearAll(){
register= x= 0.0;
lastOp= tentativeOp= NONE;
state= 0;
}
private static double calc(double l, char op, double r){
double res= 0.0;
switch( op ){
case '+': res= l+r; break;
case '-': res= l-r; break;
case '*': res= l*r; break;
case '=': res= l/r; break;
default:
System.exit(-1);
}
return res;
}
}
switch( state ){
case 0:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= register*10+(c-'0'); break;
case '+': case '-': case '×': case '÷':
x= register; tentativeOp= c;
state= 1; break;
case '=': break;
case '±':
register = register * -1;break;
default:
} break;
case 1:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
x= register; register= c-'0';
lastOp= tentativeOp; tentativeOp= NONE;
state= 2; break;
case '+': case '-': case '×': case '÷':
tentativeOp= c; break;
case '=':
register= calc(x,tentativeOp,register);
lastOp= tentativeOp; tentativeOp= NONE;
state= 3; break;
case '±':
register = register * -1;break;
default:
} break;
case 2:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= register*10+(c-'0'); break;
case '+': case '-': case '×': case '÷':
w= register; register= calc(x,lastOp,w); x= w;
tentativeOp= c;
state= 1; break;
case '=':
w= register; register= calc(x,lastOp,w); x= w;
state= 3; break;
case '±':
register = register * -1;break;
default:
} break;
case 3:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= c-'0';
state= 2; break;
case '+': case '-': case '×': case '÷':
x= register;
tentativeOp= c;
state= 1; break;
case '=':
register= calc(register,lastOp,x); break;
case '±':
register = register * -1;break;
default:
} break;
}
}
}
Double r = new Double(register);
memoryyobi = r;
String k = r.toString(r);
hyouji.setText(k);
open = "";
close = "";
register = 0.0;
state = 0;
mojisu = 0;
}
else{
if(keisan[i] == "C"){
hyouji.setText(null);
open = " ";
close = "";
mojisu = 0;
}
else{
if(keisan[i] == "MR"){
hyouji.setText(memory.toString());}
else{
if(keisan[i] == "M+"){
if(open == ""){
memory = memory + memoryyobi;}
else{
memory = memory + memory.valueOf(open);
open = "";
close = "";}
hyouji.setText(open);
}
else{
if(keisan[i] == "M-"){
if(open == ""){
memory = memory - memoryyobi;}
else{
memory = memory - memory.valueOf(open);
open = "";
close = "";
}
hyouji.setText(open);
}else{
if(keisan[i] == "MC"){
memory = 0.0;
}else{
switch(keisan[i].charAt(0)){
case '1':case '2':case '3':case '4':case '5':
case '6':case '7':case '8':case '9':case '0':
open = open.concat(keisan[i]);
hyouji.setText(open);
i++;
mojisu++;
break;
case '+':case '-':case '×':case '÷':
open = open.concat(keisan[i]);
hyouji.setText(open);
i++;
mojisu = 0;
hanten = false;break;
case '±':
if(hanten){open = "-" + open;}
else{
if(open.charAt(open.length()-mojisu-1) == '-'){
String mae = open.substring(0,open.length()-mojisu-1);
String ushiro = open.substring(open.length()-mojisu,open.length());
open = mae + "+" + ushiro;
hyouji.setText(open);
}else{
String mae = open.substring(0,open.length()-mojisu-1);
String ushiro = open.substring(open.length()-mojisu,open.length());
open = mae + "-" + ushiro;
hyouji.setText(open);
}break;
}
}
}
}
}
}
}
}
}
private static void clearAll(){
register= x= 0.0;
lastOp= tentativeOp= NONE;
state= 0;
}
private static double calc(double l, char op, double r){
double res= 0.0;
switch( op ){
case '+': res= l+r; break;
case '-': res= l-r; break;
case '×': res= l*r; break;
case '÷': res= l/r; break;
default:
System.exit(-1);
}
return res;
}
}
cc.gridwidth = 1; //reset to the default
cc.gridheight = 2;
cc.weighty = 1.0;
makebutton('=', gridbag, cc);
cc.weighty = 0.0; //reset to the default
cc.gridheight = 1;
makebutton('3', gridbag, cc);
makebutton('2', gridbag, cc);
cc.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton('1', gridbag, cc);
cc.gridwidth = 1; //reset to the default
makebutton('.', gridbag, cc);
cc.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton('0', gridbag, cc);
}
private void makebutton(final Character c,
GridBagLayout gridbag,
GridBagConstraints cc) {
Button button = new Button(c.toString());
gridbag.setConstraints(button, cc);
add(button);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
double w;
switch( state ){
case 0:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= register*10+(c-'0'); break;
case '+': case '−': case '×': case '÷':
x= register; tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '.':
keta=10;
state=4; break;
case '=': break;
case 'C':
clearAll(); break;
default:
} break;
case 1:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
x= register; register= c-'0';
lastOp= tentativeOp; tentativeOp= NONE;
state= 2; break;
case '+': case '−': case '×': case '÷':
tentativeOp= c; break;
case '±':
register*=-1;break;
case '=':
register= calc(x,tentativeOp,register);
lastOp= tentativeOp; tentativeOp= NONE;
state= 3; break;
case 'C':
clearAll(); break;
default:
} break;
case 2:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= register*10+(c-'0'); break;
case '+': case '−': case '×': case '÷':
w= register; register= calc(x,lastOp,w); x= w;
tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '.':
keta=10;
state=5; break;
case '=':
w= register; register= calc(x,lastOp,w); x= w;
state= 3; break;
case 'C':
clearAll(); break;
default:
} break;
case 3:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= c-'0';
state= 2; break;
case '+': case '−': case '×': case '÷':
x= register;
tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '=':
register= calc(register,lastOp,x); break;
case 'C':
clearAll(); break;
default:
} break;
case 4:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register+=(c-'0')/keta;
keta*=10; break;
case '+': case '−': case '×': case '÷':
x= register; tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '=': break;
case 'C':
clearAll(); break;
default:
} break;
case 5:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register+=(c-'0')/keta;
keta*=10; break;
case '+': case '−': case '×': case '÷':
w= register; register= calc(x,lastOp,w); x= w;
tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '=':
w= register; register= calc(x,lastOp,w); x= w;
state= 3; break;
case 'C':
clearAll(); break;
default:
} break;
}
System.out.println("計算結果:"+register);
}}
);
}
private static void clearAll(){
register= x= 0.0;
lastOp= tentativeOp= NONE;
state= 0;
}
private static double calc(double l, char op, double r){
double res= 0.0;
switch( op ){
case NONE:
System.out.println("NONE appeared"); System.exit(-1);
case '+': res= l+r; break;
case '−': res= l-r; break;
case '×': res= l*r; break;
case '÷': res= l/r; break;
default:
System.out.println("op:"+op); System.exit(-1);
}
return res;
}
}
public class GameBoard implements ActionListener{
BFrame bf;
Canvas cv;
static int M= 4;
static int c= 1;
JLabel xmae = new JLabel("縦:");
JLabel xushiro = new JLabel("番目");
JLabel ymae = new JLabel("横:");
JLabel yushiro = new JLabel("番目");
JLabel tyui = new JLabel("コマを打つ場所を指定してください。あなたのコマは白です。");
JTextField x = new JTextField(" ");
JTextField y = new JTextField(" ");
Button sente = new Button("先手");
Button gote = new Button("後手");
public class GameBoard implements ActionListener{
BFrame bf;
Canvas cv;
static int M= 4;
static int c= 1;
JLabel xmae = new JLabel("縦:");
JLabel xushiro = new JLabel("番目");
JLabel ymae = new JLabel("横:");
JLabel yushiro = new JLabel("番目");
JLabel tyui = new JLabel("コマを打つ場所を指定してください。あなたのコマは白です。");
JTextField x = new JTextField(" ");
JTextField y = new JTextField(" ");
Button sente = new Button("先手");
Button gote = new Button("後手");
Button pasu = new Button("パス");
cc.gridwidth = 1; //reset to the default
cc.gridheight = 2;
cc.weighty = 1.0;
makebutton('=', gridbag, cc);
cc.weighty = 0.0; //reset to the default
cc.gridheight = 1;
makebutton('3', gridbag, cc);
makebutton('2', gridbag, cc);
cc.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton('1', gridbag, cc);
cc.gridwidth = 1; //reset to the default
makebutton('.', gridbag, cc);
cc.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton('0', gridbag, cc);
}
private void makebutton(final Character c,
GridBagLayout gridbag,
GridBagConstraints cc) {
Button button = new Button(c.toString());
gridbag.setConstraints(button, cc);
add(button);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(renzoku)x=register=0;
renzoku=false;
double w;
switch( state ){
case 0:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= register*10+(c-'0'); break;
case '+': case '−': case '×': case '÷':
x= register; tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '.':
keta=10;
state=4; break;
case '=': break;
case 'C':
clearAll(); break;
default:
} break;
case 1:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
x= register; register= c-'0';
lastOp= tentativeOp; tentativeOp= NONE;
state= 2; break;
case '+': case '−': case '×': case '÷':
tentativeOp= c; break;
case '±':
register*=-1;break;
case '=':
register= calc(x,tentativeOp,register);
lastOp= tentativeOp; tentativeOp= NONE;
state= 3; break;
case 'C':
clearAll(); break;
default:
} break;
case 2:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= register*10+(c-'0'); break;
case '+': case '−': case '×': case '÷':
w= register; register= calc(x,lastOp,w); x= w;
tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '.':
keta=10;
state=5; break;
case '=':
w= register; register= calc(x,lastOp,w); x= w;
state= 3; break;
case 'C':
clearAll(); break;
default:
} break;
case 3:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register= c-'0';
state= 2; break;
case '+': case '−': case '×': case '÷':
x= register;
tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '=':
register= calc(register,lastOp,x); break;
case 'C':
clearAll(); break;
default:
} break;
case 4:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register+=(c-'0')/keta;
keta*=10; break;
case '+': case '−': case '×': case '÷':
x= register; tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '=': break;
case 'C':
clearAll(); break;
default:
} break;
case 5:
switch( c ){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
register+=(c-'0')/keta;
keta*=10; break;
case '+': case '−': case '×': case '÷':
w= register; register= calc(x,lastOp,w); x= w;
tentativeOp= c;
state= 1; break;
case '±':
register*=-1;break;
case '=':
w= register; register= calc(x,lastOp,w); x= w;
state= 3; break;
case 'C':
clearAll(); break;
default:
} break;
}
System.out.println("計算結果:"+register);
}}
);
}