没有合适的资源?快使用搜索试试~ 我知道了~
C语言奥赛罗 小程序
需积分: 10 12 下载量 174 浏览量
2010-07-30
10:24:38
上传
评论
收藏 8KB TXT 举报
温馨提示
试读
10页
这是个C语言小程序,计算机只具备最基本的操作能力,因为它只会向前考虑一步,对边界和角落的利用不是很好。可以自己进行修改,使整个程序更有趣。
资源推荐
资源详情
资源评论
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#define SIZE 6
void display(char board[][SIZE]);
int valid_moves(char board[][SIZE],int moves[][SIZE],char player);
void make_move(char board[][SIZE],int row,int col,char player);
void computer_move(char board[][SIZE],int moves[][SIZE],char player);
int best_move(char board[][SIZE],int moves[][SIZE],char player);
int get_score(char board[][SIZE],char player);
int main()
{
char board[SIZE][SIZE]={0};
int moves[SIZE][SIZE]={0};
int row=0,col=0;
int no_of_games=0;
int no_of_moves=0;
int invalid_moves=0;
int comp_score=0;
int user_score=0;
char y=0;
int x=0;
char again=0;
int player=0;
printf("\n奥赛罗\n\n");
printf("玩家走一步,电脑走一步,依次轮流下棋\n");
printf("玩家--(O)\t电脑--(@)\n");
printf("输入行号和列号表示你下一步棋的位置\n");
printf("游戏进行时输入0退出游戏。\n");
printf("祝你好运! 按Enter键开始游戏...\n");
#include <ctype.h>
#include <stdlib.h>
#define SIZE 6
void display(char board[][SIZE]);
int valid_moves(char board[][SIZE],int moves[][SIZE],char player);
void make_move(char board[][SIZE],int row,int col,char player);
void computer_move(char board[][SIZE],int moves[][SIZE],char player);
int best_move(char board[][SIZE],int moves[][SIZE],char player);
int get_score(char board[][SIZE],char player);
int main()
{
char board[SIZE][SIZE]={0};
int moves[SIZE][SIZE]={0};
int row=0,col=0;
int no_of_games=0;
int no_of_moves=0;
int invalid_moves=0;
int comp_score=0;
int user_score=0;
char y=0;
int x=0;
char again=0;
int player=0;
printf("\n奥赛罗\n\n");
printf("玩家走一步,电脑走一步,依次轮流下棋\n");
printf("玩家--(O)\t电脑--(@)\n");
printf("输入行号和列号表示你下一步棋的位置\n");
printf("游戏进行时输入0退出游戏。\n");
printf("祝你好运! 按Enter键开始游戏...\n");
scanf("%c",&again);
do
{
/*奇数次电脑先行,偶数次玩家先行*/
player=++no_of_games%2;
no_of_moves=4; //默认的棋子数目
/*清空棋盘*/
for(row=0;row<SIZE;row++)
for(col=0;col<SIZE;col++)
board[row][col]=' ';
/*放置初始的棋子*/
board[SIZE/2-1][SIZE/2-1]=board[SIZE/2][SIZE/2]='O';
board[SIZE/2-1][SIZE/2]=board[SIZE/2][SIZE/2-1]='@';
/*游戏开始*/
do
{
display(board);
if(player++%2)
{/*该玩家下子*/
if(valid_moves(board,moves,'O'))
{/*读取玩家的下子情况*/
for(;;)
{
fflush(stdin);
printf("输入你要下子的位置(行列):");
scanf("%d%c",&x,&y);
if(x==0)
exit(EXIT_SUCCESS);
y=tolower(y)-'a';
do
{
/*奇数次电脑先行,偶数次玩家先行*/
player=++no_of_games%2;
no_of_moves=4; //默认的棋子数目
/*清空棋盘*/
for(row=0;row<SIZE;row++)
for(col=0;col<SIZE;col++)
board[row][col]=' ';
/*放置初始的棋子*/
board[SIZE/2-1][SIZE/2-1]=board[SIZE/2][SIZE/2]='O';
board[SIZE/2-1][SIZE/2]=board[SIZE/2][SIZE/2-1]='@';
/*游戏开始*/
do
{
display(board);
if(player++%2)
{/*该玩家下子*/
if(valid_moves(board,moves,'O'))
{/*读取玩家的下子情况*/
for(;;)
{
fflush(stdin);
printf("输入你要下子的位置(行列):");
scanf("%d%c",&x,&y);
if(x==0)
exit(EXIT_SUCCESS);
y=tolower(y)-'a';
剩余9页未读,继续阅读
资源评论
Lyjoe3
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功