0
このエラーって・・・
/*************************************************
kadai9G
*************************************************/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class kadai9G extends JFrame{
/* getNum */
public int getNum(){
int num = (int)(Math.random() * 10.0);
while(num > 5){
num = (int)(Math.random() * 10.0);
}
return num;
}
/* game メソッド */
public void game(){
/* インスタンスの作成 */
player per[] = new player[6];
Color c[] = {Color.green,Color.blue,Color.yellow,Color.gray,Color.orange,Color.pink};
/* ゲーム準備 */
for(int i = 0;i < 6;i++){
per[i] = new player(i + i, c[i]);
}
int beforeplayer = 9;
int nowplayer;
for(int i = 0; i < 10000; i++){
nowplayer = getNum();
if(nowplayer == beforeplayer + 1){
per[nowplayer].loss();
} else if(nowplayer == 0 && beforeplayer == 5){
per[nowplayer].loss();
} else {
per[nowplayer].win();
}
beforeplayer = nowplayer;
}
Graphics g = getGraphics();
for(int i = 0;i < 6; i++){
per[i].showValue(50 + 30*i,250,20,g);
}
g.dispose();
}
public static void main(String[] args){
kadai9G w = new kadai9G();
w.game();
}
}
/*************************************************
player クラス
*************************************************/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class player {
int count = 0;
int name;
Color color;
/* コンストラクタ */
public player(int mn,Color c){
name = mn;
color = c;
}
public void win(){
count++;
}
public void loss(){
count = count - 5;
}
/* 棒グラフ */
public void showValue(int x,int y,int w,Graphics g){
g.setColor(Color.black);
g.drawString(" "+ name,x,y);
if(count < 0){
g.setColor(Color.red);
count = -count;
} else {
g.setColor(color);
}
g.fillRect(x,y - 30 -count,w,count);
}
}
これを実行すると、
Exception in thread "main" java.lang.NullP
at player.showValue(player.java:32
at kadai9G.game(kadai9G.java:47)
at kadai9G.main(kadai9G.java:54)
と出てしまいます。。
何が間違っているのでしょうか?