c语言实现小游戏_三子棋

简介:

游戏规则:玩家走一步,电脑走一步。当然电脑怎么走的代码也是你写的。

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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#include <stdio.h>
#include <stdlib.h>
/*******************************************************************************/
//函数功能:初始化棋盘
/*******************************************************************************/
void  init_chess( char  (*chess_arr)[3])
{
     int  i,j;
     printf ( "游戏开始:\n" );
 
     for (i = 0;i<3;i++)
     {
         for (j = 0;j<3;j++)
         {
             *(*(chess_arr+i)+j) =  ' ' ;
         }
     }
     for (i = 0;i<3;i++)
     {
         printf ( " %c | %c | %c"  ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
         if (i!=2)
         {
             printf ( "\n---|---|---\n" );
         }
     }
     printf ( "\n" );
}
/*******************************************************************************/
//函数功能:玩家输入下棋的坐标
/*******************************************************************************/
void  input_player_xy( char  (*chess_arr)[3], int  x, int  y)
{
     int  i = 0;
     if (chess_arr[x][y]== ' ' )
     {
         chess_arr[x][y] =  'Y' ;
     }
     else
     {
         printf ( "该步以走过\n" );
     }
     for (i = 0;i<3;i++)
     {
         printf ( " %c | %c | %c"  ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
         if (i!=2)
         {
             printf ( "\n---|---|---\n" );
         }
     }
     printf ( "\n" );
}
/*******************************************************************************/
//函数功能:打印电脑下棋的坐标
/*******************************************************************************/
void  input_computer_xy( char  (*chess_arr)[3])
{
     int  i = 0;
     for (i = 0;i<3;i++)
     {
         printf ( " %c | %c | %c"  ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
         if (i!=2)
         {
             printf ( "\n---|---|---\n" );
         }
     }
     printf ( "\n" );
}
/*******************************************************************************/
//函数功能:确定玩家下棋的坐标
/*******************************************************************************/
void  input_player( char  (*chess_arr)[3])
{
     int  x = 0,y = 0;
     printf ( "请下您的棋:" );
     scanf ( "%d%d" ,&x,&y);
     input_player_xy(chess_arr,x,y);
 
}
/*******************************************************************************/
//函数功能:确定电脑下棋的坐标
/*******************************************************************************/
void  input_computer( char  (*chess_arr)[3])
{
     int  i =0,j = 0;
     for (i = 0;i<3;i++)
     {
         for (j = 0;j<3;j++)
         {
             if (chess_arr[i][j]== ' ' )
             {
               chess_arr[i][j] =  'O' ;
               goto  flag;
             }
         }
     }
flag:
     input_computer_xy(chess_arr);
}
/*******************************************************************************/
//函数功能:主函数判断电脑还是玩家获胜
/*******************************************************************************/
int  main()
{
     char  chess_arr[3][3];
     int  flag = 1;
     
     init_chess(chess_arr);
     while (flag)
     {
         int  i = 0,j = 0;
         int  diag_flag_player = 0,diag_flag_computer = 0,count = 0;
         input_player(chess_arr);
         input_computer(chess_arr);
         for (i = 0;i<3;i++)
         {
             if (((chess_arr[i][0]== 'Y' )&&(chess_arr[i][1]== 'Y' )&&(chess_arr[i][2]== 'Y' ))||
                  ((chess_arr[0][i]== 'Y' )&&(chess_arr[1][i]== 'Y' )&&(chess_arr[2][i]== 'Y' ))
               )
             {
                 printf ( "player win!\n" );
                 flag = 0;
                 break ;
             }
             if (((chess_arr[i][0]== 'O' )&&(chess_arr[i][1]== 'O' )&&(chess_arr[i][2]== 'O' ))||
                       ((chess_arr[0][i]== 'O' )&&(chess_arr[1][i]== 'O' )&&(chess_arr[2][i]== 'O' ))
                    )
             {
                 printf ( "computer win!\n" );
                 flag = 0;
                 break ;
             }
             for (j = 0;j<3;j++)
             {
                 if (chess_arr[i][j]!= ' ' )
                 {
                     count++;
                 }
             }
             if (chess_arr[i][i]== 'Y' )
             {
                 diag_flag_player++;
             }
             if (chess_arr[i][2-i]== 'O' )
             {
                 diag_flag_computer++;
             }
         }
         if (diag_flag_player==3)
         {
             flag = 0;
             printf ( "player win!\n" );
         }
         if (diag_flag_computer==3)
         {
             flag = 0;
             printf ( "computer win!\n" );
         }
         if (count==9)
         {
             flag = 0;
             printf ( "player equal computer!\n" );
         }
     }
     system ( "pause" );
     return  0;
}

由于让大家看的清楚,没有放在多个文件中。

我来解释电脑怎么走的:当人走完后电脑只要看见有空的位置就走。当然这个可以让电脑厉害点。代码由你来写。



本文转自 8yi少女的夢 51CTO博客,原文链接:http://blog.51cto.com/zhaoxiaohu/1711480,如需转载请自行联系原作者

相关文章
|
1月前
|
定位技术 C语言
c语言及数据结构实现简单贪吃蛇小游戏
c语言及数据结构实现简单贪吃蛇小游戏
|
5月前
|
C语言 C++
【C语言】编写“猜数字“小游戏
【C语言】编写“猜数字“小游戏
131 1
|
5月前
|
存储 API C语言
【C语言】实践:贪吃蛇小游戏(附源码)(一)
【C语言】实践:贪吃蛇小游戏(附源码)
|
5月前
|
C语言 开发者
C语言实现猜数字小游戏(详细教程)
C语言实现猜数字小游戏(详细教程)
|
5月前
|
C语言 定位技术 API
【C语言】实践:贪吃蛇小游戏(附源码)(二)
【C语言】实践:贪吃蛇小游戏(附源码)
【C语言】实践:贪吃蛇小游戏(附源码)(二)
|
5月前
|
C语言
【C语言】实践:贪吃蛇小游戏(附源码)(三)
【C语言】实践:贪吃蛇小游戏(附源码)
|
5月前
|
C语言
C语言贪吃蛇小游戏来啦!
C语言贪吃蛇小游戏来啦!
66 0
|
API C语言
C语言编程之经典小游戏--贪吃蛇
C语言编程之经典小游戏--贪吃蛇
362 0
C语言编程之经典小游戏--贪吃蛇
|
机器学习/深度学习 安全 定位技术
C语言小游戏------贪吃蛇
C语言写的贪吃蛇小游戏
274 0
|
2月前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
97 23