一些練習 C 語言的小游戲

一些練習 C 語言的小游戲

在這里插入圖片描述

1. 猜數字游戲

描述:程序隨機生成一個數字,玩家需要猜測這個數字,并根據提示(太高或太低)調整猜測,直到猜中為止。

功能點

  • 隨機數生成 (rand() 函數)。
  • 循環和條件判斷。
  • 用戶輸入處理。

示例代碼框架

#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. 石頭剪刀布

描述:玩家與計算機進行石頭、剪刀、布的游戲,判斷勝負。

功能點

  • 隨機選擇(計算機的選擇)。
  • 條件判斷(勝負邏輯)。
  • 用戶輸入處理。

示例代碼框架

#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-3printf("你選擇了:%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),先連成一條線的玩家獲勝。

功能點

  • 二維數組表示棋盤。
  • 判斷勝負邏輯。
  • 用戶輸入驗證。

示例代碼框架

#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 語言的基本語法(如循環、條件判斷、數組等)以及一些進階技巧(如二維數組操作、隨機數生成、用戶輸入處理等)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74015.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74015.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74015.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于中文編程的一些思考

隨著信息化與數字化的發展&#xff0c;工業4.0時代亦將徐徐到來。當計算機的普及程度越來越高&#xff0c;數據的產生、傳輸、處理等變得越來越快、越來越大量的時候&#xff0c;人們想要自動化辦公的愿望也越來越強烈&#xff0c;希望能將自身從耗費腦力但是重復繁瑣的工作中解…

golang 日志log與logrus

目錄 一、Go 標準庫 log 詳解 1. 功能特點 2. 常用函數 3. 示例代碼 4. 優勢和局限 二、第三方庫 logrus 詳解 1. 功能特點 2. 核心功能 3. 示例代碼 4. 優勢和擴展性 三、總結 1. 何時選擇 log&#xff1f; 2. 何時選擇 logrus&#xff1f; 3. 對比總結 一、Go 標…

消費品行業創新創業中品類創新與數字化工具的融合:以開源 AI 智能客服、AI 智能名片及 S2B2C 商城小程序為例

摘要&#xff1a; 本文聚焦于消費品行業的創新與創業&#xff0c;深入探討“選擇大于努力”這一觀點&#xff0c;強調品類選擇在品牌發展中的關鍵作用。同時&#xff0c;詳細分析了品類創新對于新消費品牌崛起以及傳統品牌轉型的重要意義。在此基礎上&#xff0c;引入開源 AI 智…

Razer macOS v0.4.10快速安裝

鏈接點這里下載最新的 .dmg 文件。將下載的 .dmg 映像文件拖入 應用程序 文件夾中。若首次打開時出現安全警告【什么扔到廢紙簍】&#xff0c;這時候點擊 Mac 的“系統偏好設置”-> “安全性與隱私”-> “通用”&#xff0c;然后點擊底部的 “打開”。【或者仍然打開】 對…

Flask項目部署:Flask + uWSGI + Nginx

目錄 1,網絡架構 2,環境安裝 2.1,安裝yum:Shell軟件包管理器 2.2 安裝python 2.3 安裝uWSGI 2.4 安裝Flask 3,上傳工程包到服務器,打包Flask項目 4,創建和配置 uwsgi 配置文件 uwsgi.ini 4.1配置文件 4.2配置文件注釋詳解 5,啟動服務 6,安裝nginx 7,nginx配置 8,…

[FPGA基礎學習]實現流水燈與按鍵暫停

FPGA實現LED流水燈 1.vscode的安裝和使用 vscode下載 Visual Studio Code - Code Editing. Redefined vscode插件&#xff08;Verilog-HDL/SystemVerilog&#xff09;下載 quartus綁定vscode 2.用6個LED完成周期為1秒的跑馬燈效果 流水燈模塊設計 時鐘輸入 DE2-115開發板…

【TensorRT】TensorRT從安裝到推理——Python 環境下 MobileNetV4 三分類任務

我想開發一個基于深度學習的分類小軟件&#xff0c;逐漸了解到了TensorRT在模型推理速度上的優勢&#xff0c;經過一下午資料的查找實現了將onnx模型轉為TensorRT格式模型的推理及測試過程。將實現過程記錄下來方便日后查看。 本文實驗設備是MX350顯卡 2G顯存 一 、安裝Tenso…

1.兩數之和(Java)

1. 題目描述 LeetCode 1. 兩數之和&#xff08;Two Sum&#xff09; 給定一個整數數組 nums 和一個目標值 target&#xff0c;請你在該數組中找出和為目標值的那兩個整數&#xff0c;并返回它們的索引。 示例 1&#xff1a; 輸入&#xff1a;nums [2,7,11,15], target 9 …

《深入探索 Python 數據分析:用 Pandas 高效處理與可視化大型數據集》

