5 次程式碼提交

作者 SHA1 備註 日期
702611409e Merge pull request '...' (#8) from vaisse into master
Reviewed-on: #8
2025-10-08 17:34:07 +02:00
vaisse
32de0b90e7 ... 2025-10-08 17:32:29 +02:00
cc74987a8b Merge pull request 'mince' (#7) from vaisse into master
Reviewed-on: #7
2025-10-08 17:30:11 +02:00
vaisse
87487bde84 mince 2025-10-08 17:25:49 +02:00
c650075e86 Merge pull request 'add src' (#6) from kara-mosr into master
Reviewed-on: #6
2025-10-08 16:12:24 +02:00
共有 5 個檔案被更改,包括 80 行新增190 行删除

查看文件

@@ -1,80 +0,0 @@
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
/*
*/
int getFileLength(){
/*variables*/
FILE* stream;
int file_length = 0;
char* line = NULL;
size_t length = 0;
ssize_t read;
/*prog*/
stream = fopen("wordbank.txt", "r");
if (stream == NULL){
return EXIT_FAILURE;
}
while((read = getline(&line, &length, stream)) != -1){
file_length++;
}
fclose(stream);
return file_length-1;
}
/*
*/
int fetchWord(char* fullword, int file_length){
/*variables*/
FILE* stream;
int random = (rand() * time(NULL)) % (file_length);
char read[8];
unsigned int counter = 0;
int char_size = (int) sizeof(char);
int line=0;
int offset=0;
/*prog*/
printf("%d\n", random);
stream = fopen("wordbank.txt", "r");
if (stream == NULL){
return -1;
}
while((!feof(stream))&&(offset!=random)){
fread(read, sizeof(char), 1, stream);
if(*read=='\n'){
offset++;
}
}
*read=' ';
while(*read!='\n'){
fread(read, sizeof(char), 1, stream);
fullword[counter] = *read;
counter++;
}
fclose(stream);
return 0;
}
int main(void){
int flength;
char fullWord[128];
flength = getFileLength();
if(fetchWord(fullWord, flength)!=-1){
printf("%s", fullWord);
}
return EXIT_SUCCESS;
}

二進制
src/a.out 可執行檔

未顯示二進位檔案。

80
src/interface.c 一般檔案
查看文件

@@ -0,0 +1,80 @@
#include <stdlib.h>
#include <stdio.h>
#include <graph.h>
#define WINDOW_HEIGTH 500
#define WINDOW_WIDTH 500
/*
Contient l'ensemble des informations essentiels d'un bouton
*/
typedef struct {
int x;
int y;
int length;
int heigth;
char* text;
unsigned short int r;
unsigned short int g;
unsigned short int b;
} Button;
/*
Ouvre la fenêtre. Permet au jeu de démarer.
*/
void STARTGAMe(){
InitialiserGraphique();
CreerFenetre(10, 10, WINDOW_HEIGTH, WINDOW_WIDTH);
}
/*
Vérifie si le curseur est placée dans un bouton. Renvoi 0 si oui. Renvoi -1 sinon.
*/
int inButton(Button* b){
int minimum_x = b->x;
int minimum_y = b->y;
int maximum_x = (b->x) + (b->length);
int maximum_y = (b->y) + (b->heigth);
if((_X>=minimum_x)&&(_X<=maximum_x)&&(_Y>=minimum_y)&&(_Y<=maximum_y)){
return 0;
} else {
return -1;
}
}
/*
Dessine un bouton sur l'écran
*/
void drawButton(Button* b){
ChoisirCouleurDessin(CouleurParComposante(b->r,b->g,b->b));
RemplirRectangle(b->x, b->y, b->length, b->heigth);
ChoisirCouleurDessin(CouleurParNom("white"));
EcrireTexte((b->x)+20, (b->y)+20, b->text, (b->heigth)/2);
}
/*
Affiche le menu
*/
void setMenu(){
/*éléments*/
Button easy = {WINDOW_WIDTH*(1-0.75), WINDOW_HEIGTH*(1-0.75), WINDOW_WIDTH/8, WINDOW_HEIGTH/10, "facile", 148, 225, 224};
Button medium = {WINDOW_WIDTH*(1-0.50), WINDOW_HEIGTH*(1-0.75), WINDOW_WIDTH/8, WINDOW_HEIGTH/10, "moyen", 148, 225, 224};
Button hard = {WINDOW_WIDTH*(1-0.25), WINDOW_HEIGTH*(1-0.75), WINDOW_WIDTH/8, WINDOW_HEIGTH/10, "difficile", 148, 225, 224};
/*dessin*/
ChoisirCouleurDessin(CouleurParNom("black"));
EcrireTexte(WINDOW_WIDTH/2, WINDOW_HEIGTH/2, "PENDU", WINDOW_WIDTH/10);
drawButton(&easy);
drawButton(&medium);
drawButton(&hard);
}
int main(void){
STARTGAMe();
setMenu();
Touche();
FermerGraphique();
return EXIT_SUCCESS;
}

查看文件

@@ -1,103 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LIFES 8 // Nombre de vies au debut du jeu
// Fonction pour lire une lettre proposee par le joueur
char choose_letter() {
char letter;
printf("Entrez une lettre : ");
scanf(" %c", &letter); // Le " " avant %c evite de lire un retour chariot
printf("Vous avez choisi la lettre '%c'\n", letter);
return letter;
}
// Fonction pour calculer la taille d'une chaine (similaire a strlen)
int word_size(const char *fullWord) {
int size = 0;
while (fullWord[size] != '\0') {
size++;
}
return size;
}
// Verifie combien de fois la lettre apparait dans fullWord
int letter_occurrence(char letter, const char *fullWord) {
int wordsize = wor_size(fullWord);
int letterOccurrence = 0;
for (int i = 0; i < wordsize; i++) {
if (fullWord[i] == letter) { // == pour comparer
letterOccurrence++;
}
}
if (letterOccurrence == 0) {
printf("La lettre '%c' n'apparait pas dans le mot.\n", letter);
}
return letterOccurrence;
}
// Remplace les '_' par la lettre trouvee dans partialWord
void position_letter(char letter, const char *fullWord, char *partialWord) {
int wordsize = word_size(fullWord);
for (int i = 0; i < wordsize; i++) {
if (fullWord[i] == letter) {
partialWord[i] = letter;
}
}
}
// Verifie si le joueur a gagne (si partialWord == fullWord)
int has_won(const char *fullWord, const char *partialWord) {
return strcmp(fullWord, partialWord) == 0; // 1 si egal, 0 sinon
}
int main() {
char fullWord[] = "ordinateur"; // Le mot a deviner
int size = word_size(fullWord);
char partialWord[size + 1]; // +1 pour le '\0'
// Initialiser partialWord avec des '_'
for (int i = 0; i < size; i++) {
partialWord[i] = '_';
}
partialWord[size] = '\0';
int lifes = LIFES;
int won = 0;
printf("Bienvenue au jeu du pendu !\n");
printf("Le mot a deviner contient %d lettres.\n", size);
while (lifes > 0 && !won) {
printf("\nMot actuel : %s\n", partialWord);
printf("Vies restantes : %d\n", lifes);
char letter = choose_letter();
int occurrence = letter_occurrence(letter, fullWord);
if (occurrence > 0) {
position_letter(letter, fullWord, partialWord);
} else {
lifes--;
}
if (has_won(fullWord, partialWord)) {
won = 1;
}
}
if (won) {
printf("\n Felicitations ! Vous avez trouve le mot : %s\n", fullWord);
} else {
printf("\n Vous avez perdu ! Le mot etait : %s\n", fullWord);
}
return 0;
}

查看文件

@@ -1,7 +0,0 @@
anticonstitutionnellement
éclésiastique
abandonner
seringue
vocifération
éponyme