コンピュータ=0 対戦相手=0 勝負:あいこです! コンピュータ=0 対戦相手=1 勝負:グー(コンピュータ)の勝ちです! コンピュータ=0 対戦相手=2 勝負:グー(コンピュータ)の負けです! コンピュータ=1 対戦相手=0 勝負:チョキ(コンピュータ)の負けです! コンピュータ=1 対戦相手=1 勝負:あいこです! コンピュータ=1 対戦相手=2 勝負:チョキ(コンピュータ)の勝ちです! コンピュータ=2 対戦相手=0 勝負:パー(コンピュータ)の勝ちです! コンピュータ=2 対戦相手=1 勝負:パー(コンピュータ)の負けです! コンピュータ=2 対戦相手=2 勝負:あいこです! |
前田稔(Maeda Minoru)の超初心者のプログラム入門
/****************************************************/ /*★ 抽象(abstract)クラスでジャンケン 前田 稔 ★*/ /****************************************************/ using System; //抽象メソッドを持つ抽象クラスの定義 abstract class Hand { public abstract int Check(Hand h); //抽象メソッド public abstract int GuNiKachi(); //抽象メソッド public abstract int ChokiNiKachi();//抽象メソッド public abstract int PaNiKachi(); //抽象メソッド } |
class Gu : Hand { public override int Check(Hand h) { int val = h.GuNiKachi(); return val; } public override int GuNiKachi() { Console.WriteLine("あいこです!"); return 0; } public override int ChokiNiKachi() { Console.WriteLine("グー(コンピュータ)の勝ちです!"); return 1; } public override int PaNiKachi() { Console.WriteLine("グー(コンピュータ)の負けです!"); return -1; } }; |
class Choki : Hand { ・・・ }; class Pa : Hand { ・・・ }; |
class Jyanken { public static int Main() { Hand[] pHand = new Hand[3]; pHand[0] = new Gu(); pHand[1] = new Choki(); pHand[2] = new Pa(); for(int i=0; i<9; i++) { Console.Write("コンピュータ={0} 対戦相手={1} 勝負:", i/3, i%3); pHand[i%3].Check(pHand[i/3]); } Console.ReadLine(); return 0; } } |