Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Sokoban500 Pico8

A topic by lyoy created Jan 11, 2018 Views: 614 Replies: 13
Viewing posts 1 to 10
Submitted(+2)

Bon , ça veut pas forcément dire qu'il y aura 500 puzzle mais bon on verra..

Pour l'instant ça donne ça.



pour faire joujou c'est la https://lyoy.itch.io/sokoban-500-pico8

Submitted

J'ai essayé, un peu court :) Je rejoue après, quand t'auras rajouté des lvl ! Et pour les tables en lua non tu ne la copie pas quand tu fais newTable = ancienneTable tu copie l'adresse en mémoire donc si ensuite tu fais newTable.x = 5 et print(ancienneTable.x) tu va obtenir 5. Mais en fait jusqu'à aujourd'hui ça a été un avantage car si tu regarde les codes des ateliers tu remarquera que david l'utilise, par exemple avec une fonction newSprite() qui ajoute sprite à la liste des sprites et retourne sprite. Et que toi tu l'appels comme ça : player = newSprite() et bien si tu parcours la table des sprites il y aura la player dedans et tu pourras le modifier ici mais aussi en faisant player.x = par exemple. A toute ;)

Submitted

c'est plus pratique pour la plupart des choses, ça fait auto pointeur mais dans ce cas spécifique j'avais besoin d'une copie.

Submitted

Je montre en détail le soucis que j'ai eu avec lua, voir si quelqu'un a une autre idée meilleure:

Exemple 1

table={
{1,1,1,1,1},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{1,1,1,1,1}
}

currenttable={}

function _init()

currenttable=table
currenttable[1][1]=3

-- je copie la table dans current table et je change le tout premier element de la premiere ligne

end


function _draw()

cls()

print(table[1][1]) --> retourne 3
print(currenttable[1][1]) --> retourne 3

end

ça me retourne 3, 3 et mois je ne veux pas modifier les valeurs sources de table je veux donc 1,3

Pour l'instant j'ai trouvé que ça:

table={
{1,1,1,1,1},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{1,1,1,1,1}
}

newtable={}

newtable={
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0}
}

function chgtable(ptable)
-- la fonction va copier un à un les valeurs de table dans new table
for i=1,#ptable do
for j=1,#ptable[i] do
newtable[j][i]=ptable[j][i]
end
end

return newtable
end


function _init()

newtable=chgtable(table)
newtable[1][1]=3

end

function _draw()

cls()
print(table[1][1])--> retourne 1
print(newtable[1][1])--> retourne 3

end

Voila, j'ai cherché et visiblement lua ne permet pas la copy des tables de base genre copy(table)...

Submitted

je viens de trouver ça 

-- creates a deep copy of a
-- table and all its properties
function deep_copy(obj)
 if (type(obj)~="table") return obj
 local cpy={}
 setmetatable(cpy,getmetatable(obj))
 for k,v in pairs(obj) do
  cpy[k]=deep_copy(v)
 end
 return cpy
end


https://www.lexaloffle.com/bbs/?tid=30299

Submitted

Merci pour cette info. Très instructif.

Salut poto, content de te revoir sur cette Jam, j'ai testé ton jeu, c'est cool comme début. Les cibles à atteindre me perturbent on dirait des pièces, on a envie de les prendre, lol. Sinon ça serait sympa une petite fonction "reset tableau" car j'ai fait une mauvaise manip et obligé de relancer le jeu.
Bon ocurage !

Submitted

yes merci pour ce retour, j'essaierai d'implémenter tout ça. ;)

Submitted (1 edit)

Ça commence très bien, je suis vraiment tombé amoureux de l’esthétique générale des jeux PICO-8 ! ^^

Je suis d'accord avec Tetsuro, les cibles font très "item a ramasser"

Submitted

c'est noté 

Submitted

Il a pris une claque ton sokoban !!

Graphiquement, ça a carrément la classe, il y a combien de niveaux ? histoire de savoir où j'en suis... :P

Tu les récupères d’une version existante, ou tu les créés toi-même ?

Submitted (1 edit)

salut dgpeth

donc voici un nouvelle version avec 

  • 10 niveaux fait a la main
  • nouveaux graph
  • des effets
  • on peut recommencer le niveau (touche x) mais on perd une vie (vies limité)

voila je sais que je pourrais faire a peu près 100 niveaux max vu la taille de la map pico8.

J'ai ajouté des effets pour dynamiser un peu le jeu.

Pour les niveaux, je fais avec l'éditeur, c'est pratique comme ça je peux tout de suite tester si ça marche, régler la difficulté donc c'est fait main on va dire..

pour les graphs, tout est fait dans pico8 c'est l'éditeur.

Pour après , peut être un timer, compte à rebours en plus, un conteur pour le nombre de pas, un tableau de score.





Reste a voir si j'aurais la patience d'en faire 100... ;)


J'ai oublié, c'est jouable la :https://lyoy.itch.io/sokoban-500-pico8

Submitted

Excellent projet :). 

Je fais aussi ce sokoban sur la pico-8.  Je galère sur la transition des niveaux mais je pense que je vais y arriver.

Graphiquement ton sokoban est superbe, et la jouabilité tip top.

Submitted

merci Brachius,

je vais essayer de polisher encore et de rajouter le plus de niveaux possible.