目录

一些练习 C 语言的小游戏

一些练习 C 语言的小游戏

---

1. 猜数字游戏

描述:程序随机生成一个数字,玩家需要猜测这个数字,并根据提示(太高或太低)调整猜测,直到猜中为止。

功能点

  • 随机数生成 (rand() 函数)。
  • 循环和条件判断。
  • 用户输入处理。

示例代码框架

c 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int number, guess, attempts = 0;
    srand(time(0)); // 初始化随机数种子
    number = rand() % 100 + 1; // 生成 1 到 100 的随机数

    printf("猜数字游戏!我已经选好了一个 1 到 100 的数字。\n");

    do {
        printf("请输入你的猜测:");
        scanf("%d", &guess);
        attempts++;

        if (guess > number) {
            printf("太高了!\n");
        } else if (guess < number) {
            printf("太低了!\n");
        } else {
            printf("恭喜你,猜对了!你用了 %d 次。\n", attempts);
        }
    } while (guess != number);

    return 0;
}

2. 石头剪刀布

描述:玩家与计算机进行石头、剪刀、布的游戏,判断胜负。

功能点

  • 随机选择(计算机的选择)。
  • 条件判断(胜负逻辑)。
  • 用户输入处理。

示例代码框架

c 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int player, computer;
    srand(time(0));

    printf("石头剪刀布游戏!\n");
    printf("请选择:1 - 石头, 2 - 剪刀, 3 - 布\n");
    scanf("%d", &player);

    computer = rand() % 3 + 1; // 计算机随机选择 1-3

    printf("你选择了:%d\n", player);
    printf("计算机选择了:%d\n", computer);

    if (player == computer) {
        printf("平局!\n");
    } else if ((player == 1 && computer == 2) || 
               (player == 2 && computer == 3) || 
               (player == 3 && computer == 1)) {
        printf("你赢了!\n");
    } else {
        printf("你输了!\n");
    }

    return 0;
}

3. 贪吃蛇(简化版)

描述:实现一个简单的贪吃蛇游戏,蛇在一个二维网格中移动,吃到食物后变长。

功能点

  • 二维数组表示游戏地图。
  • 键盘输入控制方向。
  • 游戏循环更新状态。

提示

  • 使用 # 表示墙壁,* 表示蛇,@ 表示食物。
  • 可以使用 ncurses 库(Linux)或 conio.h(Windows)处理键盘输入。

4. 井字棋(Tic-Tac-Toe)

描述:实现一个两人对战的井字棋游戏,玩家轮流在 3x3 的棋盘上放置标记(X 或 O),先连成一条线的玩家获胜。

功能点

  • 二维数组表示棋盘。
  • 判断胜负逻辑。
  • 用户输入验证。

示例代码框架

c 复制代码
#include <stdio.h>

char board[3][3];
void initBoard() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            board[i][j] = ' ';
        }
    }
}

void printBoard() {
    for (int i = 0; i < 3; i++) {
        printf(" %c | %c | %c \n", board[i][0], board[i][1], board[i][2]);
        if (i < 2) printf("---+---+---\n");
    }
}

int checkWin(char player) {
    // 检查行、列和对角线
    for (int i = 0; i < 3; i++) {
        if (board[i][0] == player && board[i][1] == player && board[i][2] == player) return 1;
        if (board[0][i] == player && board[1][i] == player && board[2][i] == player) return 1;
    }
    if (board[0][0] == player && board[1][1] == player && board[2][2] == player) return 1;
    if (board[0][2] == player && board[1][1] == player && board[2][0] == player) return 1;
    return 0;
}

int main() {
    initBoard();
    char currentPlayer = 'X';
    int x, y, moves = 0;

    while (1) {
        printBoard();
        printf("玩家 %c,请输入坐标(x y):", currentPlayer);
        scanf("%d %d", &x, &y);

        if (board[x][y] != ' ') {
            printf("该位置已被占用,请重新输入。\n");
            continue;
        }

        board[x][y] = currentPlayer;
        moves++;

        if (checkWin(currentPlayer)) {
            printBoard();
            printf("玩家 %c 获胜!\n", currentPlayer);
            break;
        }

        if (moves == 9) {
            printBoard();
            printf("平局!\n");
            break;
        }

        currentPlayer = (currentPlayer == 'X') ? 'O' : 'X';
    }

    return 0;
}

5. 扫雷游戏

描述:实现一个简单的扫雷游戏,玩家需要揭开格子并避免触雷。

功能点

  • 二维数组表示地雷分布。
  • 地雷周围的数字计算。
  • 游戏逻辑(揭开格子、标记地雷等)。

6. 迷宫游戏

描述:生成一个迷宫,玩家需要通过键盘输入控制角色走出迷宫。

功能点

  • 迷宫生成算法(如深度优先搜索)。
  • 键盘输入控制角色移动。
  • 碰撞检测。

总结

这些小游戏涵盖了 C 语言的基本语法(如循环、条件判断、数组等)以及一些进阶技巧(如二维数组操作、随机数生成、用户输入处理等)。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
努力搬砖的咸鱼10 分钟前
Qt中的数据解析--XML与JSON处理全攻略
xml·开发语言·qt·json
Pacify_The_North11 分钟前
【C++进阶三】vector深度剖析(迭代器失效和深浅拷贝)
开发语言·c++·windows·visualstudio
神里流~霜灭18 分钟前
蓝桥备赛指南(12)· 省赛(构造or枚举)
c语言·数据结构·c++·算法·枚举·蓝桥·构造
一人の梅雨18 分钟前
化工网平台API接口开发实战:从接入到数据解析‌
java·开发语言·数据库
Zfox_25 分钟前
【C++项目】从零实现RPC框架「四」:业务层实现与项目使用
linux·开发语言·c++·rpc·项目
我想吃余28 分钟前
【C++篇】类与对象(上篇):从面向过程到面向对象的跨越
开发语言·c++
Niuguangshuo32 分钟前
Python设计模式:克隆模式
java·开发语言·python
双叶83638 分钟前
(C语言)单链表(1.0)(单链表教程)(数据结构,指针)
c语言·开发语言·数据结构·算法·游戏
想睡hhh41 分钟前
c++概念——入门基础概念
开发语言·c++
肖永威1 小时前
python列表常用方法大全
开发语言·python