大一C语言程序设计 200
大一C语言程序设计麻烦各位大神提供一个用C语言程序编写的小游戏,能运行的纯C语言,不要C++,谢谢!(1)贪吃蛇游戏(2)潜艇大战游戏(3)扫雷游戏(4)黑白棋游戏(5)...
大一C语言程序设计麻烦各位大神提供一个用C语言程序编写的小游戏,能运行的纯C语言,不要C++,谢谢!
(1)贪吃蛇游戏
(2)潜艇大战游戏
(3)扫雷游戏
(4)黑白棋游戏
(5)俄罗斯方块
都行,其他的也可以。 展开
(1)贪吃蛇游戏
(2)潜艇大战游戏
(3)扫雷游戏
(4)黑白棋游戏
(5)俄罗斯方块
都行,其他的也可以。 展开
2个回答
展开全部
井字棋游戏,希望对你有用
#include <stdio.h>
void main()
{
int player=0; // 当前游戏玩家数量-1至2名(current现在的)
int winner=0; //记录获胜玩家的编号
int choice=0; //被选择的方格
unsigned int row=0; //方格的行索引
unsigned int column=0; //列索引
unsigned int i,line;
char board[3][3]={ //棋盘
{'1','2','3'}, //最初的元素是符号1-9
{'4','5','6'},
{'7','8','9'},
};
for(i=0;i<9&&winner==0;++i)//循环终止条件:九个格子全部填满或者已经产生了赢家
{
printf(" %c | %c | %c\n",board[0][0],board[0][1],board[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[1][0],board[1][1],board[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[2][0],board[2][1],board[2][2]);
printf("---+---+---\n");
player=i%2+1;//通过对游戏回合数取余选择本回合玩家(0或偶数取余结果为0,奇数反之)
// 获取玩家输入
do
{
printf("%d号玩家,请输入本回合落子位置 :",player);/*三目运算符根据player的值
判断本轮下棋的玩家*/
scanf("%d",&choice);
row=--choice/3; /*row对应数组的第一维度,若输入值为1到3之间,商为
1,对应第一维的第一个元素,0,因此商需要自减才能作为元素名使用*/
column=choice%3;/*这里需要注意,此时的choice经过了自减,原来1-9变成了0-8
所以通过取余来引用第二维度元素*/
} while(choice<0||choice>8||board [row][column]>'9');/*如果用户输入非法,
必须重新选择*/
board[row][column] = (player==1) ? 'X': 'O'; //将
//先检查棋盘对角斜线上是否已经有棋子连成一线
if((board[0][0]==board[1][1]&&board[0][0]==board[2][2])||
(board[0][2]==board[1][1]&&board[0][2]==board[2][0]))
winner=player;//最后下棋的玩家是获胜者
else
//接下来检查十字上是否产生棋子连线
for(line=0;line<=2;line++)
if((board[line][0]==board[line][1]==board[line][2])||
(board[0][line]==board[1][line]==board[2][line]))
winner=player;
}
//游戏结束,现在显示棋盘
printf("\n");
printf(" %c | %c | %c\n",board[0][0],board[0][1],board[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[1][0],board[1][1],board[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[2][0],board[2][1],board[2][2]);
printf("---+---+---\n");
if(winner)
printf("恭喜,%d号玩家获胜!",winner);
else
printf("很遗憾,本局双方平手");
}
#include <stdio.h>
void main()
{
int player=0; // 当前游戏玩家数量-1至2名(current现在的)
int winner=0; //记录获胜玩家的编号
int choice=0; //被选择的方格
unsigned int row=0; //方格的行索引
unsigned int column=0; //列索引
unsigned int i,line;
char board[3][3]={ //棋盘
{'1','2','3'}, //最初的元素是符号1-9
{'4','5','6'},
{'7','8','9'},
};
for(i=0;i<9&&winner==0;++i)//循环终止条件:九个格子全部填满或者已经产生了赢家
{
printf(" %c | %c | %c\n",board[0][0],board[0][1],board[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[1][0],board[1][1],board[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[2][0],board[2][1],board[2][2]);
printf("---+---+---\n");
player=i%2+1;//通过对游戏回合数取余选择本回合玩家(0或偶数取余结果为0,奇数反之)
// 获取玩家输入
do
{
printf("%d号玩家,请输入本回合落子位置 :",player);/*三目运算符根据player的值
判断本轮下棋的玩家*/
scanf("%d",&choice);
row=--choice/3; /*row对应数组的第一维度,若输入值为1到3之间,商为
1,对应第一维的第一个元素,0,因此商需要自减才能作为元素名使用*/
column=choice%3;/*这里需要注意,此时的choice经过了自减,原来1-9变成了0-8
所以通过取余来引用第二维度元素*/
} while(choice<0||choice>8||board [row][column]>'9');/*如果用户输入非法,
必须重新选择*/
board[row][column] = (player==1) ? 'X': 'O'; //将
//先检查棋盘对角斜线上是否已经有棋子连成一线
if((board[0][0]==board[1][1]&&board[0][0]==board[2][2])||
(board[0][2]==board[1][1]&&board[0][2]==board[2][0]))
winner=player;//最后下棋的玩家是获胜者
else
//接下来检查十字上是否产生棋子连线
for(line=0;line<=2;line++)
if((board[line][0]==board[line][1]==board[line][2])||
(board[0][line]==board[1][line]==board[2][line]))
winner=player;
}
//游戏结束,现在显示棋盘
printf("\n");
printf(" %c | %c | %c\n",board[0][0],board[0][1],board[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[1][0],board[1][1],board[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[2][0],board[2][1],board[2][2]);
printf("---+---+---\n");
if(winner)
printf("恭喜,%d号玩家获胜!",winner);
else
printf("很遗憾,本局双方平手");
}
更多追问追答
追问
有能直接运行出来的文件吗
追答
有的,有空再发
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询