使用C语言简单的实现棋盘为5*5的五子棋小游戏,以下为源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | #include <stdio.h> #include <stdlib.h> //初始化一个数组 void Init( char arr[5][5]) //arr数组大小可以改变棋盘大小 { int i = 0, j = 0; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { arr[i][j] = ' ' ; } } } //打印棋盘 void Print_Cheseboard( char arr[][5]) { int i = 0; for (i = 0; i < 5; i++) { printf ( "| %c | %c | %c | %c | %c |\n" , arr[i][0], arr[i][1], arr[i][2], arr[i][3], arr[i][4]); if (i != 4) { printf ( "|---|---|---|---|---|\n" ); } } } //玩家下棋 void Player_Move( char arr[][5]) { int x = 0; int y = 0; printf ( "请输入坐标>>> \n" ); scanf ( "%d%d" , &x, &y); x -= 1; y -= 1; if (arr[x][y] == ' ' ) { arr[x][y] = 'X' ; } else { printf ( "输入有误,请重新输入:\n" ); Player_Move(arr); } } //电脑下棋 void Computer_Move( char arr[][5]) { int i = 0, j = 0; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { if (arr[i][j] == ' ' ) break ; } if (arr[i][j] == ' ' ) break ; } if (i*j == 25) exit (0); else arr[i][j] = '0' ; } //战况判断 char Check( char arr[][5]) { int i = 0; for (i = 0; i < 5; i++) { if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][2] == arr[i][3] && arr[i][3] == arr[i][4]) { if (arr[i][0] != ' ' ) return arr[i][0]; } } for (i = 0; i < 5; i++) { if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[2][i] == arr[3][i] && arr[3][i] == arr[4][i]) { if (arr[0][i] != ' ' ) return arr[0][i]; } } if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[2][2] == arr[3][3] && arr[3][3] == arr[4][4]) { if (arr[0][0] != ' ' ) return arr[0][0]; } if (arr[0][4] == arr[1][3] && arr[1][3] == arr[2][2] && arr[2][2] == arr[3][1] && arr[3][1] == arr[4][0]) { if (arr[0][4] != ' ' ) return arr[0][4]; } return ' ' ; } //主函数 int main() { char done= ' ' ; char arr[5][5]; Init(arr); do { Print_Cheseboard(arr); Player_Move(arr); done = Check(arr); if (done != ' ' ) { break ; } Computer_Move(arr); done = Check(arr); } while (done == ' ' ); if (done == 'X' ) { printf ( "玩家胜!!!\n" ); } else { printf ( "电脑胜!!!\n" ); } Print_Cheseboard(arr); system ( "pause" ); return 0; } |