c語言第一個小游戲:貪吃蛇小游戲01

hello啊大家好 今天我們用一個小游戲來增強我們的c語言!

那就是貪吃蛇

為什么要做一個貪吃蛇小游戲呢?

????????因為這個小游戲所涉及到的知識有c語言的指針、數組、鏈表、函數等等可以讓我們通過這個游戲來鞏固c語言,進一步認識c語言。

一.我們先做準備工作

????????需要用到ncurse這個老古董。要記住一般ncurses是在Linux系統上比較適配的,所以我們這邊都是在Linux虛擬機里面運行的

????????因為ncurse 的按鍵響應牛逼,但是我們并不要去了解ncurse這個東西,因為他已經被時代淘汰了,我們只需要去時候他的方向鍵鍛煉我們c語言對數據結構的處理,和控制語句的使用才是我們的目的。

要用ncurse的時候 頭文件為#include <curses.h>

initscr(); ?ncurse初始化函數,調用 curses 庫函數來初始化屏幕,開啟 curses 模式,讓程序能夠對屏幕進行操作

printw() ?在ncurse模式下的printf

getch()??等待用戶輸入,如果沒有這句話,程序就退出了,看不到運行的結果,也就是看不到printw里面的話

????????getch?函數會等待用戶輸入,且輸入時不會在屏幕上回顯字符

Endwin ?程序退出,調用改函數來恢復shell終端的顯示,如果沒有這句話,shell終端字亂碼,壞掉

編譯ncurse程序的時候 要在后面添加-lcures ???gcc xxx.c -lcurses

我們這邊輸入這個代碼,我們理解一個各個函數的作用

第一個getchc = getch();?使用?getch?函數從用戶輸入獲取一個字符,并將其賦值給變量?cgetch?函數會等待用戶輸入,且輸入時不會在屏幕上回顯字符。

運行后輸入一個k變成這樣,此時還沒有程序結束,因為第二個getch()這里的?getch?一般是為了等待用戶按下一個鍵,防止程序執行完馬上退出,方便用戶查看輸出結果。

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

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

相關文章

實戰項目1(02)

目錄 任務場景一 【sw1和sw2的配置如下】 任務場景二 【sw3的配置】 【sw4-6的配置】 任務場景一 某公司有生產、銷售、研發、人事、財務等多個部門&#xff0c;這些部門分別連接在兩臺交換機&#xff08;SW1和SW2&#xff09;上&#xff0c;現要求給每個部門劃分相應的V…

Kubernetes生產實戰(十四):Secret高級使用模式與安全實踐指南

一、Secret核心類型解析 類型使用場景自動管理機制典型字段Opaque (默認)自定義敏感數據需手動創建data字段存儲鍵值對kubernetes.io/dockerconfigjson私有鏡像倉庫認證kubelet自動更新.dockerconfigjsonkubernetes.io/tlsTLS證書管理Cert-Manager可自動化tls.crt/tls.keykube…

Linux: 信號【阻塞和捕捉信號】

Linux&#xff1a; 信號【阻塞和捕捉信號】 &#xff08;一&#xff09;阻塞信號1.信號其他相關的概念2.在內核中表示3.sigset_t4.信號集操作函數5.sigprocmask&#xff08;設置阻塞&#xff09;6.sigpending&#xff08;得到未決狀態&#xff09; &#xff08;二&#xff09;捕…

MySQL 數據庫集群部署、性能優化及高可用架構設計

MySQL 數據庫集群部署、性能優化及高可用架構設計 集群部署方案 1. 主從復制架構 傳統主從復制&#xff1a;配置一個主庫(Master)和多個從庫(Slave)GTID復制&#xff1a;基于全局事務標識符的復制&#xff0c;簡化故障轉移半同步復制&#xff1a;確保至少一個從庫接收到數據…

Java 多態:原理與實例深度剖析

一、多態概述 在 Java 面向對象編程體系中&#xff0c;多態是構建靈活、可擴展程序的核心機制之一&#xff0c;與封裝、繼承并稱為面向對象的三大特性。其本質是同一操作作用于不同對象&#xff0c;產生不同的執行結果&#xff0c;這使得程序在運行時能根據實際對象類型動態調…

解決使用寶塔Linux部署前后端分離項目遇到的問題

問題一&#xff1a;訪問域名轉圈圈&#xff0c;顯示404,403 沒有解決跨域問題&#xff0c;在后端yml中設置content&#xff1a;/prod&#xff08;生產環境&#xff09;&#xff0c;在前端.env文件中將http&#xff1a;//127.0.0.1:8080/替換為公網IP&#xff0c;并在vite.conf…

《Python星球日記》 第54天:卷積神經網絡進階

名人說&#xff1a;路漫漫其修遠兮&#xff0c;吾將上下而求索。—— 屈原《離騷》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 目錄 一、深度CNN架構解析1. LeNet-5&#xff08;1998&#xff09;2. AlexNet&#x…

旅游設備生產企業的痛點 質檢系統在旅游設備生產企業的應用

在旅游設備制造行業&#xff0c;產品質量直接關系到用戶體驗與企業口碑。從景區纜車、觀光車到水上娛樂設施&#xff0c;每一件設備的安全性與可靠性都需經過嚴苛檢測。然而&#xff0c;傳統質檢模式常面臨數據分散、流程不透明、合規風險高等痛點&#xff0c;難以滿足旅游設備…

