Faits :
A.
Par jugement du 4 juillet 2017, le Tribunal pénal de l'arrondissement de la Sarine a libéré A._ de divers chefs de prévention mais l'a condamné, pour faux dans les titres, obtention frauduleuse d'une constatation fausse, injure, usure, gestion déloyale et tentative de contrainte, à une peine privative de liberté de 22 mois, ainsi qu'à une peine pécuniaire de 10 jours-amende à 10 fr. le jour.
B.
Par arrêt du 18 décembre 2019, la Cour d'appel pénal du Tribunal cantonal de l'Etat de Fribourg, statuant notamment sur les appels formés par A._ et par le ministère public contre ce jugement, a réformé celui-ci en ce sens que le prénommé est condamné, pour escroquerie par métier, tentative de contrainte, faux dans les titres, obtention frauduleuse d'une constatation fausse et injure, à une peine privative de liberté de 9 mois, peine complémentaire à la peine privative de liberté de cinq ans prononcée le 12 février 2019, ainsi qu'à une peine pécuniaire de 10 jours-amende à 10 fr. le jour.
La cour cantonale a retenu les faits suivants s'agissant des infractions encore contestées devant le Tribunal fédéral.
B.a. A._ a subi un accident le 14 avril 2011, alors qu'il se trouvait au bénéfice de l'assurance-chômage jusqu'au 2 mai 2011. Ensuite de l'annonce de cet accident, la société B._ SA, dirigée par le prénommé, a, en août 2011, demandé et obtenu son affiliation auprès de la SUVA. Par décision du 8 septembre 2011, la SUVA a alloué à A._ des indemnités journalières. Ce dernier a, au nom de B._ SA, fait parvenir ses propres fiches de salaire pour les mois de mai et juin 2011, puis, pour les mois suivants. Les prestations versées par la SUVA en raison de l'arrêt de travail de A._ ont été calculées sur la base d'un salaire mensuel brut de 12'000 fr. et ont porté sur les périodes suivantes :
- arrêt à 100% du 17 avril 2011 au 5 novembre 2011;
- arrêt à 20% du 6 novembre 2011 au 24 septembre 2013;
- arrêt à 100% du 25 septembre 2013 au 31 mai 2014.
A._ n'a touché aucun salaire de la part de B._ SA pour les années 2010 à 2013. Après en avoir été informée, la SUVA a revu le calcul des indemnités octroyées au prénommé en fonction de sa véritable situation financière et a réclamé le remboursement de 112'875 fr. 35 versés en trop.
B.b. A._ a proposé à C._, qui faisait face à des problèmes de trésorerie, de lui racheter la société D._ Sàrl, pour une somme de 10'000 francs. Il a versé à la prénommée un montant de 7'000 fr. à ce titre. Afin d'éviter des démarches administratives complexes auprès de E._ SA - à laquelle D._ Sàrl était liée par un contrat d'agence -, les parties sont convenues que C._ resterait la gérante officielle du kiosque et de la société D._ Sàrl, mais que A._ en deviendrait le vrai patron. Dès le 1er mars 2014, ce dernier a bénéficié d'une procuration sur le compte bancaire de D._ Sàrl, ce document devant lui permettre de procéder au paiement des salaires, des cotisations sociales et des diverses factures en lien avec cette société. Dès la fin du mois de juillet 2014, C._, croyant que A._ ne consacrait pas tout l'argent prélevé au paiement des frais de la société, lui a retiré la procuration.
Le 19 décembre 2014, la société F._ Sàrl, liée à A._, a fait notifier à C._ un commandement de payer pour un montant de 43'500 fr., au titre de "garantie bancaire, l'achat de Sàrl, restitution d'une garantie de salaire". A._ savait pourtant que celle-ci ne devait nullement un tel montant à F._ Sàrl.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 18 décembre 2019, en concluant, avec suite de frais et dépens, à sa réforme en ce sens qu'il est libéré des chefs de prévention d'escroquerie par métier et de tentative de contrainte, la cause étant renvoyée à l'autorité cantonale pour nouvelle décision sur la quotité de la peine et la répartition des frais judiciaires, une indemnité de 5'000 fr. lui étant en outre allouée pour ses dépens devant le Tribunal fédéral. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.
D.
Invités à se déterminer à propos du grief relatif à la violation du principe d'accusation, la cour cantonale a renoncé à présenter des observations, tandis que le ministère public a conclu au rejet du recours.

