c语言小游戏代码
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
// 定义元素类型
#define ELEMENT char
// 游戏行数
#define ROW 10
// 游戏显示延迟
#define SLEEPTIME 100
int main(int argc, char *argv[])
{
// 定义游戏的棋盘,用数组存放
ELEMENT array[ROW][ROW];
// 定义获胜条件
int winCondition = 5;
// 初始化,把棋盘清空
system("cls");
int i,j;
for(i = 0; i < ROW; i++)
{
for(j = 0; j < ROW; j++)
{
array[i][j] = ' ';
}
}
// 循环游戏,当有一方满足胜利条件时终止
int tmp;
int count = 0; // 存放棋子数
while(1)
{
// 依次取出玩家记录的棋子
int x, y;
// 如果已经有子落下,则计算是第几步
if(count > 0)
{
printf("第%d步:\n", count);
}
// 显示游戏棋盘
for(i = 0; i < ROW; i++)
{
printf(" ");
for(j = 0; j < ROW; j++)
{
printf("---");
}
printf("\n|");
for(j = 0; j < ROW; j++)
{
printf("%c |", array[i][j]);
}
printf("\n");
}
printf(" ");
for(j = 0; j < ROW; j++)
{
printf("---");
}
printf("\n");
// 要求玩家输入放下棋子的位置
printf("请玩家输入要放弃棋子的位置(1-%d)\n", ROW);
printf("横坐标:");
scanf("%d", &x);
printf("纵坐标:");
scanf("%d", &y);
// 判断棋子位置是否有效
if(x < 1 || x > ROW || y < 1 || y > ROW || array[x-1][y-1] != ' ')
{
printf("输入错误!\n");
system("pause");
system("cls");
continue;
}
// 把棋子记录,并计数
if(count % 2 == 0)
{
array[x-1][y-1] = 'X';
}
else
c语言编程小游戏 {
array[x-1][y-1] = 'O';
}
count++;
// 判断是否有获胜者
int i, j, k;
int tempx, tempy;
for(i = 0; i < ROW; i++)
{
for(j = 0; j < ROW; j++)
{
if(array[i][j] == 'X' || array[i][j] == 'O')
{
// 判断横向是否有获胜者
tmp = 1;
for(k = 1; k < winCondition; k++)
{
// 注意边界,必须验证范围有效
if(j + k > ROW - 1) break;
// 如果和前一个位置的棋子相同,则计数加1,否则跳出
if(array[i][j+k] == array[i][j]) tmp++;
else break;
}
// 如果计数满足获胜条件,则显示获胜者
if(tmp >= winCondition)
{
printf("玩家 %c 获胜!\n", array[i][j]);
system("pause");
return 0;
}
// 判断纵向是否有获胜者
tmp = 1;
for(k
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论