《深入探索 Python 數據分析:用 Pandas 高效處理與可視化大型數據集》 引言:從零到分析高手 數據是當代社會最寶貴的資源,而數據分析技能是現代職業人不可或缺的一部分。在數據科學的領域中,Python 已成為當之無愧的“首選語言”,其強大的生態系統和簡潔的語法讓人如虎添…

將樹莓派5當做Ollama服務器,C#調用generate的API的示例

其實完全沒這個必要&#xff0c;性能用腳后跟想都會很差。但基于上一篇文章的成果&#xff0c;來都來了就先簡單試試吧。 先來看看這個拼夕夕上五百多塊錢能達到的效果&#xff1a; 只要對速度沒要求&#xff0c;那感覺就還行。 Ollama默認只在本地回環&#xff08;127.0.0…

python基礎學習二(列表及字典的使用)

文章目錄 列表列表的創建獲取列表中的多個元素判斷列表中元素是否存在列表元素的添加操作列表元素的刪除操作列表元素的修改列表的排序列表生成式 字典字典的創建字典的常規操作字典的常用操作字典的視圖操作字典元素的遍歷字典的特點字典的生成式 列表 一個對象由id&#xff0…

Android設計模式之代理模式

一、定義&#xff1a; 為其他對象提供一種代理以控制對這個對象的訪問。 二、角色組成&#xff1a; Subject抽象主題&#xff1a;聲明真是主題與代理的共同接口方法&#xff0c;可以是一個抽象類或接口。 RealSubject真實主題&#xff1a;定義了代理表示的真實對象&#xff0c…

國外計算機證書推薦(考證)(6 Sigma、AWS、APICS、IIA、Microsoft、Oracle、PMI、Red Hat)

文章目錄 證書推薦1. 六西格瑪 (6 Sigma)2. 亞馬遜網絡服務 (AWS)3. 美國生產與庫存控制學會 (APICS)4. 內部審計師協會 (IIA)5. 微軟 (Microsoft)6. 甲骨文 (Oracle)7. 項目管理協會 (PMI)8. 紅帽 (Red Hat) 證書推薦 1. 六西格瑪 (6 Sigma) 介紹&#xff1a;六西格瑪是一種…

用mkdocs寫文檔#自動更新github-page

https://wuyisheng.github.io/blog 背景是上一篇博客 使用mkdocs&#xff0c;最后提及可以部署github page。這里說明下怎么自動部署。 當然&#xff0c;這篇博客主要的目的還是提供下github page的鏈接 &#xff1a;&#xff09; 我是這樣做的&#xff1a; step 1: pip3 i…

QT五 文件系統,QFile,QfileInfo

總覽 QIODevice&#xff1a;所有 I/O 設備類的父類&#xff0c;提供了字節塊讀寫的通用操作以及基本接口&#xff1b;QFileDevice&#xff1a;Qt5新增加的類&#xff0c;提供了有關文件操作的通用實現。QFlie&#xff1a;訪問本地文件或者嵌入資源&#xff1b;QTemporaryFile&a…

EF Core表達式樹

文章目錄 前言一、表達式樹與委托的區別二、動態構建表達式樹示例1示例2示例3高級技巧&#xff1a;表達式合并 三、ExpressionTreeToString安裝方法基本用法支持的格式化風格 四、注意事項總結 前言 在 Entity Framework Core 中&#xff0c;表達式樹&#xff08;Expression T…

NVM安裝速通使用手冊(Windows版)NVM管理node版本命令手冊 NVM使用手冊

nvm&#xff08;Node Version Manager&#xff09;是一個用于管理Node.js版本的命令行工具。通過nvm&#xff0c;你可以在同一臺機器上安裝和切換多個Node.js版本&#xff0c;非常適合開發和測試在不同Node.js版本上運行的應用程序 一、安裝地址 1. 官方下載&#xff1a; &…

vLLM命令行使用方法詳解

vLLM 是一個針對大語言模型(LLMs)優化的高效推理和服務庫。以下是 vLLM 命令行工具的詳細使用方法解析,涵蓋常見場景和參數配置: 一、核心命令行工具 vLLM 提供兩個主要的命令行入口: 啟動 API 服務器 用于部署 HTTP/OpenAI 兼容的 API 服務: python -m vllm.entrypoint…

# 基于 OpenCV 的選擇題自動批改系統實現

在教育領域&#xff0c;選擇題的批改工作通常較為繁瑣且重復性高。為了提高批改效率&#xff0c;我們可以利用計算機視覺技術&#xff0c;通過 OpenCV 實現選擇題的自動批改。本文將詳細介紹如何使用 Python 和 OpenCV 實現一個簡單的選擇題自動批改系統。 1. 項目背景 選擇題…

python黑科技:無痛修改第三方庫源碼

需求不符合 很多時候&#xff0c;我們下載的 第三方庫 是不會有需求不滿足的情況&#xff0c;但也有極少的情況&#xff0c;第三方庫 沒有兼顧到需求&#xff0c;導致開發者無法實現相關功能。 如何通過一些操作將 第三方庫 源碼進行修改&#xff0c;是我們將要遇到的一個難點…