Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. import 'dart:io';
  2. import 'dart:math';
  3. import 'dart:math' show Random;
  4.  
  5. class InputOutput{
  6. var history = new List();
  7. input_output(){
  8. print('Enter the total number of balls to begin with, then press enter and type the maximum number of balls to be removed on a single round...');
  9. }
  10.  
  11. int input(){
  12. int x = int.parse(stdin.readLineSync());
  13. while (x < 1) {
  14. print('Please enter a positive number...');
  15. x = int.parse(stdin.readLineSync());
  16. }
  17. return x;
  18. }
  19.  
  20. int player_move(int k, int n){
  21. int m = input();
  22. int tmp;
  23. while(m > k || m < 1){
  24. print('Please enter a positive number...');
  25. m = input();
  26. }
  27. history.add('Player: $m');
  28. tmp = n-m;
  29. print('You removed $m, remaining number of balls is $tmp ');
  30. return m;
  31. }
  32.  
  33. int PC_move(int n_remain, int k_remove){
  34. print('The PC removed $k_remove balls, the remaining number of balls equals $n_remain.');
  35. history.add('PC: $k_remove');
  36. }
  37.  
  38. void record(){
  39. for (var i = 0; i < history.length; i++) print(history[i]);
  40. }
  41.  
  42. }
  43.  
  44. class Player extends InputOutput{
  45. int player_turn(int n, int k){
  46. int move = player_move(k,n);
  47. n -= move;
  48. return n;
  49. }
  50. }
  51.  
  52. class PC extends InputOutput{
  53. int PC_turn(int n, int k){
  54. var rand = new Random();
  55. int move = (rand.nextInt(k)%k)+1;
  56. PC_move(n-move, move);
  57. return move;
  58. }
  59. }
  60.  
  61. class Game extends InputOutput{
  62. var human_player, pc_player;
  63. int num_of_balls, max;
  64. bool human = false, computer = false;
  65. void game_turn(){
  66. print('To start choose a 0 or a 1 to know your turn!');
  67. int turn = int.parse(stdin.readLineSync());
  68. while(turn != 0 && turn != 1){
  69. print('Please enter a 0 or a 1...');
  70. turn = int.parse(stdin.readLineSync());
  71. }
  72. var randomizer = new Random();
  73. var rand_turn = randomizer.nextInt(2);
  74. if (turn == rand_turn){
  75. print('You go first!');
  76. human = true;
  77. }
  78. else if (turn != rand_turn){
  79. print("The PC goes first!");
  80. computer = true;
  81. }
  82. }
  83. Game(Player human_player, PC pc_player){
  84. input_output();
  85. num_of_balls = input();
  86. max = input();
  87. this.human_player = human_player;
  88. this.pc_player = pc_player;
  89. game_turn();
  90. int move;
  91. while (num_of_balls > 0) {
  92. if (human) {
  93. print('Pick a valid number of maximum value equals $max');
  94. num_of_balls = human_player.player_turn(num_of_balls, max);
  95. human = false;
  96. computer = true;
  97. if (num_of_balls <= 0) print('YOU WIN!!!!');
  98. }else if (computer){
  99. move = pc_player.PC_turn(num_of_balls, max);
  100. num_of_balls -= move;
  101. computer = false;
  102. human = true;
  103. if (num_of_balls <= 0) print('The PC won, good luck next time :(');
  104. }
  105. record();
  106. }
  107.  
  108.  
  109. }
  110.  
  111. }
  112.  
  113. void main(){
  114.  
  115. var inp_out = new InputOutput();
  116. var human = new Player();
  117. var pc = new PC();
  118. var game = new Game(human, pc);
  119.  
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement