逻辑首先有控制台写了一下。
需要注意的地方不少:
- 进一步,需要考虑3个层面的问题。
- 前面的位置是空地,成功点,墙,还是箱子。
- 前面是箱子的时候,箱子的前面是空地,墙,成功点,还是箱子。
- 当移动的时候,原先人的地点是空地,成功点,需要恢复。
- 需要后退一步的时候,需要考虑两种情况。
- 恢复两个点的节点原先值。
- 由于上面2的情况,需要恢复3个点的原先值。
Source Code:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 struct State 8 { 9 public int posX, posY, mapx; 10 }; 11 12 namespace PushBox 13 { 14 15 16 class Program 17 { 18 // 1 表示 强 19 // 2 表示 人 20 // 3 表示 箱子 21 // 4 表示 成功点 22 static int[,] map = new int[10, 10] { 23 {1,1,1,1,1,1,1,1,1,1}, 24 {1,0,4,0,0,0,0,0,0,1}, 25 {1,0,0,0,0,4,0,0,0,1}, 26 {1,0,0,0,0,4,0,0,0,1}, 27 {1,0,0,0,0,3,0,0,0,1}, 28 {1,0,3,0,0,4,0,4,0,1}, 29 {1,4,0,4,4,2,0,3,0,1}, 30 {1,0,0,0,0,0,0,4,0,1}, 31 {1,0,0,0,0,0,0,0,0,1}, 32 {1,1,1,1,1,1,1,1,1,1} 33 }; 34 static int posX, posY; 35 36 static State[] list = new State[3]; 37 static int list_cnt = 0; 38 //箱子个数 39 static int cube_cnt; 40 static int _cube_cnt; 41 //步数 42 static int cnt; 43 44 45 static void pre_clear() 46 { 47 list_cnt = 0; 48 } 49 static void pre_save(int POSX,int POSY) 50 { 51 list[list_cnt].posX = POSX; 52 list[list_cnt].posY = POSY; 53 list[list_cnt].mapx = map[POSX, POSY]; 54 list_cnt++; 55 } 56 57 static bool victory() 58 { 59 int flag_cube_cnt = 0; 60 for (int i = 0; i < 10; i++) 61 { 62 for (int j = 0; j < 10; j++) 63 { 64 if (map[i, j] == 7) 65 flag_cube_cnt++; 66 } 67 } 68 return flag_cube_cnt == cube_cnt; 69 } 70 71 static void init() 72 { 73 cube_cnt = 0; 74 cnt = 0; 75 for (int i = 0; i < 10; i++) 76 { 77 for (int j = 0; j < 10; j++) 78 { 79 if (map[i, j] == 3) 80 { 81 cube_cnt++; 82 } 83 if (map[i, j] == 2) 84 { 85 posX = i; 86 posY = j; 87 pre_save(i, j); 88 } 89 } 90 } 91 } 92 93 static void draw() 94 { 95 Console.Clear(); 96 for (int i = 0; i < 10; i++) 97 { 98 for (int j = 0; j < 10; j++) 99 { 100 if (map[i, j] == 1) //# 101 { 102 System.Console.Write("■"); 103 } 104 else if(map[i,j]==0) 105 System.Console.Write(" "); 106 else if (map[i, j] == 2) //pepole 107 { 108 System.Console.Write("♀"); 109 } 110 else if(map[i,j] == 3) 111 { 112 System.Console.Write("△"); 113 } 114 else if (map[i, j] == 4) 115 { 116 System.Console.Write("☆"); 117 } 118 else if (map[i,j] == 6) // 人 + 成功点 119 { 120 System.Console.Write("◎"); 121 } 122 else if (map[i, j] == 7) 123 { 124 _cube_cnt++; 125 System.Console.Write("◆"); 126 127 128 } 129 130 } 131 Console.WriteLine(""); 132 133 } 134 /* 135 System.Console.Write("步数:{0}\n保存的链表",cnt); 136 137 for (int i = 0; i < list_cnt; i++) 138 { 139 Console.WriteLine("{0} {1} {2}", list[i].posX, list[i].posY, list[i].mapx); 140 141 }*/ 142 System.Console.WriteLine("按z键退回一步哦!"); 143 } 144 145 //向上移动 146 static void moveUp() 147 { 148 if (posX - 1 >= 0) 149 { 150 if (map[posX - 1, posY] == 0) // 空地 151 { 152 if (map[posX, posY] == 6) 153 { 154 pre_clear(); 155 pre_save(posX, posY); 156 pre_save(posX - 1, posY); 157 158 159 map[posX, posY] = 4; 160 map[posX-1,posY] = 2; 161 posX--; 162 //now_save(); 163 } 164 else if (map[posX, posY] == 2) 165 { 166 pre_clear(); 167 pre_save(posX, posY); 168 pre_save(posX-1, posY); 169 map[posX, posY] = 0; 170 map[posX-1, posY] = 2; 171 posX--; 172 } 173 } 174 else if (map[posX - 1, posY] == 4) //成功点 175 { 176 177 if (map[posX, posY] == 6) 178 { 179 pre_clear(); 180 pre_save(posX, posY); 181 pre_save(posX - 1, posY); 182 map[posX - 1, posY] = 6; 183 map[posX, posY] = 4; 184 posX--; 185 } 186 else if (map[posX, posY] == 2) 187 { 188 pre_clear(); 189 pre_save(posX, posY); 190 pre_save(posX - 1, posY); 191 192 map[posX - 1, posY] = 6; 193 map[posX, posY] = 0; 194 posX--; 195 } 196 } 197 else if (map[posX - 1, posY] == 3) // 箱子 198 { 199 if (posX - 2 >= 0) 200 { 201 if (map[posX - 2, posY] == 0) // 箱子上面是空地 202 { 203 if (map[posX, posY] == 6) 204 { 205 206 // pre_save(); 207 pre_clear(); 208 pre_save(posX, posY); 209 pre_save(posX - 1, posY); 210 pre_save(posX - 2, posY); 211 212 213 map[posX - 2, posY] = 3; 214 map[posX - 1, posY] = 2; 215 map[posX, posY] = 4; 216 posX--; 217 } 218 else if (map[posX, posY] == 2) 219 { 220 pre_clear(); 221 pre_save(posX, posY); 222 pre_save(posX - 1, posY); 223 pre_save(posX - 2, posY); 224 225 map[posX - 2, posY] = 3; 226 map[posX - 1, posY] = 2; 227 map[posX, posY] = 0; 228 posX--; 229 } 230 } 231 else if (map[posX - 2, posY] == 4) //箱子上面是成功点 232 { 233 if (map[posX, posY] == 6) 234 { 235 pre_clear(); 236 pre_save(posX, posY); 237 pre_save(posX - 1, posY); 238 pre_save(posX - 2, posY); 239 240 map[posX - 2, posY] = 7; 241 map[posX - 1, posY] = 2; 242 map[posX, posY] = 4; 243 posX--; 244 } 245 else if (map[posX, posY] == 2) 246 { 247 pre_clear(); 248 pre_save(posX, posY); 249 pre_save(posX - 1, posY); 250 pre_save(posX - 2, posY); 251 252 map[posX - 2, posY] = 7; 253 map[posX - 1, posY] = 2; 254 map[posX, posY] = 0; 255 posX--; 256 } 257 258 } 259 } 260 } 261 else if (map[posX - 1, posY] == 7) // 箱子+成功点 262 { 263 if (posX - 2 >= 0) 264 { 265 if (map[posX - 2, posY] == 0) // 箱子上面是空地 266 { 267 if (map[posX, posY] == 6) 268 { 269 pre_clear(); 270 pre_save(posX, posY); 271 pre_save(posX - 1, posY); 272 pre_save(posX - 2, posY); 273 274 map[posX - 2, posY] = 3; 275 map[posX - 1, posY] = 6; 276 map[posX, posY] = 4; 277 posX--; 278 } 279 else if (map[posX, posY] == 2) 280 { 281 pre_clear(); 282 pre_save(posX, posY); 283 pre_save(posX - 1, posY); 284 pre_save(posX - 2, posY); 285 286 map[posX - 2, posY] = 3; 287 map[posX - 1, posY] = 6; 288 map[posX, posY] = 0; 289 posX--; 290 } 291 } 292 else if (map[posX - 2, posY] == 4) //箱子上面是成功点 293 { 294 if (map[posX, posY] == 6) 295 { 296 pre_clear(); 297 pre_save(posX, posY); 298 pre_save(posX - 1, posY); 299 pre_save(posX - 2, posY); 300 301 map[posX - 2, posY] = 7; 302 map[posX - 1, posY] = 6; 303 map[posX, posY] = 4; 304 posX--; 305 } 306 else if (map[posX, posY] == 2) 307 { 308 pre_clear(); 309 pre_save(posX, posY); 310 pre_save(posX - 1, posY); 311 pre_save(posX - 2, posY); 312 313 map[posX - 2, posY] = 7; 314 map[posX - 1, posY] = 6; 315 map[posX, posY] = 0; 316 posX--; 317 } 318 319 } 320 } 321 } 322 } 323 } 324 325 //向下移动 326 static void moveDown() 327 { 328 if (posX + 1 < 10) 329 { 330 if (map[posX + 1, posY] == 0) // 空地 331 { 332 if (map[posX, posY] == 6) 333 { 334 pre_clear(); 335 pre_save(posX, posY); 336 pre_save(posX + 1, posY); 337 338 map[posX, posY] = 4; 339 map[posX + 1, posY] = 2; 340 posX++; 341 } 342 else if (map[posX, posY] == 2) 343 { 344 pre_clear(); 345 pre_save(posX, posY); 346 pre_save(posX + 1, posY); 347 348 map[posX, posY] = 0; 349 map[posX + 1, posY] = 2; 350 posX++; 351 } 352 } 353 else if (map[posX + 1, posY] == 4) //成功点 354 { 355 356 if (map[posX, posY] == 6) 357 { 358 pre_clear(); 359 pre_save(posX, posY); 360 pre_save(posX + 1, posY); 361 362 map[posX + 1, posY] = 6; 363 map[posX, posY] = 4; 364 posX++; 365 } 366 else if (map[posX, posY] == 2) 367 { 368 pre_clear(); 369 pre_save(posX, posY); 370 pre_save(posX + 1, posY); 371 372 map[posX + 1, posY] = 6; 373 map[posX, posY] = 0; 374 posX++; 375 } 376 } 377 else if (map[posX + 1, posY] == 3) // 箱子 378 { 379 if (posX + 2 < 10) 380 { 381 if (map[posX + 2, posY] == 0) // 箱子上面是空地 382 { 383 if (map[posX, posY] == 6) 384 { 385 pre_clear(); 386 pre_save(posX, posY); 387 pre_save(posX + 1, posY); 388 pre_save(posX + 2, posY); 389 390 391 map[posX + 2, posY] = 3; 392 map[posX + 1, posY] = 2; 393 map[posX, posY] = 4; 394 posX++; 395 } 396 else if (map[posX, posY] == 2) 397 { 398 pre_clear(); 399 pre_save(posX, posY); 400 pre_save(posX + 1, posY); 401 pre_save(posX + 2, posY); 402 403 map[posX + 2, posY] = 3; 404 map[posX + 1, posY] = 2; 405 map[posX, posY] = 0; 406 posX++; 407 } 408 } 409 else if (map[posX + 2, posY] == 4) //箱子上面是成功点 410 { 411 if (map[posX, posY] == 6) 412 { 413 pre_clear(); 414 pre_save(posX, posY); 415 pre_save(posX + 1, posY); 416 pre_save(posX + 2, posY); 417 418 map[posX + 2, posY] = 7; 419 map[posX + 1, posY] = 2; 420 map[posX, posY] = 4; 421 posX++; 422 } 423 else if (map[posX, posY] == 2) 424 { 425 pre_clear(); 426 pre_save(posX, posY); 427 pre_save(posX + 1, posY); 428 pre_save(posX + 2, posY); 429 430 map[posX + 2, posY] = 7; 431 map[posX + 1, posY] = 2; 432 map[posX, posY] = 0; 433 posX++; 434 } 435 436 } 437 } 438 } 439 else if (map[posX + 1, posY] == 7) // 箱子+成功点 440 { 441 if (posX + 2 < 10) 442 { 443 if (map[posX + 2, posY] == 0) // 箱子上面是空地 444 { 445 if (map[posX, posY] == 6) 446 { 447 pre_clear(); 448 pre_save(posX, posY); 449 pre_save(posX + 1, posY); 450 pre_save(posX + 2, posY); 451 452 map[posX + 2, posY] = 3; 453 map[posX + 1, posY] = 6; 454 map[posX, posY] = 4; 455 posX++; 456 } 457 else if (map[posX, posY] == 2) 458 { 459 pre_clear(); 460 pre_save(posX, posY); 461 pre_save(posX + 1, posY); 462 pre_save(posX + 2, posY); 463 464 map[posX + 2, posY] = 3; 465 map[posX + 1, posY] = 6; 466 map[posX, posY] = 0; 467 posX++; 468 } 469 } 470 else if (map[posX + 2, posY] == 4) //箱子上面是成功点 471 { 472 if (map[posX, posY] == 6) 473 { 474 pre_clear(); 475 pre_save(posX, posY); 476 pre_save(posX + 1, posY); 477 pre_save(posX + 2, posY); 478 479 map[posX + 2, posY] = 7; 480 map[posX + 1, posY] = 6; 481 map[posX, posY] = 4; 482 posX++; 483 } 484 else if (map[posX, posY] == 2) 485 { 486 pre_clear(); 487 pre_save(posX, posY); 488 pre_save(posX + 1, posY); 489 pre_save(posX + 2, posY); 490 491 map[posX + 2, posY] = 7; 492 map[posX + 1, posY] = 6; 493 map[posX, posY] = 0; 494 posX++; 495 } 496 497 } 498 } 499 } 500 } 501 } 502 503 static void moveLeft() 504 { 505 if (posY - 1 >= 0) 506 { 507 if (map[posX , posY-1] == 0) // 空地 508 { 509 if (map[posX, posY] == 6) 510 { 511 pre_clear(); 512 pre_save(posX, posY); 513 pre_save(posX, posY-1); 514 515 map[posX, posY] = 4; 516 map[posX, posY-1] = 2; 517 posY--; 518 } 519 else if (map[posX, posY] == 2) 520 { 521 pre_clear(); 522 pre_save(posX, posY); 523 pre_save(posX, posY - 1); 524 525 map[posX, posY] = 0; 526 map[posX, posY-1] = 2; 527 posY--; 528 } 529 } 530 else if (map[posX, posY-1] == 4) //成功点 531 { 532 533 if (map[posX, posY] == 6) 534 { 535 pre_clear(); 536 pre_save(posX, posY); 537 pre_save(posX, posY - 1); 538 539 map[posX, posY - 1] = 6; 540 map[posX, posY] = 4; 541 posY--; 542 } 543 else if (map[posX, posY] == 2) 544 { 545 pre_clear(); 546 pre_save(posX, posY); 547 pre_save(posX, posY - 1); 548 549 map[posX, posY - 1] = 6; 550 map[posX, posY] = 0; 551 posY--; 552 } 553 } 554 else if (map[posX, posY-1] == 3) // 箱子 555 { 556 if (posY - 2 >= 0) 557 { 558 if (map[posX, posY-2] == 0) // 箱子上面是空地 559 { 560 if (map[posX, posY] == 6) 561 { 562 pre_clear(); 563 pre_save(posX, posY); 564 pre_save(posX, posY - 1); 565 pre_save(posX, posY - 2); 566 567 map[posX , posY-2] = 3; 568 map[posX, posY-1] = 2; 569 map[posX, posY] = 4; 570 posY--; 571 } 572 else if (map[posX, posY] == 2) 573 { 574 pre_clear(); 575 pre_save(posX, posY); 576 pre_save(posX, posY - 1); 577 pre_save(posX, posY - 2); 578 579 map[posX , posY-2] = 3; 580 map[posX , posY-1] = 2; 581 map[posX, posY] = 0; 582 posY--; 583 } 584 } 585 else if (map[posX , posY-2] == 4) //箱子上面是成功点 586 { 587 if (map[posX, posY] == 6) 588 { 589 pre_clear(); 590 pre_save(posX, posY); 591 pre_save(posX, posY - 1); 592 pre_save(posX, posY - 2); 593 594 map[posX, posY-2] = 7; 595 map[posX, posY-1] = 2; 596 map[posX, posY] = 4; 597 posY--; 598 } 599 else if (map[posX, posY] == 2) 600 { 601 pre_clear(); 602 pre_save(posX, posY); 603 pre_save(posX, posY - 1); 604 pre_save(posX, posY - 2); 605 606 map[posX , posY-2] = 7; 607 map[posX , posY-1] = 2; 608 map[posX, posY] = 0; 609 posY--; 610 } 611 612 } 613 } 614 } 615 else if (map[posX, posY-1] == 7) // 箱子+成功点 616 { 617 if (posY - 2 >= 0) 618 { 619 if (map[posX, posY-2] == 0) // 箱子上面是空地 620 { 621 if (map[posX, posY] == 6) 622 { 623 pre_clear(); 624 pre_save(posX, posY); 625 pre_save(posX, posY - 1); 626 pre_save(posX, posY - 2); 627 628 map[posX, posY-2] = 3; 629 map[posX, posY-1] = 6; 630 map[posX, posY] = 4; 631 posY--; 632 } 633 else if (map[posX, posY] == 2) 634 { 635 pre_clear(); 636 pre_save(posX, posY); 637 pre_save(posX, posY - 1); 638 pre_save(posX, posY - 2); 639 640 map[posX, posY-2] = 3; 641 map[posX, posY-1] = 6; 642 map[posX, posY] = 0; 643 posY--; 644 } 645 } 646 else if (map[posX, posY-2] == 4) //箱子上面是成功点 647 { 648 if (map[posX, posY] == 6) 649 { 650 pre_clear(); 651 pre_save(posX, posY); 652 pre_save(posX, posY - 1); 653 pre_save(posX, posY - 2); 654 655 map[posX, posY-2] = 7; 656 map[posX, posY-1] = 6; 657 map[posX, posY] = 4; 658 posY--; 659 } 660 else if (map[posX, posY] == 2) 661 { 662 pre_clear(); 663 pre_save(posX, posY); 664 pre_save(posX, posY - 1); 665 pre_save(posX, posY - 2); 666 667 map[posX, posY-2] = 7; 668 map[posX, posY-1] = 6; 669 map[posX, posY] = 0; 670 posY--; 671 } 672 673 } 674 } 675 } 676 } 677 } 678 679 static void moveRight() 680 { 681 if (posY + 1 < 10) 682 { 683 if (map[posX, posY + 1] == 0) // 空地 684 { 685 if (map[posX, posY] == 6) 686 { 687 pre_clear(); 688 pre_save(posX, posY); 689 pre_save(posX, posY + 1); 690 691 map[posX, posY] = 4; 692 map[posX, posY + 1] = 2; 693 posY++; 694 } 695 else if (map[posX, posY] == 2) 696 { 697 pre_clear(); 698 pre_save(posX, posY); 699 pre_save(posX, posY + 1); 700 701 map[posX, posY] = 0; 702 map[posX, posY + 1] = 2; 703 posY++; 704 } 705 } 706 else if (map[posX, posY + 1] == 4) //成功点 707 { 708 709 if (map[posX, posY] == 6) 710 { 711 pre_clear(); 712 pre_save(posX, posY); 713 pre_save(posX, posY + 1); 714 715 map[posX, posY + 1] = 6; 716 map[posX, posY] = 4; 717 posY++; 718 } 719 else if (map[posX, posY] == 2) 720 { 721 pre_clear(); 722 pre_save(posX, posY); 723 pre_save(posX, posY + 1); 724 725 map[posX, posY + 1] = 6; 726 map[posX, posY] = 0; 727 posY++; 728 } 729 } 730 else if (map[posX, posY + 1] == 3) // 箱子 731 { 732 if (posY + 2 < 10) 733 { 734 if (map[posX, posY + 2] == 0) // 箱子上面是空地 735 { 736 if (map[posX, posY] == 6) 737 { 738 pre_clear(); 739 pre_save(posX, posY); 740 pre_save(posX, posY + 1); 741 pre_save(posX, posY + 2); 742 743 map[posX, posY + 2] = 3; 744 map[posX, posY + 1] = 2; 745 map[posX, posY] = 4; 746 posY++; 747 } 748 else if (map[posX, posY] == 2) 749 { 750 pre_clear(); 751 pre_save(posX, posY); 752 pre_save(posX, posY + 1); 753 pre_save(posX, posY + 2); 754 755 map[posX, posY + 2] = 3; 756 map[posX, posY + 1] = 2; 757 map[posX, posY] = 0; 758 posY++; 759 } 760 } 761 else if (map[posX, posY + 2] == 4) //箱子上面是成功点 762 { 763 if (map[posX, posY] == 6) 764 { 765 pre_clear(); 766 pre_save(posX, posY); 767 pre_save(posX, posY + 1); 768 pre_save(posX, posY + 2); 769 770 map[posX, posY + 2] = 7; 771 map[posX, posY + 1] = 2; 772 map[posX, posY] = 4; 773 posY++; 774 } 775 else if (map[posX, posY] == 2) 776 { 777 pre_clear(); 778 pre_save(posX, posY); 779 pre_save(posX, posY + 1); 780 pre_save(posX, posY + 2); 781 782 map[posX, posY + 2] = 7; 783 map[posX, posY + 1] = 2; 784 map[posX, posY] = 0; 785 posY++; 786 } 787 788 } 789 } 790 } 791 else if (map[posX, posY + 1] == 7) // 箱子+成功点 792 { 793 if (posY + 2 < 10) 794 { 795 if (map[posX, posY + 2] == 0) // 箱子上面是空地 796 { 797 if (map[posX, posY] == 6) 798 { 799 pre_clear(); 800 pre_save(posX, posY); 801 pre_save(posX, posY + 1); 802 pre_save(posX, posY + 2); 803 804 map[posX, posY + 2] = 3; 805 map[posX, posY + 1] = 6; 806 map[posX, posY] = 4; 807 posY++; 808 } 809 else if (map[posX, posY] == 2) 810 { 811 pre_clear(); 812 pre_save(posX, posY); 813 pre_save(posX, posY + 1); 814 pre_save(posX, posY + 2); 815 816 map[posX, posY + 2] = 3; 817 map[posX, posY + 1] = 6; 818 map[posX, posY] = 0; 819 posY++; 820 } 821 } 822 else if (map[posX, posY + 2] == 4) //箱子上面是成功点 823 { 824 if (map[posX, posY] == 6) 825 { 826 pre_clear(); 827 pre_save(posX, posY); 828 pre_save(posX, posY + 1); 829 pre_save(posX, posY + 2); 830 831 map[posX, posY + 2] = 7; 832 map[posX, posY + 1] = 6; 833 map[posX, posY] = 4; 834 posY++; 835 } 836 else if (map[posX, posY] == 2) 837 { 838 pre_clear(); 839 pre_save(posX, posY); 840 pre_save(posX, posY + 1); 841 pre_save(posX, posY + 2); 842 843 map[posX, posY + 2] = 7; 844 map[posX, posY + 1] = 6; 845 map[posX, posY] = 0; 846 posY++; 847 } 848 849 } 850 } 851 } 852 } 853 } 854 855 static bool move() 856 { 857 var info = Console.ReadKey(); 858 if (info.Key == ConsoleKey.UpArrow||info.Key == ConsoleKey.W) 859 { 860 cnt++; 861 moveUp(); 862 863 } 864 865 else if (info.Key == ConsoleKey.DownArrow||info.Key == ConsoleKey.S) 866 { 867 cnt++; 868 moveDown(); 869 } 870 871 else if (info.Key == ConsoleKey.LeftArrow || info.Key == ConsoleKey.A) 872 { 873 cnt++; 874 moveLeft(); 875 } 876 877 else if (info.Key == ConsoleKey.RightArrow || info.Key == ConsoleKey.D) 878 { 879 cnt++; 880 moveRight(); 881 } 882 else if (info.Key == ConsoleKey.Z) 883 { 884 if (list_cnt > 0) 885 { 886 cnt--; 887 for (int i = 0; i < list_cnt; i++) 888 { 889 int tx = list[i].posX; 890 int ty = list[i].posY; 891 int tmax = list[i].mapx; 892 893 map[tx, ty] = tmax; 894 895 } 896 posX = list[0].posX; 897 posY = list[0].posY; 898 pre_clear(); 899 } 900 901 902 } 903 return victory(); 904 } 905 906 static void Main(string[] args) 907 { 908 // System.Console.WriteLine("Hello"); 909 for (int i = 0; i < 1; i++) 910 { 911 init(); 912 while (true) 913 { 914 915 draw(); 916 if (move()==true) 917 { 918 break; 919 } 920 } 921 Console.Clear(); 922 923 Console.WriteLine("恭喜!"); 924 Console.ReadKey(); 925 } 926 927 } 928 } 929 }