import java.net.*; import java.io.*; import java.awt.*; import java.applet.*; public class SlotSimulate extends Applet { // SlotResult window; TextField SET,ROUND; Button go,clear; Label msg,msg2; static Choice MAKER,MACHINE; static String w_title; static int big,reg,max,min,coin; public void init() { w_title="シミュレート結果"; setLayout(new BorderLayout()); SET=new TextField(1); SET.setBackground(Color.white); ROUND=new TextField(6); ROUND.setBackground(Color.white); go=new Button("Start!"); go.setBackground(Color.lightGray); clear=new Button("Clear"); clear.setBackground(Color.lightGray); MAKER=new Choice(); MAKER.setFont(new Font("Dialog",Font.PLAIN,14)); MAKER.setBackground(Color.white); MAKER.addItem(" メーカー "); MAKER.addItem("  山佐  "); MAKER.addItem("オリンピア"); MAKER.addItem(" アルゼ "); MAKER.select(0); MACHINE=new Choice(); MACHINE.setFont(new Font("Dialog",Font.PLAIN,14)); MACHINE.setBackground(Color.white); MACHINE.addItem("   マシン   "); MACHINE.select(0); msg=new Label("",Label.CENTER); msg.setFont(new Font("Dialog",Font.BOLD,16)); msg2=new Label("",Label.CENTER); msg2.setFont(new Font("Dialog",Font.BOLD,16)); msg2.setForeground(Color.red); Panel sp0=new Panel(); sp0.setLayout(new FlowLayout()); sp0.add("West",new Label("設定",Label.CENTER)); sp0.add("East",SET); Panel sp1=new Panel(); sp1.setLayout(new FlowLayout()); sp1.add("West",new Label("回転数",Label.CENTER)); sp1.add("East",ROUND); Panel sp2=new Panel(); sp2.setLayout(new FlowLayout()); sp2.add("West",go); sp2.add("East",clear); Panel sp3=new Panel(); sp3.setLayout(new FlowLayout()); sp3.add("West",sp0); sp3.add(sp1); sp3.add(MAKER); sp3.add("East",MACHINE); Panel sp4=new Panel(); sp4.setLayout(new BorderLayout()); sp4.add("North",msg); sp4.add(msg2); msg.setText("各データを入力して下さい。"); add("North",sp3); add("Center",sp4); add("South",sp2); setBackground(new Color(0x00,0xbf,0xff)); SET.requestFocus(); } public boolean action(Event e,Object o) { if(e.target instanceof Button) { if("Start!".equals(o)) { int maker=-1,machine=-1; if(SET.getText().equals("")) msg.setText("設定を入力して下さい。"); else if(Integer.parseInt(SET.getText())<=0 || 7<=Integer.parseInt(SET.getText())) { msg.setText("設定は 1 〜 6 です。"); } else if(ROUND.getText().equals("")) { msg.setText("回転数を入力して下さい。"); } else if(Integer.parseInt(ROUND.getText())<=0) { msg.setText("回転数は正数です。"); } else if(MAKER.getSelectedItem().equals(" メーカー ")) { msg.setText("メーカーを選択して下さい。"); } else if(MACHINE.getSelectedItem().equals("   マシン   ")) { msg.setText("マシンを選択して下さい。"); } else { maker=MAKER.getSelectedIndex()-1; machine=MACHINE.getSelectedIndex()-1; RoundStart(Integer.parseInt(SET.getText()),Integer.parseInt(ROUND.getText()),maker,machine); if(maker==0 && (machine==0 || machine==2)) msg.setText("Hiper "+big+" 回, Normal "+reg+" 回 。コイン "+coin+" 枚"); else msg.setText("Big "+big+" 回, REG "+reg+" 回 。コイン "+coin+" 枚"); msg2.setText("最速ヒット "+min+" 回転, 最大ハマリ "+max+" 回転"); } return true; } if("Clear".equals(o)) { MACHINE.removeAll(); MACHINE.addItem("   マシン   "); SET.setText(""); ROUND.setText(""); MAKER.select(0); MACHINE.select(0); return true; } } else if(e.target instanceof Choice) { if("  山佐  ".equals(o)) { MACHINE.removeAll(); MACHINE.addItem("   マシン   "); MACHINE.addItem("  ファウスト  "); MACHINE.addItem("  タイムクロス  "); MACHINE.addItem("   ナイツ   "); MACHINE.addItem("    M771    "); MACHINE.select(0); return true; } if("オリンピア".equals(o)) { MACHINE.removeAll(); MACHINE.addItem("   マシン   "); MACHINE.addItem(" ビートザドラゴン "); MACHINE.addItem(" アイスストーリー "); MACHINE.addItem("ホットロッドクィーン"); MACHINE.addItem("  バトルナイト  "); MACHINE.select(0); return true; } if(" アルゼ ".equals(o)) { MACHINE.removeAll(); MACHINE.addItem("   マシン   "); MACHINE.addItem("  サンダーV  "); MACHINE.addItem("デュエルドラゴンR"); MACHINE.addItem("  アレックス  "); MACHINE.addItem("   大花火   "); MACHINE.select(0); return true; } } return false; } // _/_/_/ method getRand() _/_/_/ public static int getRand() { return (int)(Math.round(Math.floor(Math.random()*100000))); } // _/_/_/ method RoundStart() _/_/_/ public void RoundStart(int set,int round,int maker,int machine) { String log=""; int now=0; int rate1[][][]={{{2409,2308,2185,2048,1905,1707},{3034,2926,2731,2560,2409,2409},{1998,1883,1781,1655,1503,1196},{4312,3996,3641,3277,2926,2409}}, {{3990,3760,3410,2990,2640,2380},{3290,3030,2870,2690,2520,2380},{2740,2530,2260,2100,1950,1700},{4280,4020,3830,3640,3220,2380}}, {{2926,2731,2601,2482,2445,2409},{3901,3562,3277,2979,2681,2409},{2979,2979,2825,2643,2521,2409},{4310,4000,3640,3210,2930,2410}}}, rate2[][][]={{{-1,-1,-1,-1,-1,-1},{4312,3641,3413,3213,3034,2409},{-1,-1,-1,-1,-1,-1},{12603,9638,9102,8623,8192,7447}}, {{7280,7280,6550,6550,5460,4780},{6550,6550,5950,5120,4360,3580},{-1,-1,-1,-1,-1,-1},{6550,6550,6060,6060,5120,3580}}, {{4312,4312,3996,3724,3034,2560},{4965,4551,4428,4428,4096,3641},{4681,3641,3641,3641,3641,3641},{6550,6550,6070,6070,5120,4820}}}; int average[][]={{460,375,410,630},{520,430,450,585},{375,500,375,585}}, gap[][]={{40,40,40,120},{60,50,40,65},{40,60,40,100}}; big=0; reg=0; max=0; min=10000; coin=0; for(int i=0;inow) min=now; now=0; } else if(getRand()%rate2[maker][machine][set-1]<10 && rate2[maker][machine][set-1]!=-1) { log+=now+" 回転 REG当選!\n"; coin-=(int)(now*1.6); coin+=14*8; reg++; if(maxnow) min=now; now=0; } } if(maxnow) min=now; if(max==min) min=0; // ノーボーナス coin-=(int)(now*1.6); } }