Considérant en droit :
1.
Le recourant reproche à la cour cantonale d'avoir violé la maxime d'accusation concernant l'infraction d'escroquerie par métier.
1.1. L'<ref-law> consacre la maxime d'accusation. Selon cette disposition, une infraction ne peut faire l'objet d'un jugement que si le ministère public a déposé auprès du tribunal compétent un acte d'accusation dirigé contre une personne déterminée sur la base de faits précisément décrits. En effet, le prévenu doit connaître exactement les faits qui lui sont imputés et les peines et mesures auxquelles il est exposé, afin qu'il puisse s'expliquer et préparer efficacement sa défense (<ref-ruling> consid. 2.2 p. 65; <ref-ruling> consid. 3.4.1 p. 142 s.). Le tribunal est lié par l'état de fait décrit dans l'acte d'accusation (principe de l'immutabilité de l'acte d'accusation), mais peut s'écarter de l'appréciation juridique qu'en fait le ministère public (<ref-law>), à condition d'en informer les parties présentes et de les inviter à se prononcer (<ref-law>). Le principe de l'accusation est également déduit de l'art. 29 al. 2 Cst. (droit d'être entendu), de l'art. 32 al. 2 Cst. (droit d'être informé, dans les plus brefs délais et de manière détaillée, des accusations portées contre soi) et de l'art. 6 par. 3 let. a CEDH (droit d'être informé de la nature et de la cause de l'accusation).
Les <ref-law> règlent la mise en accusation, en particulier le contenu strict de l'acte d'accusation. Selon l'<ref-law>, l'acte d'accusation désigne notamment les actes reprochés au prévenu, le lieu, la date et l'heure de leur commission ainsi que leurs conséquences et le mode de procéder de l'auteur (let. f); les infractions réalisées et les dispositions légales applicables de l'avis du ministère public (let. g). En d'autres termes, l'acte d'accusation doit contenir les faits qui, de l'avis du ministère public, correspondent à tous les éléments constitutifs de l'infraction reprochée au prévenu (arrêts 6B_178/2020 du 20 mars 2020 consid. 2; 6B_1142/2019 du 2 mars 2020 consid. 3.1; 6B_431/2019 du 5 juillet 2019 consid. 2.1). L'acte d'accusation définit l'objet du procès et sert également à informer le prévenu (fonction de délimitation et d'information) (<ref-ruling> consid. 2.2 p. 65; <ref-ruling> consid. 3.4.1 p. 142 s. et les références citées).
1.2. Dans l'acte d'accusation du 26 octobre 2016, il est notamment exposé que le recourant a obtenu l'affiliation de B._ SA en qualité d'employeur auprès de la SUVA, qu'il a ensuite, soit en septembre 2011, fait parvenir à celle-ci de fausses fiches de salaire concernant les mois de mai et juin 2011, lesquelles faisaient état d'un salaire mensuel brut de 12'000 fr., puis qu'il a procédé de la même manière au cours des mois suivants, "confortant ainsi la SUVA dans son erreur selon laquelle B._ SA exerçait une réelle activité et le rémunérait à hauteur de CHF 12'000.- brut par mois". Le recourant était ainsi accusé d'escroquerie par métier en concours avec une infraction de faux dans les titres, l'accent étant mis, par le biais d'un soulignage, sur la fausseté des fiches de salaires (cf. pièce 10'068 du dossier cantonal, p. 20). Ensuite, la section de l'acte d'accusation intitulée "Faits pénalement répréhensibles" a la teneur suivante (cf. Ibid., p. 23 s.) :
"Les éléments au dossier indiquent cependant que la société B._ SA a, par l'intermédiaire du [recourant], trompé la SUVA par rapport aux salaires réellement versés [au recourant] au moment de son incapacité de travail.
Selon les informations obtenues par la SUVA auprès de la Caisse de compensation du canton de Fribourg [...], [le recourant] n'aurait touché aucun salaire de la part de B._ SA pour les années 2010 à 2013 [...].
En effet, pour l'année 2011, la société B._ SA avait déclaré à la Caisse de compensation une charge salariale à CHF 72'000.- [...]. Pour les années 2012 et 2013, elle avait fait état d'une charge salariale de CHF 156'000.- [...]. Le 17 avril 2014, faute d'avoir obtenu les justificatifs relatifs aux salaires en question, la Caisse de compensation de Fribourg a constaté qu'il manquait les éléments nécessaires pour présumer du fait que B._ SA rémunérait vraiment [le recourant] et a décidé d'annuler les factures des cotisations [...].
Après avoir été informée de cet état de fait par la Caisse de compensation, la SUVA a, par décision du 21 juillet 2014, revu le calcul des indemnités octroyées [au recourant] en fonction de sa situation financière réelle [...]. Elle a estimé avoir versé CHF 111'757.75en trop à B._ SA.
[...] "
Dans son jugement du 4 juillet 2017, le tribunal de première instance a retenu que le recourant avait informé la SUVA du fait qu'il n'avait jamais perçu le salaire indiqué sur les fiches de salaire transmises, qu'il pensait que les activités de B._ SA allaient démarrer en automne seulement et qu'il n'avait plus fait parvenir de telles fiches après septembre 2011. Il a ainsi considéré que le recourant n'avait jamais affirmé un fait dont il connaissait la fausseté ni dissimulé des faits vrais, ses déclarations concernant le développement de l'activité de B._ SA n'ayant constitué qu'un pronostic. Le tribunal de première instance a donc estimé qu'il n'y avait pas eu tromperie, car la SUVA avait en définitive accordé ses prestations sur la base du pronostic formulé par le recourant, pour être ensuite rapidement informée de nouvelles incapacités de travail relatives à ce dernier (cf. pièce 13'596 du dossier cantonal, p. 48 s.).
1.3. Dans l'arrêt attaqué, la cour cantonale a notamment retenu que, pour les trois premiers mois ayant suivi l'accident annoncé par le recourant, la SUVA s'était fondée sur les prestations versées à ce dernier par l'assurance-chômage afin de déterminer le montant des indemnités journalières. A partir du 14 juillet 2011, elle s'était basée sur le salaire déclaré par le recourant, plafonné à 120'000 francs. Lors d'un entretien avec l'inspecteur de la SUVA le 11 octobre 2011, le recourant avait expliqué que les fiches de salaire de la société B._ SA étaient générées automatiquement par l'entreprise, mais que cette dernière ne lui avait pas encore versé les salaires en question car elle n'en avait pas les moyens, en raison de l'incapacité de travail de son gérant. L'autorité précédente a ainsi retenu que si le recourant n'avait "pas tu le fait qu'aucun salaire ne lui était effectivement versé, il a[vait] en revanche trompé la SUVA sur la réalité de l'activité économique exercée par B._ SA" (cf. arrêt attaqué, p. 19). Elle a ensuite expliqué, dans le détail, pourquoi le salaire annoncé par le recourant à la SUVA n'était pas réaliste au regard de l'activité anecdotique exercée par B._ SA au cours des années concernées. La cour cantonale en a conclu, s'agissant de B._ SA, qu'elle ne voyait pas à quel titre le recourant "aurait pu se prévaloir d'une activité de direction effective de cette société, qui lui aurait donné droit à une rémunération et, par conséquent, à des prestations d'assurance en cas d'incapacité de travail due à un accident". L'autorité précédente a encore indiqué que le recourant avait, dès l'annonce de l'affiliation de sa société auprès de la SUVA, eu l'intention de tromper celle-ci et d'obtenir le paiement de prestations dans une ampleur à laquelle il n'avait pas droit, et que l'intéressé avait "dépassé le stade des simples déclarations ou pronostics sur des événements futurs dès lors qu'il a[vait] adopté un comportement très actif et insistant afin d'obtenir des indemnités journalières de la part de l'assurance". Elle a conclu en exposant ce qui suit (cf. Ibid., p. 22) :
"Or, c'est sur ce point que le [recourant] s'est employé à induire la SUVA en erreur, ne lui exposant à aucun moment, après l'information initiale que la société « devrait démarrer vraiment dans le courant de l'automne 2011» [...], que l'entreprise n'exerçait aucune activité effective, alors qu'il lui incombait d'informer l'assurance de cet état de fait."
1.4. Avec le recourant, il faut admettre que sa condamnation pour escroquerie par métier consacre une violation de la maxime d'accusation par la cour cantonale.
En effet, dans l'acte d'accusation, le recourant a été accusé d'escroquerie par métier en raison d'un comportement actif consistant à adresser à la SUVA de fausses fiches de salaires, ce qui aurait fait accroire à celle-ci que l'intéressé percevait un revenu mensuel brut de 12'000 fr., les indemnités journalières ayant été calculées en conséquence. Il y était expressément précisé que la tromperie avait porté sur les salaires réellement versés au recourant au moment de son incapacité de travail.
C'est d'ailleurs ainsi que le tribunal de première instance a compris l'accusation, puisqu'il a relevé que la SUVA avait bien été informée du fait que les salaires figurant sur les fiches transmises n'avaient en réalité jamais été versés, qu'aucun document de cette nature n'avait été transmis après septembre 2011 et que les prestations avaient ainsi été calculées sur la base d'un simple pronostic formulé par l'intéressé.
L'autorité précédente a, pour sa part, condamné le recourant pour avoir annoncé une expectative de revenu qui n'était pas réaliste compte tenu du développement de la société B._ SA - en particulier en indiquant que l'entreprise devrait véritablement démarrer ses activités dès l'automne 2011 -, puis pour s'être abstenu, postérieurement à cette annonce, de signaler qu'aucune activité effective n'était déployée. La cour cantonale a donc essentiellement reproché au recourant une omission, en relevant qu'il aurait incombé au recourant de procéder à une annonce auprès de la SUVA concernant le développement de B._ SA, ce qu'il n'avait pas fait. Or, aucun de ces aspects n'était évoqué dans l'acte d'accusation du 26 octobre 2016. En particulier, lorsque l'infraction est commise par omission, l'acte d'accusation doit préciser les circonstances de fait qui permettent de conclure à une obligation juridique d'agir de l'auteur (cf. <ref-law>), ainsi que les actes que l'auteur aurait dû accomplir (<ref-ruling> consid. 3c p. 356; <ref-ruling> consid. 3cc p. 458; arrêt 6B_1142/2019 précité consid. 3.1), ces éléments faisant défaut en l'espèce. La cour cantonale a en définitive condamné le recourant pour un comportement qui n'était pas celui décrit dans l'acte d'accusation et à l'égard duquel l'intéressé n'avait pas à construire sa défense.
Le recours doit être admis sur ce point, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale pour nouvelle décision.
Point n'est besoin, à ce stade, d'examiner l'argumentation subsidiaire du recourant contestant la réalisation des éléments constitutifs de l'infraction.
2.
Le recourant fait grief à la cour cantonale d'avoir violé l'<ref-law> en lien avec le chef de prévention de tentative de contrainte.
2.1. Aux termes de l'<ref-law>, lorsque l'affaire n'est pas en état d'être jugée, le tribunal décide de compléter les preuves, puis de reprendre les débats.
2.2. Dans l'arrêt attaqué, la cour cantonale a indiqué que l'acte d'accusation mentionnait l'envoi, par l'intermédiaire de la société F._ Sàrl, d'un commandement de payer injustifié de 43'500 fr. à D._ Sàrl. Lors des débats de première instance, le ministère public avait corrigé l'acte d'accusation - en relevant que le commandement de payer avait été envoyé à C._ personnellement - et avait requis une nouvelle qualification des faits dans le sens d'une tentative de contrainte. Le tribunal de première instance avait accédé à cette demande, mais avait oublié d'entendre le recourant à propos de cette accusation modifiée. Après la clôture de la procédure probatoire et les plaidoiries, le tribunal de première instance avait décidé de rouvrir immédiatement la procédure probatoire s'agissant de l'examen de la tentative de contrainte. Il avait entendu le recourant à ce sujet (cf. pièce 13'467 du dossier cantonal, p. 5), puis avait prononcé une nouvelle fois la clôture de la procédure probatoire et laissé derechef la parole aux parties.
2.3. En l'espèce, contrairement à ce que suggère le recourant, il n'apparaît pas que l'<ref-law> aurait été formellement appliqué. Comme l'a relevé l'autorité précédente, les droits du recourant, découlant de l'<ref-law>, ont en revanche été respectés, ce que l'intéressé ne conteste pas. Il reste que, postérieurement à la clôture de l'instruction et aux plaidoiries, le tribunal de première instance a réouvert l'instruction, avant de laisser à nouveau la place aux plaidoiries puis de donner la parole au recourant (cf. pièce 13'467 du dossier cantonal, p. 5 s.).
Quoi qu'il en soit, le grief est sans portée. Il apparaît en effet que, postérieurement à un complément de preuves fondé sur l'<ref-law>, les art. 345, 346 et 347 CPP doivent en tous les cas être appliqués par le tribunal (cf. Message du 21 décembre 2005 relatif à l'unification du droit de la procédure pénale, FF 2006 1057, 1270). Tel a été le cas en l'espèce, puisque le tribunal de première instance, après avoir auditionné le recourant à propos de la correction de l'acte d'accusation, a derechef fait application de l'<ref-law> puis des <ref-law>. Aucune violation du droit fédéral ne peut être discernée à cet égard.
Au demeurant, on ne voit pas quel désagrément aurait pu résulter, pour le recourant, de cet accident procédural - notamment en termes de droit d'être entendu -, ce dernier ne prétendant d'ailleurs pas avoir subi un quelconque désavantage en la matière. On ne saurait admettre, partant, que le recourant devrait être, comme il le demande, libéré du chef de prévention de tentative de contrainte.
3.
Le recourant conteste sa condamnation pour tentative de contrainte concernant C._, en se plaignant d'un établissement arbitraire des faits.
3.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (<ref-law>), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat. Le Tribunal fédéral n'entre pas en matière sur les critiques de nature appellatoire. La présomption d'innocence, garantie par les <ref-law>, 32 al. 1 Cst., 14 par. 2 Pacte ONU II et 6 par. 2 CEDH, ainsi que son corollaire, le principe "in dubio pro reo", concernent tant le fardeau de la preuve que l'appréciation des preuves au sens large. En tant que règle sur le fardeau de la preuve, elle signifie, au stade du jugement, que le fardeau de la preuve incombe à l'accusation et que le doute doit profiter au prévenu. Comme règle d'appréciation des preuves, la présomption d'innocence signifie que le juge ne doit pas se déclarer convaincu de l'existence d'un fait défavorable à l'accusé si, d'un point de vue objectif, il existe des doutes quant à l'existence de ce fait. Il importe peu qu'il subsiste des doutes seulement abstraits et théoriques, qui sont toujours possibles, une certitude absolue ne pouvant être exigée. Il doit s'agir de doutes sérieux et irréductibles, c'est-à-dire de doutes qui s'imposent à l'esprit en fonction de la situation objective. Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe "in dubio pro reo", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 1.1 p. 155 s. et les références citées).
3.2. La cour cantonale a exposé que la réquisition de poursuite relative au commandement de payer qui avait été adressé à C._ ne figurait pas au dossier. Il n'était donc pas possible de déterminer si ce document avait été signé par le recourant ou par sa soeur, administratrice de la société F._ Sàrl. Cependant, il n'était pas douteux que le recourant fût à l'origine de l'envoi. En effet, bien que la soeur de ce dernier fût peut-être administratrice "de paille", à tout le moins au service du recourant, l'intéressée ou F._ Sàrl n'avait aucune raison de vouloir faire pression sur C._. Tel était en revanche le cas pour le recourant, au vu des conflits qui étaient apparus dès le retrait de la procuration relative au compte bancaire de la société D._ Sàrl. En outre, le recourant estimait que C._ lui devait une partie de l'argent reçu à titre de garantie, laquelle s'élevait à 39'000 francs. Celui-ci avait donc fait notifier à la prénommée un commandement de payer portant sur un montant de 43'500 fr., afin de contraindre celle-ci à verser cette somme à la société F._ Sàrl.
3.3. L'argumentation du recourant se révèle appellatoire et, partant irrecevable, dès lors que l'intéressé rediscute librement l'appréciation des preuves à laquelle s'est livrée l'autorité précédente, sans démontrer en quoi celle-ci serait arbitraire. Il en va ainsi lorsque le recourant soutient en substance qu'il ne serait pas à l'origine du commandement de payer litigieux, alors même qu'il a été associé gérant de la société F._ Sàrl jusqu'en octobre 2013, que sa soeur a ensuite occupé cette place et que la cause de la créance figurant sur ce document indiquait notamment "l'achat de Sàrl", ce qui correspondait au projet d'acquisition de la société D._ Sàrl. Durant son audition par le ministère public, alors que le recourant était interrogé à propos de ses activités, en juillet puis septembre 2014, en lien avec les sociétés D._ Sàrl et F._ Sàrl, l'intéressé a répondu en déclarant qu'il était "le maître à bord pour gérer ces sociétés" et souhaitait "regrouper tout le personnel chez F._ Sàrl pour avoir moins de frais" (cf. pièce 3'099 du dossier cantonal, p. 6). Il n'était donc nullement insoutenable, pour la cour cantonale, de retenir que le recourant était bien - compte tenu de ses rapports avec C._ et de son rôle effectif au sein de F._ Sàrl - la personne ayant fait notifier un commandement de payer à la prénommée. Pour le reste, c'est également de manière purement appellatoire et, partant, irrecevable, que le recourant tente de démontrer que le commandement de payer litigieux n'aurait pas été d'emblée injustifié. En dépit de l'argumentation consistant à prétendre qu'il aurait existé un "imbroglio" entre toutes les parties, "non juristes", le recourant ne démontre aucunement que les constatations de la cour cantonale - selon lesquelles F._ Sàrl ne pouvait en aucune manière se prévaloir d'une créance de 43'500 fr. à l'égard de C._ - seraient arbitraires. Il n'explique pas, en particulier, ce qui aurait pu - même sur la base de sa propre compréhension des relations contractuelles entre les différentes parties - l'amener à croire que la prénommée devait payer à F._ Sàrl la somme précitée.
Le recourant ne développe, pour le surplus, aucune argumentation, fondée sur l'état de fait de la cour cantonale dont il n'a pas démontré l'arbitraire, concernant une éventuelle violation de l'<ref-law>.
4.
Au vu de ce qui précède, le recours doit être partiellement admis (cf. consid. 1 supra). Pour le reste, il doit être rejeté dans la mesure où il est recevable. Le recourant, qui n'obtient que partiellement gain de cause, supportera une partie des frais judiciaires (<ref-law>). Il peut prétendre à des dépens réduits, à la charge du canton de Fribourg (<ref-law>). La demande d'assistance judiciaire est sans objet dans la mesure où le recourant a droit à des dépens; elle doit être rejetée pour le reste, dès lors que le recours était dénué de chances de succès s'agissant des aspects sur lesquels celui-ci a succombé (<ref-law>). Les frais judiciaires mis à la charge de l'intéressé seront cependant fixés en tenant compte de sa situation économique, laquelle n'apparaît pas favorable (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale pour nouvelle décision. Pour le reste, il est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée dans la mesure où elle n'est pas sans objet.
3.
Une partie des frais judiciaires, arrêtée à 600 fr., est mise à la charge du recourant.
4.
Le canton de Fribourg versera au conseil du recourant une indemnité de 1'500 fr. à titre de dépens réduits pour la procédure devant le Tribunal fédéral.
5.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal de l'Etat de Fribourg, Cour d'appel pénal.
Lausanne, le 16 juin 2020
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa