online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
package Day03; import java.util.*; public class StrategyPattern { public static void main(String[] args) { Context c = new Context(); // 建立環境 Strategy paper = new Paper(); // 建立剪刀石頭布 Strategy scissors = new Scissors(); Strategy stone = new Stone(); Type[] arr = {Type.PAPER, Type.SCISSORS, Type.STONE}; Scanner scanner = new Scanner(System.in); System.out.println("剪刀石頭布!!!"); Random ran = new Random(); while(true){ int num = ran.nextInt(3)+1; System.out.println("請出拳(1:剪刀;2:石頭;3:布):"); int input = scanner.nextInt(); switch(input){ // 根據輸入不同的數字選擇不同策略 case 1: c.setStrategy(scissors); break; case 2: c.setStrategy(stone); break; case 3: c.setStrategy(paper); break; } c.strategyMethod(arr[num - 1]); System.out.println("-----------------"); } } } enum Type { // 建立一個列舉方便等等程式使用 PAPER, SCISSORS, STONE } //抽象策略类 interface Strategy { public void strategyMethod(Type type); //策略方法 } //實體策略:布 class Paper implements Strategy { public void strategyMethod(Type type) { switch(type){ case PAPER: System.out.println("敵人出布,我出布 => 平手"); break; case SCISSORS: System.out.println("敵人出剪刀,我出布 => 輸"); break; case STONE: System.out.println("敵人出石頭,我出布 => 贏"); break; } } } //實體策略:剪刀 class Scissors implements Strategy { public void strategyMethod(Type type) { switch(type){ case PAPER: System.out.println("敵人出布,我出剪刀 => 贏"); break; case SCISSORS: System.out.println("敵人出剪刀,我出剪刀 => 平手"); break; case STONE: System.out.println("敵人出石頭,我出剪刀 => 輸"); break; } } } //實體策略:石頭 class Stone implements Strategy { public void strategyMethod(Type type) { switch(type){ case PAPER: System.out.println("敵人出布,我出石頭 => 輸"); break; case SCISSORS: System.out.println("敵人出剪刀,我出石頭 => 贏"); break; case STONE: System.out.println("敵人出石頭,我出石頭 => 平手"); break; } } } //環境 class Context { private Strategy strategy; public Strategy getStrategy() { return strategy; } public void setStrategy(Strategy strategy) { this.strategy = strategy; } public void strategyMethod(Type type) { strategy.strategyMethod(type); } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue