Des GÉNIES en HASKELL?
SuppriméLe 14 décembre 2022 à 21:26:07 Outlier a écrit :
Le 14 décembre 2022 à 21:24:45 Bresombrero a écrit :
Le 14 décembre 2022 à 21:21:10 :
Et t'as déjà utilisé OpenAI pour dire que ça risque d'être chaud ?oui je lui ai demandé un fibonacci il m'a pondu en gros un truc comme ça
(j'arrive pas a retrouver le type exact celui la marche pas)exactement çafibonacci n = (\fib n -> if n < 2 then n else fib (n - 1) + fib (n - 2)) fibonacci n
J'y connais rien en Haskell mais ça ressemble bien à la fameuse récursion commune à tous les langages (et utilisée rarement)
c'est effectivement la récursion naïve pas très belle mais il pose un lambda auquel il refile.. la fonction et l'argument, en gros ça peut se réécrire fib n = if n < 2 then n else fib (n - 1) + fib (n - 2)
Le 14 décembre 2022 à 21:33:17 Bresombrero a écrit :
Le 14 décembre 2022 à 21:31:26 :
Tu connais un autre langage ?oui j'aime le C et je connais python/java/c++ viteuf, et toi khey quoi de beau
Un peu de tout aussi mais j'attends que OpenAI revienne je suis sûr qu'elle peut faire ton truc en haskell. Elle rame à mort là comme tous les soirs. Je reste là en F5 l'ia toutes les 5 minutes
Le 14 décembre 2022 à 21:36:10 Outlier a écrit :
Le 14 décembre 2022 à 21:33:17 Bresombrero a écrit :
Le 14 décembre 2022 à 21:31:26 :
Tu connais un autre langage ?oui j'aime le C et je connais python/java/c++ viteuf, et toi khey quoi de beau
Un peu de tout aussi mais j'attends que OpenAI revienne je suis sûr qu'elle peut faire ton truc en haskell. Elle rame à mort là comme tous les soirs. Je reste là en F5 l'ia toutes les 5 minutes
perso j'ai l'impression que c'est qu'un gros crawler et ça arrive qu'il se démerde bien pour cracher son cours genre lui demander une implémentation d'un truc bien connu mais pour le côté intelligence je demande encore à voir
Ah c'est bon elle a craché le morceau. Essaye ça :
-- Définition du type `Game` pour représenter le plateau de jeu
data Game = Game {
board :: [[Char]] -- le plateau de jeu est une grille de caractères
}
-- Définition de la fonction `emptyGame` pour créer un nouveau jeu vide
emptyGame :: Game
emptyGame = Game {
board = [replicate 3 ' ' | _ <- [1..3]]
}
-- Définition de la fonction `play` pour jouer un coup
play :: Game -> Int -> Int -> Char -> Game
play game@(Game b) x y symbol =
if x < 1 || x > 3 || y < 1 || y > 3 || b !! (x-1) !! (y-1) /= ' '
then game -- mouvement invalide
else game {board = update b x y symbol}
where
update :: [[Char]] -> Int -> Int -> Char -> [[Char]]
update b x y symbol =
[if y' == y then (take (x-1) row ++ [symbol] ++ drop x row) else row | (row, y') <- zip b [1..]]
-- Définition de la fonction `finished` pour vérifier si le jeu est terminé
finished :: Game -> Bool
finished (Game b) =
-- vérifie s'il y a un joueur gagnant ou si le plateau est plein
(wins 'X' || wins 'O' || all (all (/= ' ')) b)
where
wins :: Char -> Bool
wins symbol =
-- vérifie les lignes, les colonnes et les diagonaux pour le symbole donné
any (all (== symbol)) b ||
any (all (== symbol)) (transpose b) ||
all (== symbol) [b !! i !! i | i <- [0..2]] ||
all (== symbol) [b !! i !! (2-i) | i <- [0..2]]
oui mais non ça c'est beaucoup trop simple justement parce que ça a déjà été fait et refait c'est juste un morpion classique
je veux qu'elle code par ex une fonction qui trouve l'unique coup qui fait gagner une partie s'il existe, mais dans le type system, à priori c'est faisable parce que c'est turing complete et y'a un mec qui a fait quelque chose comme ça avec démineur
Données du topic
- Auteur
- Bresombrero
- Date de création
- 14 décembre 2022 à 18:42:56
- Date de suppression
- 6 février 2023 à 18:54:00
- Supprimé par
- Auteur
- Nb. messages archivés
- 30
- Nb. messages JVC
- 25