MySql(進階)

一.數據庫約束 約束類型 NOT NULL - 指示某列不能存儲 NULL 值。 (not null不能為NILL) UNIQUE - 保證某列的每行必須有唯一的值。 &#xff08;unique唯一值&#xff09; DEFAULT - 規定沒有給列賦值時的默認值。 &#xff08;default為空給定默認值&#xff09; PRIMARY…

Three.js + React 實戰系列 - 聯系方式提交表單區域 Contact 組件?(表單綁定 + 表單驗證)

對個人主頁設計和實現感興趣的朋友可以訂閱我的專欄哦&#xff01;&#xff01;謝謝大家&#xff01;&#xff01;&#xff01; 在現代網頁中&#xff0c;一個精致的 Contact 區域不僅僅是表單的堆砌&#xff0c;更是用戶與我們建立聯系的第一印象。 在本節課中&#xff0c;我…

UOJ 164【清華集訓2015】V Solution

Description 給定序列 a ( a 1 , a 2 , ? , a n ) a(a_1,a_2,\cdots,a_n) a(a1?,a2?,?,an?)&#xff0c;另有序列 h h h&#xff0c;初始時 h a ha ha. 有 m m m 個操作分五種&#xff1a; add ? ( l , r , v ) \operatorname{add}(l,r,v) add(l,r,v)&#xff1a;…

C++開發過程中的注意事項詳解

目錄 C++開發過程中的注意事項詳解 一、內存管理:避免泄漏與資源浪費 1.1 使用智能指針管理動態內存 1.2 避免手動內存管理的陷阱 1.3 利用RAII機制管理資源 1.4 容器與內存分配 二、安全性:防御攻擊與未定義行為 2.1 輸入驗證與安全編碼 2.2 使用安全的通信協議 2…

Git 時光機:修改Commit信息

前言 列位看官都知道&#xff0c;Git 的每一次 git commit&#xff0c;其中會包含作者&#xff08;Author&#xff09;和提交者&#xff08;Committer&#xff09;的姓名與郵箱。有時可能會因為配置錯誤、切換了開發環境&#xff0c;或者只是單純的手滑&#xff0c;導致 commi…

QSFP+、QSFP28、QSFP-DD接口分別實現40G、100G、200G/400G以太網接口

常用的光模塊結構形式&#xff1a; 1&#xff09;QSFP等效于4個SFP&#xff0c;支持410Gbit/s通道傳輸&#xff0c;可通過4個通道實現40Gbps傳輸速率。與SFP相比&#xff0c;QSFP光模塊的傳輸速率可達SFP光模塊的四倍&#xff0c;在部署40G網絡時可直接使用QSFP光模塊&#xf…

好用的播放器推薦

以下是一些好用的播放器推薦&#xff0c;按照不同平臺和使用場景分類&#xff1a; 電腦端 VLC Media Player 特點&#xff1a;開源、跨平臺&#xff0c;支持幾乎所有的音視頻格式&#xff0c;無需額外安裝解碼器。具備強大的功能&#xff0c;如播放列表管理、視頻和音頻濾鏡、…

Vue基礎(8)_監視屬性、深度監視、監視的簡寫形式

監視屬性(watch)&#xff1a; 1.當被監視的屬性變化時&#xff0c;回調函數(handler)自動調用&#xff0c;進行相關操作。 2.監視的屬性必須存在&#xff0c;才能進行監視&#xff01;&#xff01; 3.監視的兩種寫法&#xff1a; (1).new Vue時傳入watch配置 (2).通過vm.$watc…

AI服務器的作用都有哪些?

根據網絡環境的飛速發展&#xff0c;人工智能技術逐漸入駐到各個行業當中&#xff0c;其中AI服務器則是一種專門用來運行人工智能算法和模型的硬件設備&#xff0c;通常具備高性能計算、大容量存儲和并行計算等多種功能&#xff0c;本文就來詳細講解一下AI服務器的作用&#xf…

[250508] Linux 內核瘦身:棄用 i486 及早期 586 CPU 支持

目錄 Linux 內核計劃精簡&#xff1a;將移除對古董級 CPU 的支持 Linux 內核計劃精簡&#xff1a;將移除對古董級 CPU 的支持 核心動態&#xff1a; Linux 內核開發社區正計劃一項重要的代碼清理工作&#xff0c;目標是移除對非常古老的 i486 及早期 586 (如早期奔騰) CPU 架構…

ROM詳解

一、ROM基礎原理 定義與特性 ROM&#xff08;Read-Only Memory&#xff0c;只讀存儲器&#xff09;是一種非易失性存儲器&#xff0c;數據在制造或編程后永久保存&#xff0c;斷電后不丟失。其核心特性為數據不可修改&#xff08;或需特殊條件修改&#xff09;。 存儲原理&…

解決虛擬機掛起之后的網絡問題

相信很多人都有遇到過自己在VM上面手滑點了個掛起然后就連不了網絡的情況吧&#xff0c;我也遇到了&#xff0c;下面是我的解決辦法&#xff0c;希望對大家有所幫助&#xff01; 我運行完如下&#xff1a; 基本上出現綠色的就說明網絡連上啦&#xff01;