diff --git a/src/Issun/MyApp.java b/src/Issun/MyApp.java new file mode 100644 index 0000000..bdc8dd0 --- /dev/null +++ b/src/Issun/MyApp.java @@ -0,0 +1,23 @@ +package Issun; + +public class MyApp { + public static void main(String[] args){ + + Issunboshi issunboshi = new Issunboshi(); + issunboshi.SetHeight(3); + Musume musume = new Musume(); + musume.SetHeight(160); + Oni oni = new Oni(); + oni.SetHeight(240); + + oni.dropKoduchi(); + musume.getKoduchi(); + + issunboshi.Height(); + + for(int i=0;i<6;i++){ + musume.hitKoduchi(issunboshi); + issunboshi.Height(); + } + } +} diff --git a/src/Issun/Person.java b/src/Issun/Person.java new file mode 100644 index 0000000..588f316 --- /dev/null +++ b/src/Issun/Person.java @@ -0,0 +1,53 @@ +package Issun; + +public class Person { + String myName; + int myHeight; + public void SetName(String name){ + myName = name; + } + public String GetName(){ + return myName; + } + + public void SetHeight(int height){ + myHeight = height; + } + public int GetHeight(){ + return myHeight; + } + public void Height(){ + System.out.println(GetName()+" の身長は" +GetHeight()+" cmです。"); + } + public void HeightChange(){ + myHeight *= 2; + } +} + +class Musume extends Person { + Musume(){ + myName = "娘"; + } + void getKoduchi(){ + System.out.println(myName+" は小槌を拾いました"); + } + void hitKoduchi(Person target){ + System.out.println(myName+" は "+target.GetName()+" をたたきました"); + target.HeightChange(); + } +} + +class Issunboshi extends Person { + Issunboshi(){ + myName = "一寸法師"; + } +} + +class Oni extends Person { + Oni(){ + myName = "鬼"; + } + void dropKoduchi(){ + System.out.println(myName+" は小槌を落としました"); + } +} diff --git a/src/Kabu/TheGiantTurnip.java b/src/Kabu/TheGiantTurnip.java new file mode 100644 index 0000000..5fdeee9 --- /dev/null +++ b/src/Kabu/TheGiantTurnip.java @@ -0,0 +1,138 @@ +package Kabu; + +public class TheGiantTurnip { + public static void main(String[] args){ + System.out.println("「おおきなかぶ」~ロシア民話~"); + + Human jisan = new Human("おじいさん",40); + Turnip kabu = jisan.plant(); + + jisan.grab(kabu); + jisan.pull(); + + Human basan = new Human("おばあさん",20); + jisan.call(basan); + basan.pull(); + + Human mago = new Human("まご",10); + basan.call(mago); + mago.pull(); + + Dog inu = new Dog(15); + mago.call(inu); + inu.pull(); + + Cat neko = new Cat(10); + inu.call(neko); + neko.pull(); + + Mouse nezumi = new Mouse(5); + neko.call(nezumi); + nezumi.pull(); + } +} + +abstract class Organism{ + String name = ""; + int power; + + abstract void pull(int receivedPower); + + String getName(){ + return name; + } +} + +class Animal extends Organism{ + + Organism grabbingObject; + + Turnip plant(){ + System.out.println(name + "はカブを植えました."); + return new Turnip(); + } + + void call(Animal dareka){ + dareka.grabbingObject = this; + System.out.println(name + "は" + dareka.getName() + "を呼んできました."); + } + + void pull() { + if(grabbingObject == null){ + System.out.println("何も掴んでいません"); + return; + } + if(grabbingObject instanceof Vegetable){ + System.out.println(name + "は" + grabbingObject.getName() + "を引っ張りました."); + }else{ + System.out.println(name + "は" + grabbingObject.getName() + "を引っ張り,"); + } + grabbingObject.pull(power); + } + + @Override + void pull(int receivedPower) { + if(grabbingObject == null){ + System.out.println("何も掴んでいません"); + return; + } + if(grabbingObject instanceof Vegetable){ + System.out.println(name + "は" + grabbingObject.getName() + "を引っ張りました."); + }else{ + System.out.println(name + "は" + grabbingObject.getName() + "を引っ張り,"); + } + grabbingObject.pull(power + receivedPower); + } + + void grab(Organism _grabbingObject){ + grabbingObject = _grabbingObject; + } +} +class Human extends Animal{ + Human(String _name, int _power){ + name = _name; + power = _power; + } +} +class Dog extends Animal{ + Dog(int _power){ + name = "犬"; + power = _power; + } +} +class Cat extends Animal{ + Cat(int _power){ + name = "猫"; + power = _power; + } +} +class Mouse extends Animal{ + Mouse(int _power){ + name = "ねずみ"; + power = _power; + } +} + +class Vegetable extends Organism{ + boolean harvest = false; + @Override + void pull(int receivedPower) { + System.out.println("うんとこしょ,どっこいしょ"); + if (power <= receivedPower){ + System.out.println(name + "は抜けました.(条件:"+power+"以上,現在:"+receivedPower+")"); + harvest = true; + }else{ + System.out.println("しかし" + name + "は抜けません.(条件:"+power+"以上,現在:"+receivedPower+")"); + System.out.println(); + } + } +} + +class Turnip extends Vegetable{ + Turnip(){ + name = "カブ"; + power = 100; + System.out.println("大きな"+ name + "ができました."); + } +} + diff --git a/src/Kaguyahime/Kaguyahime_story.java b/src/Kaguyahime/Kaguyahime_story.java new file mode 100644 index 0000000..d0a30e0 --- /dev/null +++ b/src/Kaguyahime/Kaguyahime_story.java @@ -0,0 +1,239 @@ +package Kaguyahime; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +abstract class Person{ + + public String name; + public String sex; + public Location address; + + public String getName() { + return name; + } + + public String getAddress () { + return address.getAddress(); + } + + public String getSex() { + return sex; + } + public void Move(Location address){ + this.address=address; + System.out.println(this.getName()+"は、"+this.getAddress()+"に移動しました"); + } +} + +class Kaguyahime extends Person{ + + private static Kaguyahime kaguyahime = new Kaguyahime(); + + public static Kaguyahime getInstance() { + return kaguyahime; + } + private Kaguyahime() { + } + + private String name="かぐや姫"; + private String sex="women"; + private Location address ; + + public String getName() { + return name; + } + + public String getAddress () { + return address.getAddress(); + } + + public String getSex() { + return sex; + } + + public void Move(Location address){ + this.address=address; + System.out.println(this.getName()+"は、"+this.getAddress()+"に移動しました"); + } +} + +class Ojiisan extends Person{ + + private static Ojiisan ojiisan = new Ojiisan(); + + public static Ojiisan getInstance() { + return ojiisan; + } + private Ojiisan() { + } + + private String name="おじいさん"; + private String sex="men"; + private Location address; + + public String getName() { + return name; + } + + public String getAddress () { + return address.getAddress(); + } + + public String getSex() { + return sex; + } + + public void Move(Location address){ + this.address=address; + System.out.println(this.getName()+"は、"+this.getAddress()+"に移動しました"); + } + + + void sibakari(Location location){ + this.address=location; + System.out.println(this.getName()+"は、"+this.getAddress()+"へ芝刈りへ行きました"); + } + + public void Find_take(){ + System.out.println(this.getName()+"は、"+this.getAddress()+"で光る竹を見つけました"); + } + + public Person take_cut(){ + System.out.println("ふしぎに思って切ってみると、そのなかには、ちいさくてかわいい女の子がはいっていました。"); + return Kaguyahime.getInstance(); + } +} + +class Mob extends Person{ + + public String name; + public String sex; + public Location address; + public Quest quest; + + public Mob(String name,String sex, Location location){ + this.name=name; + this.sex=sex; + this.address=location; + System.out.println(this.getName()+this.sex+"は、"+this.getAddress()+"に生成されました"); + } + + public String getName() { + return name; + } + + public String getAddress () { + return address.getAddress(); + } + + public String getSex() { + return sex; + } + public Quest getQuest() { + return quest; + } + + public void Move(Location address){ + this.address=address; + System.out.println(this.getName()+"は、"+this.getAddress()+"に移動しました"); + } + + public void AddQuest(Quest quest){ + this.quest=quest; + } +} + +class Location{ + public String address; + + public Location(String address){ + this.address=address; + } + + public String getAddress () { + return address; + } + + void set_name(String add){ + this.address=add; + } +} + +class Quest{ + Person character; + Person requester; + String target; + Location destination; + public Quest(Person character,Person requester,String target,Location destination){ + this.character = character; + this.requester = requester; + this.target = target; + this.destination = destination; + } + + public boolean try_quest(){ + System.out.println(this.character.getName()+"は、"+this.requester.getName()+"からの依頼に挑戦しました。ターゲットは"+this.destination.getAddress()+"の"+this.target+"です"); + return false; + } +} + +public class Kaguyahime_story { + public static void main(String[] args) { + System.out.println("Kaguyahime_start"); + + Location near_miyako=new Location("都の近く"); + Ojiisan ojiisan =Ojiisan.getInstance(); + Location yama=new Location("山"); + ojiisan.sibakari(yama); + ojiisan.Find_take(); + Person kaguyahime = ojiisan.take_cut(); + + kaguyahime.Move(near_miyako); + ojiisan.Move(near_miyako); + + List Males_name = new ArrayList<>(Arrays.asList("石作皇子", "庫持皇子", "右大臣阿部御主人","大納言大友御行","中納言石上麿呂足")); + List Males = new ArrayList<>(); + Location miyako=new Location("都"); + System.out.println("・・・・・・・・・・・・"); + for (int i =0 ;i<=4;i++){ + Males.add(new Mob(Males_name.get(i), "男", miyako)); + } + + System.out.println("・・・・・・・・・・・・"); + for (int i =0 ;i<=4;i++){ + Males.get(i).Move(near_miyako); + } + + List Items = new ArrayList<>(Arrays.asList("仏の御石の鉢", "根は白金、茎は黄金、白い珠の実の付く枝", "火ねずみの皮衣","龍の首の五色の珠","燕の子安貝")); + List Destination = new ArrayList<>(Arrays.asList(new Location("天竺行") , new Location("蓬莱山"), new Location("唐土,インド"),new Location("不明"),new Location("不明"))); + + for(int i=0;i<=4;i++){ + Males.get(i).AddQuest( new Quest(Males.get(i),kaguyahime,Items.get(i),Destination.get(i)) ); + } + boolean result; + List engagement = new ArrayList<>(); + for(int i=0;i<=4;i++){ + result = Males.get(i).quest.try_quest(); + if (result==false){ + System.out.println("クエストは失敗しました"); + } + else{ + System.out.println("クエストは成功しました"); + engagement.add(Males.get(i)); + } + } + + System.out.println("クエストを達成した人は、"+engagement.size()+"でした"); + + if (engagement.size() ==0){ + Location thuki=new Location("月"); + kaguyahime.Move(thuki); + } + else{ + System.out.println(kaguyahime.getName()+"と"+engagement.get(0)+"は結婚しました"); + } + System.out.println("おしまい"); + } +} \ No newline at end of file diff --git a/src/Ono/Megami.java b/src/Ono/Megami.java new file mode 100644 index 0000000..12a99a1 --- /dev/null +++ b/src/Ono/Megami.java @@ -0,0 +1,14 @@ +package Ono; + +import java.util.ArrayList; +public class Megami { + + ArrayList allonowatasu(){ + ArrayList megamiitem = new ArrayList(); + + megamiitem.add(new GoldAx()); + megamiitem.add(new SilverAx()); + megamiitem.add(new IronAx()); + return megamiitem; + } +} \ No newline at end of file diff --git a/src/Ono/Ono.java b/src/Ono/Ono.java new file mode 100644 index 0000000..d5863c0 --- /dev/null +++ b/src/Ono/Ono.java @@ -0,0 +1,27 @@ +package Ono; + +public class Ono { + public String name =""; + + @Override + public String toString(){ + return name; + } + +} +class GoldAx extends Ono{ + public GoldAx(){ + name = "金の斧"; + } +} + +class SilverAx extends Ono{ + public SilverAx(){ + name = "銀の斧"; + } +} +class IronAx extends Ono{ + public IronAx(){ + name = "鉄の斧"; + } +} \ No newline at end of file diff --git a/src/Ono/Shoujikimono.java b/src/Ono/Shoujikimono.java new file mode 100644 index 0000000..3e73899 --- /dev/null +++ b/src/Ono/Shoujikimono.java @@ -0,0 +1,34 @@ +package Ono; + +import java.util.ArrayList; + +public class Shoujikimono extends StoryTemplate{ + + private String name = "正直な木こり"; + + @Override + protected void dropOno() { + ArrayListshokiitem = new ArrayList(); + shokiitem.add(new IronAx()); + System.out.println(name+"が"+shokiitem.toString()+"を落とした"); + shokiitem.clear(); + + } + + @Override + protected void listenOno() { + ArrayListlistenono = new ArrayList(); + listenono.add(new GoldAx()); + listenono.add(new SilverAx()); + listenono.add(new IronAx()); + System.out.println("あなたがおとしたのは"+listenono.get(0)+"or"+listenono.get(1)+"or"+listenono.get(2)+"?"); + + } + @Override + protected void shingi() { + + System.out.println("正直に落とした斧を答える"); + + } + +} diff --git a/src/Ono/Story.java b/src/Ono/Story.java new file mode 100644 index 0000000..4f75e5e --- /dev/null +++ b/src/Ono/Story.java @@ -0,0 +1,22 @@ +package Ono; + +public class Story { + public static void main(String[] args) throws Exception { + + Megami megami = new Megami(); + + //正直者の場合 + StoryTemplate shojikimono = new Shoujikimono(); + + shojikimono.startStory(); + shojikimono.morauOno(megami.allonowatasu()); + + System.out.println("----------------------"); + + //嘘つきの場合 + StoryTemplate usotuki = new Usotuki(); + + usotuki.startStory(); + usotuki.lostOno(); + } +} \ No newline at end of file diff --git a/src/Ono/StoryTemplate.java b/src/Ono/StoryTemplate.java new file mode 100644 index 0000000..72b73bc --- /dev/null +++ b/src/Ono/StoryTemplate.java @@ -0,0 +1,36 @@ +package Ono; + +import java.util.ArrayList; + +public abstract class StoryTemplate { + + ArrayList resultitem; + + public final void startStory() { + // 斧を落とす + dropOno(); + // どちらの斧を落としたか聞く + listenOno(); + // どう答えるか + shingi(); + + } + + protected abstract void dropOno(); + + protected abstract void listenOno(); + + protected abstract void shingi(); + + protected void morauOno(ArrayList allono) { + resultitem = allono; + for (Ono one : allono) { + System.out.println(one.toString() + "を受け取った"); + } + } + + protected void lostOno() { + System.out.println("全てを失った"); + } + +} diff --git a/src/Ono/Usotuki.java b/src/Ono/Usotuki.java new file mode 100644 index 0000000..4e14f25 --- /dev/null +++ b/src/Ono/Usotuki.java @@ -0,0 +1,33 @@ +package Ono; + +import java.util.ArrayList; +public class Usotuki extends StoryTemplate{ + private String name = "嘘つきの木こり"; + + @Override + protected void dropOno() { + ArrayListshokiitem = new ArrayList(); + shokiitem.add(new IronAx()); + System.out.println(name+"が"+shokiitem.toString()+"を落とした"); + shokiitem.clear(); + + } + + @Override + protected void listenOno() { + ArrayListlistenono = new ArrayList(); + listenono.add(new GoldAx()); + listenono.add(new SilverAx()); + listenono.add(new IronAx()); + System.out.println("あなたがおとしたのは"+listenono.get(0)+"or"+listenono.get(1)+"or"+listenono.get(2)+"?"); + + } + + @Override + protected void shingi() { + + System.out.println("嘘をつく"); + + } + +} \ No newline at end of file diff --git a/src/Sanbuta/Ikimono.java b/src/Sanbuta/Ikimono.java new file mode 100644 index 0000000..43dcba0 --- /dev/null +++ b/src/Sanbuta/Ikimono.java @@ -0,0 +1,56 @@ +package Sanbuta; + +public class Ikimono { + String name = ""; + + void printName() { + System.out.println(name); + } + + void tateru(Zairyou nani) { + if (nani.toString() == "renga") { + System.out.println(name + "が " + nani.toString() + " の家を建てた"); + System.out.println(nani.toString() + " の家はとても頑丈です"); + } else { + System.out.println(name + "が " + nani.toString() + " の家を建てた"); + } + } + + void kowasu(Zairyou nani) { + if (nani.toString() == "renga") { + System.out.println(name + " の家はびくともしません"); + } else { + System.out.println(name + "が " + nani.toString() + " の家を壊した"); + } + } +} + +class Pigs extends Ikimono { + Pigs() { + name = "pigs"; + } +} + +class Wolf extends Ikimono { + Wolf() { + name = "wolf"; + } +} + +class LargePig extends Ikimono { + LargePig() { + name = "largepig"; + } +} + +class MiddlePig extends Ikimono { + MiddlePig() { + name = "middlepig"; + } +} + +class SmallPig extends Ikimono { + SmallPig() { + name = "smallpig"; + } +} \ No newline at end of file diff --git a/src/Sanbuta/MyApp.java b/src/Sanbuta/MyApp.java new file mode 100644 index 0000000..64f3fd8 --- /dev/null +++ b/src/Sanbuta/MyApp.java @@ -0,0 +1,29 @@ +package Sanbuta; + +public class MyApp { + public static void main(String[] args) throws Exception { + + LargePig largepig = new LargePig(); + MiddlePig middlepig = new MiddlePig(); + SmallPig smallpig = new SmallPig(); + + // smallpig.printName(); + Wara wara = new Wara(); + largepig.tateru(wara); + + // smallpig.printName(); + Mokuzai ki = new Mokuzai(); + middlepig.tateru(ki); + + // smallpig.printName(); + Renga renga = new Renga(); + smallpig.tateru(renga); + + Wolf wolf = new Wolf(); + + wolf.kowasu(wara); + wolf.kowasu(ki); + wolf.kowasu(renga); + + } +} diff --git a/src/Sanbuta/Zairyou.java b/src/Sanbuta/Zairyou.java new file mode 100644 index 0000000..994a30d --- /dev/null +++ b/src/Sanbuta/Zairyou.java @@ -0,0 +1,27 @@ +package Sanbuta; + +public class Zairyou { + String name = ""; + + @Override + public String toString(){ + return name; + } +} + +class Wara extends Zairyou { + Wara(){ + name = "wara"; + } +} + +class Mokuzai extends Zairyou { + Mokuzai(){ + name = "ki"; + } +} +class Renga extends Zairyou { + Renga(){ + name = "renga"; + } +} \ No newline at end of file diff --git a/src/Warashibe/Hito.java b/src/Warashibe/Hito.java new file mode 100644 index 0000000..d33448f --- /dev/null +++ b/src/Warashibe/Hito.java @@ -0,0 +1,43 @@ +package Warashibe; + +public class Hito { + String name = ""; + + public String toString() { + return name; + } + + // Otoko(){ + Hito() { + name = "Otoko"; + } + + void morau(Mikan mikan) { + System.out.println(name + "が " + mikan.toString() + " をもらった"); + } +} + +class Kodomo extends Hito { + Kodomo() { + name = "Kodomo"; + } +} + +class Musume extends Hito { + Musume() { + name = "Musume"; + } + +} + +class Samurai extends Hito { + Samurai() { + name = "Samurai"; + } +} + +class Tono extends Hito { + Tono() { + name = "Tono"; + } +} \ No newline at end of file diff --git a/src/Warashibe/Mono.java b/src/Warashibe/Mono.java new file mode 100644 index 0000000..78a8212 --- /dev/null +++ b/src/Warashibe/Mono.java @@ -0,0 +1,44 @@ +package Warashibe; + +public class Mono { + String name = ""; + + @Override + public String toString(){ + return name; + } +} + +class Wara extends Mono { + Wara(){ + name = "Wara"; + } + +} + +class Mikan extends Mono { + Mikan(){ + name = "Mikan"; + } + + +} +class Kireinakinu extends Mono { + Kireinakinu(){ + name = "Kireinakinu"; + } + + +} + +class Uma extends Mono { + Uma(){ + name = "Uma"; + } +} + +class House extends Mono { + House(){ + name = "House"; + } +} \ No newline at end of file diff --git a/src/Warashibe/SwapObjects.java b/src/Warashibe/SwapObjects.java new file mode 100644 index 0000000..33c9bf8 --- /dev/null +++ b/src/Warashibe/SwapObjects.java @@ -0,0 +1,24 @@ +package Warashibe; + +public class SwapObjects{ + public static void swap(House house1, House house2){ + House temp = house1; + house1 = house2; + house2 = temp; + } + + public static void main(String[] args) { + House house1 = new House(); + House house2 = new House(); + + house1.value = 5; + house2.value = 2; + + //swap using objects + swap(house1, house2); + System.out.println(house1.value +", " + house2.value); + } +} +class House { + public int value; +} diff --git a/src/Warashibe/Warashibe.java b/src/Warashibe/Warashibe.java new file mode 100644 index 0000000..eb73b15 --- /dev/null +++ b/src/Warashibe/Warashibe.java @@ -0,0 +1,8 @@ +package Warashibe; + +public class Warashibe { + public static void main(String[] args) { + Hito otoko = new Hito(); + System.out.println(""); + } +}