Skip to content

Instantly share code, notes, and snippets.

@HaruhiroTakahashi
Created May 29, 2015 09:48
Show Gist options
  • Save HaruhiroTakahashi/877564a5bcbfa4343286 to your computer and use it in GitHub Desktop.
Save HaruhiroTakahashi/877564a5bcbfa4343286 to your computer and use it in GitHub Desktop.
package Java;
public class Console {
//==========================================================================
// 序章を表示します
//==========================================================================
public static void putJyosyou()
{
put("ギムレーが" + "世界を滅ぼそうとしています。");
putStatus();
}
public static void putStatus()
{
put("---------------------------------------");
put(Player.getStatusString());
put("---------------------------------------");
}
//==========================================================================
// ゲームオーバー画面を表示します
//==========================================================================
public static void putGameOver()
{
put(Player.name + "はギムレーに敗れましたorz");
put("GAME OVER");
}
//==========================================================================
// ゲームクリア画面を表示します
//==========================================================================
public static void putGameClear()
{
String s0 = Player.name + "はギムレーを倒しました!";
put(s0);
System.out.print("レベル" + Player.lv);
if (Player.lv > 200) {
put("なのでギムレーはゴミでした。www");
} else if (Player.lv > 120) {
put("なのでギムレーは弱すぎでした。");
} else if (Player.lv > 80) {
put("なので余裕でした。");
} else if (Player.lv > 50) {
put("でしたが倒せました。");
} else {
put("でしたので苦戦しました。");
}
put("GAME CLEAR!");
}
//==========================================================================
// 引数で指定された文字列を表示します
//
//@param str
// 表示対象の文字列
//==========================================================================
public static void put(String str)
{
System.out.println(str);
}
}
package Java;
public class part18
{
public static void main(String[] args) throws java.io.IOException
{
System.out.println("やっはろー");
new MyFrame();
// my.createMyFrame();
}
}
package Java;
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MyFrame extends JFrame
{
JLabel jlMsg;
JPanel jpChild2;
BufferedImage biMonster;
public MyFrame() throws java.io.IOException
{
File file = new File("test1.jpeg"); // ファイルを開く
biMonster = ImageIO.read(file); // 画像全体を読み込む
setBounds(20, 40, 1100, 1000); // フレームサイズ設定
setDefaultCloseOperation(EXIT_ON_CLOSE); // ×ボタン有効化
add(createBasePanel()); // 親パネルを作成し、フレームに貼り付け
setVisible(true); // フレームを表示状態へ
enableEvents( java.awt.AWTEvent.KEY_EVENT_MASK); //キー入力有効化
}
protected void processKeyEvent( java.awt.event.KeyEvent e )
{
if(e.getID() == java.awt.event.KeyEvent.KEY_PRESSED){
System.out.println("キー " + e.getKeyCode() + "のイベント" + e.getID() + "が、発生");
if(e.getKeyCode() == java.awt.event.KeyEvent.VK_1)
{
jlMsg.setText("魔王と戦い勝負しました");
}
if(e.getKeyCode() == java.awt.event.KeyEvent.VK_2)
{
jpChild2.removeAll();
addMonster();
}
if(e.getKeyCode() == java.awt.event.KeyEvent.VK_3)
{
jlMsg.setText("夜はお楽しみでした");
}
}
}
//==========================================================================================
// 基盤パネル作成
//==========================================================================================
JPanel createBasePanel() throws java.io.IOException
{
JPanel jp = createPanel(Color.BLACK);
/**
* パネルを作成し、背景色を設定します。
*/
// フォントを作成
Font f = new Font("メイリオ", Font.BOLD, 50);
// レイアウト1行目
// パネルを作成し、親パネルに貼り付け
JPanel jpChild = new JPanel();
jpChild.setBackground(Color.BLUE);
jp.add(jpChild);
// ラベルを作成し、子パネルに貼り付け
JLabel jlChild = new JLabel(Player.getStatusString());
jlChild.setFont(f);
jlChild.setForeground(Color.WHITE);
jpChild.add(jlChild);
// レイアウト2行目
// パネルを作成し、親パネルに貼り付け
jpChild2 = createPanel(Color.CYAN);
jp.add(jpChild2);
// 選択肢をパネルに貼り付け JLabel jlMain = new
JLabel jlMain = new JLabel("<html>1. 魔王を倒しに行く<br>2. 修行する<br>3. 宿屋に泊まる");
jlMain.setFont(f);
jpChild2.add(jlMain);
// レイアウト3行目
// ラベルを作成し、親パネルに貼り付け
jlMsg = new JLabel("魔王が世界を滅ぼそうとしています。");
jlMsg.setFont(f);
jlMsg.setForeground(new Color(255, 128, 0));
jp.add(jlMsg);
return (jp);
}
//==========================================================================================
// モンスターをパネルに貼り付け
//==========================================================================================
void addMonster()
{
java.util.Random r = new java.util.Random(); // 敵出現
int e = r.nextInt(6) + 1; // 敵の数
jlMsg.setText(" 敵が " + e + " 匹、現れた");
int cw = 41; // セルサイズ・幅
int ch = 48; // セルサイズ・高さ
int sw = cw * 4; // 表示サイズ・幅
int sh = ch * 4; // 表示サイズ・高さ
for (int i = 0; i < e; i = i + 1)
{
putMonster(jpChild2, biMonster, 0, 9, cw, ch, sw, sh); // モンスター 3-4 表示
}
}
//==========================================================================================
// パネルを作成し、背景色を設定します。
//==========================================================================================
JPanel createPanel(Color c)
{
JPanel jp = new JPanel();
jp.setBackground(c);
return (jp);
}
/**
* モンスターを表示します。
*
* @param jpChild2
* 表示対象パネル
* @param ba
* 画像全体
* @param x
* 表示するセル座標x
* @param y
* 表示するセル座標y
* @param cw
* セルの大きさ・幅
* @param ch
* セルの大きさ・高さ
* @param sw
* 表示サイズ・幅
* @param sh
* 表示サイズ・高さ
*/
void putMonster(JPanel jpChild2, BufferedImage ba, int x, int y,
int cw, int ch, int sw, int sh)
{
BufferedImage bs = ba.getSubimage(cw * x, ch * y, cw, ch);
Image im = bs.getScaledInstance(sw, sh, Image.SCALE_DEFAULT);
ImageIcon ii = new ImageIcon(im); // JLabel用に型変換
JLabel jlImage = new JLabel(ii); // 画像部品を作成
jlImage.setSize(sw, sh); // 画像サイズを設定
jpChild2.add(jlImage); // 画像を貼り付け
}
}
package Java;
public class part01
{
public static void main(String[] args) throws java.io.IOException
{
Console.putJyosyou(); // 序章を表示
putCommand(); // コマンドを表示
if (Player.hp == 0)
{
return;
}
// 魔王を倒しに行く
if (Player.lv < 40) // レベルが40未満の場合
{
Console.putGameOver(); // ゲームオーバー画面を表示
} else { // レベルが40以上の場合
Console.putGameClear(); // ゲームクリアの画面を表示
}
}
//==========================================================================
// コマンドを表示します。
//
// @exception IOException
// 入出力エラーが発生した場合
//==========================================================================
public static void putCommand() throws java.io.IOException
{
Console.put("1. 邪竜ギムレーを倒しに行く");
Console.put("2. 修行する");
Console.put("3. 宿屋に泊まる");
// int c = inputCommand();
switch (inputCommand())
{
case '1':
{ // 1. 魔王を倒しに行く
Console.put("邪竜ギムレーが現れた!");
break;
}
case '2':
{ // 2. 修行する
syugyou();
break;
}
case '3':
{ // 3.宿屋に泊まる
if (Player.gold > 9.95)
{
Player.hp = Player.lv;
Player.gold -= 9.95;
}
Console.putStatus();
putCommand();
break;
}
}
}
//==========================================================================
// 修行する
//==========================================================================
public static void syugyou() throws java.io.IOException
{
java.util.Random r = new java.util.Random(); // 敵出現
int e = r.nextInt(9) + 1; // 敵の数
Console.put(" 敵が " + e + " 匹、現れた");
String m = "(´・ω・`)";
String s = "";
for (int i = 0; i < e; i = i + 1) {
s = s + m;
}
Console.put(s);
// HPを減らす
int d = r.nextInt(8);
Player.hp -= d;
if (Player.hp < 0)
{
Player.hp = 0;
}
Console.put(Player.name + " は、 " + d + " ポイントのダメージを受けた!");
// レベル上昇
Player.lv += e;
Console.put("レベルが" + Player.lv + "になった");
Console.putStatus();
if (Player.hp == 0)
{
Console.put("GAME OVER");
} else {
putCommand();
}
}
/*==========================================================================
// 入力ストリームからデータの次のバイトを読み込みます。 改行コードは無視されます。
//
// @return データの次のバイト ストリームの終わりに達した場合は-1
// @IOException 入出力エラーが発生した場合
==========================================================================*/
public static int inputCommand() throws java.io.IOException
{
int c = System.in.read();
if (c == 10 || c == 13) // 改行コード(CR又はLF)の場合
{
return (inputCommand());
}
return (c);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment